logo

תזמון העבודה הקצרה ביותר (SJF).

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

בתזמון SJF, התהליך עם זמן הפריצה הנמוך ביותר, מבין רשימת התהליכים הזמינים בתור המוכנים, יתזמן בשלב הבא.

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

יתרונות SJF

  1. תפוקה מקסימלית
  2. מינימום זמן המתנה וטיפול ממוצע

החסרונות של SJF

  1. עלול לסבול מבעיית הרעב
  2. זה לא ניתן ליישום מכיוון שלא ניתן לדעת מראש את זמן הפריצה המדויק של תהליך.

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

while ו-do while loop ב-java

דוגמא

בדוגמה הבאה, ישנן חמש עבודות המכונות P1, P2, P3, P4 ו-P5. זמן ההגעה וזמן ההתפרצות שלהם מופיעים בטבלה למטה.

PID זמן הגעה זמן פרץ זמן השלמה זמן סיבוב זמן המתנה
1 1 7 8 7 0
2 3 3 13 10 7
3 6 2 10 4 2
4 7 10 31 24 14
5 9 8 עשרים ואחת 12 4

מאז, אין תהליך מגיע בזמן 0 ומכאן; יהיה חריץ ריק ב- תרשים גנט מזמן 0 עד 1 (הזמן שבו מגיע התהליך הראשון).

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

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

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

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

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

אלגוריתם תזמון OS SJF

זמן המתנה ממוצע = 27/5