Smart-World Surf
🔬 הרחבה — צלילה לעומק

תזמון דיסק (Disk Scheduling)

בהאוניברסיטה הפתוחה · Israel
🧭 המושג הזה בכל הקורסים →

שדרגו את הדף עם קובץ

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

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

תזמון דיסק (Disk Scheduling): צלילה מעמיקה לקורס 20594

בקורס "מערכות הפעלה" (20594) של האוניברסיטה הפתוחה, נושא תזמון הדיסק נבחן באופן עקבי תוך דגש חזק על הבנה מעשית וחישובית. כפי שמעידים כותרות המבחנים הקודמים (לדוגמה, 2012a, 2000b_sol, 1999a_sol), השאלות לרוב דורשות מהסטודנטים ליישם אלגוריתמים ספציפיים על תור בקשות נתון ולחשב את תנועת ראש הדיסק הכוללת. הדגש הוא על דיוק בחישובים, הבנת היתרונות והחסרונות של כל אלגוריתם, ויכולת להשוות ביניהם בהקשר של ביצועים, הוגנות ומניעת הרעבה. לכן, ההכנה למבחן צריכה לכלול תרגול רב של יישום האלגוריתמים השונים על מגוון תרחישים.

החשיבות והאתגר

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

זמן גישה לדיסק: הזמן הכולל שלוקח לבצע פעולת קריאה/כתיבה מהדיסק. מורכב משלושה מרכיבים עיקריים:
  • זמן איתור (Seek Time): הזמן הנדרש לראש הקורא/כותב לנוע אל המסילה (Track) הנכונה. זהו המרכיב המשמעותי ביותר.
  • זמן השהיה סיבובית (Rotational Latency): הזמן הנדרש למגזר (Sector) המבוקש להסתובב ולהגיע מתחת לראש הקורא/כותב.
  • זמן העברה (Transfer Time): הזמן הנדרש להעברת הנתונים בפועל בין הדיסק לזיכרון הראשי.

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

אלגוריתמי תזמון דיסק מרכזיים

FCFS (First-Come, First-Served)

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

SSTF (Shortest Seek Time First)

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

SCAN (Elevator Algorithm)

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

C-SCAN (Circular SCAN)

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

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

השוואה ושיקולים

  • ביצועים (Performance): SSTF לרוב משיג את זמן האיתור הממוצע הטוב ביותר, אך על חשבון הוגנות. SCAN/C-SCAN/LOOK/C-LOOK מספקים איזון טוב יותר בין ביצועים להוגנות.
  • הוגנות (Fairness) והרעבה (Starvation): FCFS הוא ההוגן ביותר. SSTF סובל מהרעבה. SCAN ונגזרותיו מונעים הרעבה ומספקים רמה טובה של הוגנות.
  • עלות יישום: FCFS הוא הפשוט ביותר. SSTF דורש חישוב מרחק לכל בקשה. SCAN ונגזרותיו דורשים מעקב אחר כיוון ומיקום.

תרחישי בחינה אופייניים

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

🔗 מושגים קשורים

מושגים נוספים מאותו קורס

מערכת הפעלה (Operating System) קריאת מערכת (System Call) תהליך (Process) בלוק בקרת תהליך (Process Control Block - PCB) החלפת הקשר (Context Switch) חוט (Thread) תזמון מעבד (CPU Scheduling) מצב מרוץ (Race Condition) קטע קריטי (Critical Section) מנעול (Mutex) סמפור (Semaphore) מבוי סתום (Deadlock) אלגוריתם הבנקאי (Banker's Algorithm) זיכרון וירטואלי (Virtual Memory) דפדוף (Paging) פילוח (Segmentation) כשל עמוד (Page Fault) אלגוריתם החלפת עמודים (Page Replacement Algorithm) סחף (Thrashing) מערכת קבצים (File System) בלוק בקרה של קובץ (File Control Block - FCB) DMA (Direct Memory Access) מנהל התקן (Device Driver) וירטואליזציה (Virtualization)

📝 מבחנים מהקורס

האוניברסיטה הפתוחה · תרגלו מול המבחנים האמיתיים