בקרת מקביליות
![]() |
ערך מחפש מקורות
| |
במדעי המחשב, לרבות בתכנות, מערכות הפעלה, מסדי נתונים ומעבדים, בקרת מקביליות מבטיחה תוצאות נכונות לפעולות שנעשות במקביל תוך קבלת התוצאות במהירות האפשרית.
בקרת מקביליות במסדי נתונים[עריכת קוד מקור | עריכה]
בקרת מקביליות במערכות לניהול מסדי נתונים מבטיחה שתנועות (Transactions) יוכלו להתבצע במסד הנתונים בו זמנית מבלי לפגוע בנכונות ועקביות הנתונים. תנועה היא אבסטרקציה של אוסף פעולות קריאה וכתיבה אטומיות לאובייקטים במסד הנתונים. כאשר שתי תנועות שונות ניגשות לאותו אובייקט, התנגשות עלולה לצור מצב של חוסר עקביות. מנגנון בקרת המקביליות דואג שביצוע התנועות יהיה נכון ושקוף למשתמש, על ידי שמירה שכל הפעולות המבוצעות במסד הנתונים עונות על כללי ACID.
מנגנון בקרת המקביליות[עריכת קוד מקור | עריכה]
מנגנוני בקרת המקביליות מתחלקים לשני סוגים עיקריים:
- בקרת מקביליות פסימית - חסום פעולות של תנועות שעלולות להפר כללי סנכרון.
- בקרת מקביליות אופטימית - השהה סנכרון של תנועה עד שתסתיים ללא פעולות חוסמות, ורק אז בטל תנועות שמפרות כללי סנכרון.
קיימות שיטות רבות ומגוונות לבקרת מקביליות, בהן:
- מנגנון נעילה בשני שלבים (2PL, Two Phase Locking)
- מנגנון לסידור תנועות לפי חותם זמן
- מנגנון לסידור תנועות לפי סדר התחייבות
- זיהוי קונפליקטים על ידי גרף
בקרת מקביליות במערכות הפעלה[עריכת קוד מקור | עריכה]
מערכות הפעלה מודרניות עובדות בשיטת ריבוי משימות, ועל כן צריכות לאפשר למספר תהליכים לרוץ בהן בו זמנית (גם אם אין מדובר במקביליות אמיתית בזמן אלא בהחלפת הקשר מהירה בין תהליכים). ריבוי משימות הוא פשוט כאשר התהליכים בלתי תלויים זה בזה. עם זאת, כאשר מספר תהליכים או תהליכונים חולקים משאבים או מנסים לחלוק ביניהם מידע, עלול להיווצר מצב של חוסר עקביות במערכת. מטרת בקרת המקביליות היא למנוע מצבים כאלה. חלק מהפתרונות כוללים שימוש במנעולים, בעוד שפתרונות אחרים מציעים שימוש בפעולות אטומיות ובאלגוריתמים חסרי נעילות.