ההבדל בין תזמון מונע לבין אי-מנע במערכות הפעלה ההבדל בין

Anonim

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

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

יחידות תזמון נקראים לעתים קרובות משימה וזה התפקיד של מתזמן כדי להפעיל ולנהל את המשימות האלה בכל פעם הנדרש, מתזמן בוחר את המשימה כדי להסיר ומוקצים CPU לצורך עיבוד, הסכם ing למודל תזמון בשימוש.

-> ->

כיצד מתזמן יודע אילו משימות הן עדיפות?

המתזמן צריך להפעיל תהליך בחירה יעיל ויעיל, תוך התחשבות במשתנים, בקשות עיבוד דינמיות, וביצוע רוב מחזורי המעבד.

המשימות יכולות להיות בשתי מצבים בזמן עיבוד:

  1. במעבד CPU שבו המעבד מבצע חישובים כדי לעבד את המשימה (התקופה עבור CPU Burst משתנה ממשימה למשימה, ו- אלחוטי אלחוטי
  2. ב קלט / פלט (I / O) פרץ ממתין לקבלת נתונים או שנשלחו מהמערכת.

כאשר המעבד אינו פעיל, המתזמן קורא את תור מוכן, ובוחר את המשימה הבאה להפעלה. לאחר מכן, הוא Dispatcher שנותן את המשימה שנבחרה לשלוט על המעבד, כך שזה צריך להיות מהיר! בכל פעם שנלקח על ידי Dispatcher ידוע בתור חביון Dispatch .

יש מבנים שונים ופרמטרים מותאמים אישית כדי להגדיר את תור מוכן, כמו גם מספר שיטות שניתן להשתמש בהן כדי לנהל את המורכבות של תזמון התהליך.

המתזמן צריך לקבל החלטה במהלך אחד מהשלבים הבאים:

כאשר המשימה משתנה מ

  1. ריצה מצב המתנה (לדוגמה, המתנה בעת בקשת קלט / פלט). כאשר המשימה משתנה מ
  2. ריצה ל מוכן (לדוגמה, תגובה לפסיקה). כאשר המשימה משתנה מ
  3. ממתין ל מוכן (לדוגמה, בקשת I / O הושלמה). כאשר המשימה
  4. משימה יש לבחור משימה חדשה אם שלב 1 או 4 קורה כדי להבטיח ניצול מלא של המעבד, ובשלב 2 ו -3, המשימה יכולה להמשיך לפעול או חדשה אחת היא נבחר.

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

לשניהם יש תכונות דומות עם משימות, מצבי משימות, תורים וסדרי עדיפויות (סטטי או דינמי):

תזמון לא-מונע

  • הוא כאשר משימה פועלת עד שהיא מפסיקה (מרצון) או מסיימת. Windows ® היה תזמון לא מונע עד Windows 3. x, ולאחר מכן הוא השתנה כדי מנע מ - Windows 95. תזמון מונע
  • הוא שם משימה יכולה להיות מושעה בכוח על ידי מעבד להפריע, בניגוד non-Preemptive שבו המשימה פועלת עד שהוא משחרר את השליטה של ​​המעבד. תזמון לא מונע

משימות בתוך מערכת לא מונעת יפעלו עד לסיום.

המתזמן בודק את כל המשימות ואת לוחות הזמנים של המשימות במשימת העדיפות הגבוהה הבאה עם מצב

Ready. עם תזמון לא מונע, לאחר משימה יש המשימה שלה למעבד, זה לא יכול לקחת משם, גם אם משימות קצרות צריך לחכות למשימות ארוכות יותר כדי להשלים.

ניהול תזמון בין כל המשימות הוא "הוגן" וזמני תגובה צפויים כמו משימות בעדיפות גבוהה לא יכול להקפיץ משימות המתנה בהמשך התור.

המתזמן מבטיח שכל משימה מקבלת את החלק שלה במעבד, תוך הימנעות מכל עיכוב עם כל משימה. "כמות הזמן" שהוקצתה למעבד לא בהכרח שווה, שכן זה תלוי כמה זמן לוקח את המשימה להשלים.

תזמון מונע

מודל תזמון זה מאפשר ניתוק של משימות - בניגוד לתזמון שאינו מונע בעל גישה "ריצה להשלמה".

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

המשימה בעדיפות הגבוהה ביותר במצב

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

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

לסיכום

ניתן להגדיר וריאציות רבות ותלות במדיניות אחרת, כגון שימוש ב

"Round Robin Policy [i]" שבו כל משימה (עם עדיפות שווה) פועלת פעם אחת, ולאחר מכן להציב בסוף התור, עבור המחזור הבא. מדיניות אחרת כוללת את

First-In-First-Out , Shortest-Job-First , Shortest-Job-Next , הזמן הקצר ביותר שנותר וכו ' ניתוח נתונים היסטוריים יכול לספק מידע על היבטים, כמו קצב שבו משימות חדשות מגיעות, CPU ו I / O Burst וכו' אז התפלגות ההסתברות יכולה לחשב מאפיינים של זמני המתנה של משימות, ובכך דריכה מנהלי מערכת עם נתונים רלוונטיים להגדרת מודלים תזמון.