Presentation is loading. Please wait.

Presentation is loading. Please wait.

תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.

Similar presentations


Presentation on theme: "תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה."— Presentation transcript:

1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.

2 February 03 חגית עטיה © תהליך  אבסטרקציה : יחידת הביצוע יחידת הזימון תוכנית בביצוע ( סדרתי = פקודה - אחת - אחר - השנייה ) נקרא גם job, task, sequential process

3 February 03 חגית עטיה © מה מאפיין תהליך תהליך לעומת תוכנית :  תוכנית היא חלק ממצב התהליך  תוכנית יכולה לייצר כמה תהליכים  מרחב כתובות  קוד התוכנית  נתונים  מחסנית זמן - ביצוע  program counter  רגיסטרים  מספר תהליך (process id)

4 February 03 חגית עטיה © מרחב הכתובות של התהליך 0x00000000 0xFFFFFFFF address space code (text segment) static data (data segment) heap (dynamic allocated mem) stack (dynamic allocated mem) Program Counter Stack Pointer

5 February 03 חגית עטיה © מצבי התהליך  כל תהליך נמצא באחד המצבים הבאים : מוכן (ready) רץ (running) מחכה (waiting)  מתי מזמנים / מפנים תהליכים ? New Terminated Ready Running Waiting create kill I/O, page fault, etc. I/O done schedule preempt טווח קצר טווח בינוני / ארוך

6 February 03 חגית עטיה © מבני הנתונים של תהליך ב Linux, מכיל 95+ שדות !  בכל זמן, הרבה תהליכים פעילים במערכת  לכל תהליך מצב  Process control block (PCB) שומר את מצב התהליך כאשר אינו רץ. ב -Linux: Process Descriptor  נשמר כאשר התהליך מפונה, נטען כאשר התהליך מתחיל לרוץ. Process id (PID) Execution state Program counter Stack pointer Registers Username Scheduling priority Memory limits

7 February 03 חגית עטיה © מצב המעבד וה -PCB  כאשר תהליך רץ, המצב שלו נמצא במעבד : PC, SP, רגיסטרים משתני זיכרון  כאשר המעבד מפסיק להריץ תהליך ( מעבירו למצב המתנה ), שומר את ערכי הרגיסטרים ב -PCB.  כאשר המעבד מחזיר תהליך למצב ריצה, טוען את ערכי הרגיסטרים מתוך ה -PCB. Context Switch: העברת המעבד מתהליך אחד לשני.

8 February 03 חגית עטיה © Context switch

9 February 03 חגית עטיה © תורי מצבים  מערכת ההפעלה מחזיקה תורים של תהליכים תור ready תור waiting, למשל ל -device מסוים Wait queue header cat pcbNetscape pcb head pointer tail pointer Ready queue header head pointer tail pointer Netscape pcbemacs pcbls pcb

10 February 03 חגית עטיה © ה -PCB ותורי המצבים ה -PCB הוא מבנה נתונים בזיכרון מערכת ההפעלה.  כאשר התהליך נוצר, מוּקצה עבורו PCB ( עם ערכי התחלה ), ומשורשר לתור המתאים ( בדרך - כלל, ready ).  ה -PCB נמצא בתור המתאים למצבו של התהליך.  כאשר מצב התהליך משתנה, ה -PCB שלו מועבר מתור לתור.  כאשר התהליך מסתיים, ה -PCB שלו משוחרר.

11 February 03 חגית עטיה © יצירת תהליך  תהליך אחד ( האב ) יכול ליצור תהליך אחר ( הבן ) שדה ppid בביצוע ps ב -UNIX.  בדרך - כלל, האב מגדיר או מוריש משאבים ותכונות לבניו. ב -UNIX, הבן יורש את שדה userID, ועוד.  האב יכול להמתין לבנו, לסיים, או להמשיך לרוץ במקביל.

12 February 03 חגית עטיה © יצירת תהליכים ב -UNIX:fork() int main(int argc, char **argv) { char *name = argv[0]; int child_pid = fork(); if (child_pid == 0) { printf( “ Son of %s is %d\n ”, name, child_pid); return 0; } else { printf( “ My child is %d\n ”, child_pid); return 0; } }  יוצר ומאתחל PCB.  מיצר מרחב כתובות חדש, ומאתחל אותו עם העתק מלא של מרחב הכתובות של האב.  מאתחל משאבי גרעין לפי משאבי האב ( למשל, קבצים פתוחים )  שם את ה -PCB בתור המוכנים  חוזר פעמיים : לבן, עם ערך 0 לאב, עם מספר התהליך (pid) של הבן

13 February 03 חגית עטיה © איך מפעילים תוכנית חדשה ? int exec(char *prog, char **argv)  עוצר את ביצוע התוכנית הנוכחית.  טוען את prog לתוך מרחב הכתובות.  מאתחל את מצב המעבד, וארגומנטים עבור התוכנית החדשה.  מפנה את המעבד ( ה -PCB מועבר לתור המוכנים ). לא יוצר תהליך חדש !

14 February 03 חגית עטיה © דוגמא : UNIX shell int main(int argc, char **argv) { while (1) { char *cmd = get_next_command(); int child_pid = fork(); if (child_pid == 0) { manipulate STDIN/STDOUT/STDERR fd ’ s exec(cmd); panic( “ exec failed! ” ); } else { wait(child_pid); }


Download ppt "תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה."

Similar presentations


Ads by Google