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

תהליך (Process)

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

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

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

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

הבנת המושג 'תהליך' בבחינות קורס 20594 'מערכות הפעלה'

בחינות בקורס 20594 'מערכות הפעלה' באוניברסיטה הפתוחה (כפי שמשתקף מתארי בחינות עבר כמו 2012a, 2009b-sols, 2005_sol, 2004_sol, 2002_sol, 2001b_sol, 2000b_sol, 1999a_sol) מדגישות באופן עקבי את הבנת המושג 'תהליך' לעומקו. השאלות נוטות לחרוג מהגדרה שטחית ולצלול למרכיביו הפנימיים, למחזור חייו, למצביו השונים, ולאופן שבו מערכת ההפעלה מנהלת אותו. ציון 'sol' (פתרונות) בתארי הבחינות מרמז על כך שהבחינות כוללות שאלות הדורשות פתרונות מפורטים, המעידים על הבנה תיאורטית ויישומית כאחד. לכן, יש להתכונן לשאלות שיבחנו לא רק 'מהו תהליך' אלא גם 'כיצד הוא פועל', 'ממה הוא מורכב', ו'מדוע הוא קריטי לתפקוד מערכת ההפעלה'.

תהליך: הלב הפועם של מערכת ההפעלה

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

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

מדוע תהליכים חשובים?

  • ניהול משאבים: כל תהליך מקבל הקצאה של משאבים (מעבד, זיכרון, קבצים, התקני קלט/פלט) ממערכת ההפעלה.
  • בידוד והגנה: תהליכים מבודדים זה מזה, כך שתהליך אחד לא יכול לגשת או לשנות בטעות את הזיכרון של תהליך אחר, מה שמבטיח יציבות ואבטחה.
  • מקביליות (Concurrency): מערכת ההפעלה יכולה להריץ מספר תהליכים 'במקביל' (באמצעות ריבוי משימות – Multitasking), מה שמשפר את ניצול המעבד ואת חווית המשתמש.

מרכיביו העיקריים של תהליך

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

  • מקטע קוד (Text Segment): מכיל את קוד המכונה של התוכנית.
  • מקטע נתונים (Data Segment): מכיל משתנים גלובליים וסטטיים מאותחלים.
  • ערימה (Heap): זיכרון המוקצה באופן דינמי בזמן ריצה (למשל, באמצעות malloc או new).
  • מחסנית (Stack): משמשת לאחסון משתנים מקומיים, פרמטרים לפונקציות וכתובות חזרה מקריאות לפונקציות.
  • בלוק בקרת תהליך (Process Control Block - PCB): מבנה נתונים קריטי המנוהל על ידי מערכת ההפעלה, המכיל את כל המידע על התהליך.
בלוק בקרת תהליך (PCB): מבנה נתונים המכיל את כל המידע הדרוש למערכת ההפעלה לניהול תהליך ספציפי. זהו למעשה 'תעודת הזהות' של התהליך.

ה-PCB מכיל מידע חיוני כגון:

  • מצב התהליך (Process State): רץ, מוכן, ממתין וכו'.
  • מונה תוכנית (Program Counter - PC): מצביע על הפקודה הבאה לביצוע.
  • אוגרי מעבד (CPU Registers): תוכן האוגרים בעת החלפת הקשר.
  • מזהה תהליך (Process ID - PID): מספר ייחודי לכל תהליך.
  • מידע ניהול זיכרון: מצביעים לטבלאות עמודים/מקטעים.
  • מידע ניהול קלט/פלט: רשימת קבצים פתוחים, התקני קלט/פלט שהוקצו.
  • מידע חשבונאי: זמן מעבד שנוצל, מגבלות זמן וכו'.

מצבי תהליך ומחזור חיים

תהליך אינו רץ ברציפות מרגע יצירתו ועד לסיומו. הוא עובר בין מצבים שונים:

חדש (New)

התהליך נוצר אך עדיין לא נטען לזיכרון או מוכן לביצוע.

מוכן (Ready)

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

רץ (Running)

התהליך מבצע את פקודותיו על המעבד.

ממתין (Waiting/Blocked)

התהליך ממתין לאירוע מסוים (למשל, השלמת פעולת קלט/פלט, קבלת נתונים).

סיים (Terminated)

התהליך סיים את ביצועו או בוטל על ידי מערכת ההפעלה.

מעברים בין מצבים אלו מתרחשים בעקבות אירועים שונים: תזמן (scheduler) מעביר תהליך מ'מוכן' ל'רץ', קריאת קלט/פלט מעבירה מ'רץ' ל'ממתין', השלמת קלט/פלט מעבירה מ'ממתין' ל'מוכן', וכן הלאה.

החלפת הקשר (Context Switching)

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

החלפת הקשר (Context Switching): תהליך שמירת מצבו הנוכחי של תהליך אחד (ב-PCB שלו) וטעינת המצב השמור של תהליך אחר, על מנת שהמעבד יוכל להמשיך את ביצועו של התהליך החדש.
חשיבות החלפת הקשר: החלפת הקשר היא מנגנון קריטי לריבוי משימות, אך היא כרוכה ב'תקורה' (overhead) – זמן מעבד שאינו מנוצל לביצוע עבודת משתמש. בחינות מרבות לבחון את ההבנה של מנגנון זה ואת השלכותיו על ביצועי המערכת.

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

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

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

מערכת הפעלה (Operating System) קריאת מערכת (System Call) בלוק בקרת תהליך (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) תזמון דיסק (Disk Scheduling) וירטואליזציה (Virtualization)

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

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