תוכן עניינים:
הגדרה - מה המשמעות של שגרת מדור קריטית (CSR)?
שגרת מדור קריטית (CSR) היא קטע קוד שעבורו תהליך מקבל מנעול בלעדי כך ששום תהליך אחר אינו רשאי לבצע אותו בו זמנית. לעתים קרובות, תהליך אחד או יותר מבצעים בו זמנית במערכת הפעלה, מה שמאלץ תהליכים אלה להתחרות זה בזה בגישה לקבצים ומשאבים. יש לאפשר רק לתהליך אחד לגשת למשאב בזמן שחלק מהקוד הקשור למשאב מבוצע.
כדי להבטיח שתהליך ב- CSR לא ייכשל בזמן שתהליכים אחרים ממתינים, נקבע מגבלת זמן על ידי רכיב ניהול התהליכים. כך, לתהליך יכול להיות גישה למנעול בלעדי למשך זמן מוגבל בלבד.
Techopedia מסביר שגרת מדור קריטי (CSR)
הדרישות העיקריות ליישום CSR הן:
- הרחקה הדדית: כאשר תהליך מבוצע ב- CSR, אף תהליך אחר אינו יכול להיכנס.
- מצב התקדמות: אם שום תהליך אינו מתבצע ב CSR ויש תהליכים המעוניינים להיכנס אליו, הם יכולים לעשות זאת בפרק זמן מוגדר. אחד התהליכים נכנס ל- CSR בעוד שאחרים ממתינים.
- המתנה מוגבלת: כאשר תהליך מבקש להיכנס ל CSR ולפני שהבקשה ניתנת, חייבת להיות גבול עליון למספר התהליכים הממתינים להכנס ל- CSR במהלך תקופה זו כדי להבטיח ששום תהליך לא יעבור רעב וכל תהליך בתור ההמתנה מקבל תור להיכנס ל CSR.
ניתן לזהות את CSR, בקטע מסוים של קוד, למרות המאפיינים הבאים:
- הקוד מאופיין ברצף פעולות של עדכון קריאה וכתיבה.
- קטעים של משתנים את הקוד בקוד אחר, המבצע רצף פעולה של עדכון קריאה-כתיבה.
- נוכחות של קוד הגישה למבנה נתונים של קוד אחר על ידי שינויו, או קוד המשתמש במבנה נתונים שיכול להיות שונה על ידי תהליך אחר.
ניתן ליישם את המושג קטע קריטי על חומרה המשתמשת במתקן ההפרעות. בכל פעם שתהליך נכנס לקטע קריטי, יש להשבית את כל ההפרעות במעבד כך שתהליכים אחרים לא יוכלו לבקש נעילה במשאב. באופן דומה, כאשר תהליך מסיים את ביצועו, ההפרעות מופעלות שוב. גישה נוספת היא להשתמש בסמפור, משתנה מיוחד הפועל כמו אות לכוון ביצוע או סיום של תהליך.
