מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.

Slides:



Advertisements
Similar presentations
Processes and threads. תהליכים ותתי תהליכים תהליכים –כל תוכנית שרצה היא תהליך (process) –ניתן להתפצל מתהליך אחד למספר תהליכים, בעזרת הפקודה fork(). הרבה.
Advertisements

CSE 451: Operating Systems Winter 2007 Module 4 Processes Ed Lazowska Allen Center 570.
IT344 – Operating Systems Winter 2011, Dale Rowe.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
CSE 451: Operating Systems Winter 2006 Module 4 Processes Ed Lazowska Allen Center 570.
Processes CSCI 444/544 Operating Systems Fall 2008.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות הפעלה קורס מס '
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות ושימושים.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
Process in Unix, Linux and Windows CS-3013 C-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Process Management: Processes and Threads CS 342 – Operating Systems Ibrahim.
Ceng Operating Systems Chapter 2.1 : Processes Process concept Process scheduling Interprocess communication Deadlocks Threads.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.
Processes April 5, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Process. Process Concept Process – a program in execution Textbook uses the terms job and process almost interchangeably A process includes: – program.
CSE 451: Operating Systems Spring 2012 Module 4 Processes Ed Lazowska Allen Center 570.
The Programming Interface. Main Points Creating and managing processes – fork, exec, wait Performing I/O – open, read, write, close Communicating between.
Introduction Operating Systems (234123) – Spring 2013 Introduction Dan Tsafrir (11/3/2013) OS (234123) - spring intro1.
Process in Unix, Linux, and Windows CS-3013 A-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
Implementing Processes and Process Management Brian Bershad.
Exec Function calls Used to begin a processes execution. Accomplished by overwriting process imaged of caller with that of called. Several flavors, use.
Multiprogramming CSE451 Andrew Whitaker. Overview Multiprogramming: Running multiple programs “at the same time”  Requires multiplexing (sharing) the.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-1 Process Concepts Department of Computer Science and Software.
1 Chapter 2.1 : Processes Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess communication Threads.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 2-1: Process Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.
Computer Studies (AL) Operating System Process Management - Process.
CS 153 Design of Operating Systems Spring 2015 Lecture 5: Processes and Threads.
Processes Dr. Yingwu Zhu. Process Concept Process – a program in execution – What is not a process? -- program on a disk - a process is an active object,
1  process  process creation/termination  context  process control block (PCB)  context switch  5-state process model  process scheduling short/medium/long.
1 Module 3: Processes Reading: Chapter Next Module: –Inter-process Communication –Process Scheduling –Reading: Chapter 4.5, 6.1 – 6.3.
CSE 451: Operating Systems Spring 2010 Module 4: Processes John Zahorjan Allen Center 534.
A process is a program in execution A running system consists of multiple processes – OS processes Processes started by the OS to do “system things” –
Processes.
Lecture Topics: 11/1 Processes Process Management
CSE 451: Operating Systems Autumn 2013 Module 4 Processes
Chapter 3: Processes.
Process Realization In OS
Processes in Unix, Linux, and Windows
IT 344: Operating Systems Module 4 Processes
Chapter 3: Processes.
Processes in Unix, Linux, and Windows
Processes in Unix, Linux, and Windows
תהליכים-דייאט: חוטים מוטיבציה חוטי משתמש וחוטי מערכת
Chapter 3: Processes.
Processes Hank Levy 1.
Tutorial: The Programming Interface
Processes and Process Management
October 7, 2002 Gary Kimura Lecture #4 October 7, 2002
CSE 451: Operating Systems Winter 2003 Lecture 4 Processes
Processes in Unix, Linux, and Windows
CSE 451: Operating Systems Autumn 2009 Module 4 Processes
IT 344: Operating Systems Winter 2008 Module 4 Processes
CSE 451: Operating Systems Winter 2007 Module 4 Processes
Processes in Unix and Windows
CSE 451: Operating Systems Autumn 2004 Module 4 Processes
CSE 451: Operating Systems Spring 2006 Module 4 Processes
Processes Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 4 Processes
Presentation transcript:

מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.

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

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

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

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

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

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

מערכות הפעלה ( אביב 2004) חגית עטיה ©8 Context switch תהליך 2 תהליך 1 מערכת ההפעלה מתבצע ממתין מתבצע save state in PCB 2 load state from PCB 1 save state in PCB 1 פסיקה או המתנה load state from PCB 2

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

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

מערכות הפעלה ( אביב 2004) חגית עטיה ©11 יצירת תהליך  תהליך אחד ( האב ) יכול ליצור תהליך אחר ( הבן ) שדה ppid בביצוע ps -al ב -Linux.  בדרך - כלל, האב מגדיר או מוריש משאבים ותכונות לבניו. ב -Linux, הבן יורש את שדה user, ועוד.  האב יכול להמתין לבנו, לסיים, או להמשיך לרוץ במקביל. רק תהליך אב יכול להמתין לבניו ב Windows יש קריאת CreateProcess( …,prog.exe, … ) מייצרת תהליך חדש ( ללא קשרי אבות / בנים ) אשר מתחיל לבצע את prog.

מערכות הפעלה ( אביב 2004) חגית עטיה ©12 יצירת תהליכים ב -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 בתור המוכנים  עכשיו יש שני תהליכים, אשר נמצאים באותה נקודה בביצוע אותה תוכנית.  שני התהליכים חוזרים מה fork: הבן, עם ערך 0 האב, עם מספר התהליך (pid) של הבן  למעשה, יש מימוש יעיל יותר ל fork() נראה בהמשך.

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

מערכות הפעלה ( אביב 2004) חגית עטיה ©14 דוגמא : UNIX shell int main(int argc, char **argv) { while (1) { char *cmd = get_next_command(); int child_pid = fork(); if (child_pid == 0) { execv(cmd); fprintf(stderr, “ exec failed! ” ); } else { wait(child_pid); }