בקרת מקביליות

במדעי המחשב, לרבות בתכנות, מערכות הפעלה, מסדי נתונים ומעבדים, בקרת מקביליות (באנגלית Concurrency control) הוא מנגנון המבטיח תוצאות נכונות לפעולות שנעשות בעת ובעונה אחת על ידי גורמים או משתמשים שונים. המנגנון - כמו רמזור בצומת כבישים - מסדיר את פעולתם של הגורמים השונים באופן שאמור להגן עליהם מגרימת נזק זה לזה או לאובייקט שעליו הם פועלים.

בקרת מקביליות במסדי נתונים 
בקרת מקביליות במערכות לניהול מסדי נתונים מבטיחה שתנועות (Transactions) יוכלו להתבצע במסד הנתונים בו זמנית מבלי לפגוע בנכונות ועקביות הנתונים.
תנועה היא אבסטרקציה של אוסף פעולות קריאה וכתיבה אטומיות לאובייקטים במסד הנתונים. כאשר שתי תנועות שונות ניגשות לאותו אובייקט, התנגשות עלולה לצור מצב של חוסר עקביות. מנגנון בקרת המקביליות דואג שביצוע התנועות יהיה נכון ושקוף למשתמש, על ידי שמירה שכל הפעולות המבוצעות במסד הנתונים עונות על כללי ACID.

מנגנון בקרת המקביליות 
מנגנוני בקרת המקביליות מתחלקים לשני סוגים עיקריים:
 בקרת מקביליות פסימית - חסום פעולות של תנועות שעלולות להפר כללי סנכרון.
 בקרת מקביליות אופטימית - השהה סנכרון של תנועה עד שתסתיים ללא פעולות חוסמות, ורק אז בטל תנועות שמפרות כללי סנכרון.

קיימות שיטות רבות ומגוונות לבקרת מקביליות, בהן:
 מנגנון נעילה בשני שלבים (2PL, Two Phase Locking) 
 מנגנון לסידור תנועות לפי חותם זמן
 מנגנון לסידור תנועות לפי סדר התחייבות
 זיהוי קונפליקטים על ידי גרף

בקרת מקביליות במערכות הפעלה 
מקביליות היא עקרון יסודי במערכות הפעלה מודרניות אשר מכוונות ליעל את ניצול משאבי המחשב הזמינים בכל יחידת זמן. המקביליות מאפשרת למערכת לטפל במספר משימות, תהליכים ותהליכונים  בו זמנית (לפחות לכאורה, למשל באמצעות החלפת הקשר). עם זאת, ניהול עבודה במקביל מציב למערכת אתגרים משמעותיים, כגון מניעת פעולות סותרות,  שמירה על שלמות הנתונים ותיאום הגישה למשאבים. 

מערכת ההפעלה מתמודדת עם אתגרים אלו באמצעות מנגנונים של בקרת מקביליות.  חלק מהפתרונות כוללים שימוש במנעולים, בעוד שפתרונות אחרים מציעים שימוש בפעולות אטומיות ובאלגוריתמים חסרי נעילות.

ראו גם 
 סמפור (מדעי המחשב)
 עיבוד מקבילי
בעיית הפילוסופים הסועדים
קטע קריטי

הערות שוליים

ערכים שבהם תבנית בריטניקה אינה מתאימה
מערכת הפעלה
מסדי נתונים