System Structure and Process Model
-
Upload
mckenzie-may -
Category
Documents
-
view
16 -
download
1
description
Transcript of System Structure and Process Model
![Page 1: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/1.jpg)
Amrita-UB-MSES-2013-3
1
BINA [email protected]
UNIVERSITY AT BUFFALO
System Structure and Process Model
5/30/2013
![Page 2: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/2.jpg)
Amrita-UB-MSES-2013-3
2
Traditional unix structureSystem callStandard C libraries
5/30/2013
![Page 3: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/3.jpg)
Amrita-UB-MSES-2013-3 Page 3
Traditional UNIX System Structure
5/30/2013
![Page 4: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/4.jpg)
5/30/2013Amrita-UB-MSES-2013-3
4
System Call
There are 11 steps in making the system call
read (fd, buffer, nbytes)
![Page 5: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/5.jpg)
Amrita-UB-MSES-2013-3 Page 5
API – System Call – Operating system Relationship
5/30/2013
![Page 6: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/6.jpg)
Amrita-UB-MSES-2013-3 Page 6
Standard C Library Example
C program invoking printf() library call, which calls write() system call
5/30/2013
![Page 7: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/7.jpg)
Amrita-UB-MSES-2013-3
Page 7
What is a process?
A process is simply a program in execution: an instance of a program execution.
Unit of work individually schedulable by an operating system (OS).
A process includes: program counter stack data section
OS keeps track of all the active processes and allocates system resources to them according to policies devised to meet design performance objectives.
To meet process requirements OS must maintain many data structures efficiently.
The process abstraction is a fundamental OS means for management of concurrent program execution. Example: instances of process co-existing.
5/30/2013
![Page 8: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/8.jpg)
Amrita-UB-MSES-2013-3 Page 8
Process in Memory
5/30/2013
![Page 9: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/9.jpg)
Amrita-UB-MSES-2013-3
Page 9
Process control
Process creation in unix is by means of the system call fork().
OS in response to a fork() call: Allocate slot in the process table for new process. Assigns unique pid to the new process.. Makes a copy of the process image, except for the
shared memory. both child and parent are executing the same code
following fork() Move child process to Ready queue. it returns pid of the child to the parent, and a
zero value to the child.
5/30/2013
![Page 10: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/10.jpg)
Amrita-UB-MSES-2013-3
Page 10
Process control (contd.)
All the above are done in the kernel mode in the process context. When the kernel completes these it does one of the following as a part of the dispatcher: Stay in the parent process. Control returns to the
user mode at the point of the fork call of the parent.
Transfer control to the child process. The child process begins executing at the same point in the code as the parent, at the return from the fork call.
Transfer control another process leaving both parent and child in the Ready state.
5/30/2013
![Page 11: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/11.jpg)
Amrita-UB-MSES-2013-3 Page 11
Process Creation (contd.)
Parent process create children processes, which, in turn create other processes, forming a tree of processes
Generally, process identified and managed via a process identifier (pid)
Resource sharing Parent and children share all resources Children share subset of parent’s resources Parent and child share no resources
Execution Parent and children execute concurrently Parent waits until children terminate
5/30/2013
![Page 12: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/12.jpg)
Amrita-UB-MSES-2013-3 Page 12
Process Creation (Contd.)
Address space Child duplicate of parent Child has a program loaded into it
UNIX examples fork system call creates new process exec system call used after a fork to replace the
process’ memory space with a new program
5/30/2013
![Page 13: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/13.jpg)
Amrita-UB-MSES-2013-3 Page 13
Process Creation (contd.)
5/30/2013
![Page 14: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/14.jpg)
Amrita-UB-MSES-2013-3
Page 14
A five-state process model
Five states: New, Ready, Running, Blocked, ExitNew : A process has been created but has not yet
been admitted to the pool of executable processes.Ready : Processes that are prepared to run if given
an opportunity. That is, they are not waiting on anything except the CPU availability.
Running: The process that is currently being executed. (Assume single processor for simplicity.)
Blocked : A process that cannot execute until a specified event such as an IO completion occurs.
Exit: A process that has been released by OS either after normal termination or after abnormal termination (error).
5/30/2013
![Page 15: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/15.jpg)
Amrita-UB-MSES-2013-3
Page 15
State Transition Diagram
NEW READY RUNNING
BLOCKED
EXITAdmit
Dispatch
Time-out
Release
Event WaitEvent
Occurs
Think of the conditions under which state transitions may take place.
5/30/2013
![Page 16: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/16.jpg)
Amrita-UB-MSES-2013-3
Page 16
Process creation - Example
main () { int pid; cout << “ just one process so far”<<endl; pid = fork(); if (pid == 0) cout <<“I am the child “<< endl; else if (pid > 0) cout <<“I am the parent”<< endl; else cout << “fork failed”<< endl;}
5/30/2013
![Page 17: System Structure and Process Model](https://reader034.fdocuments.us/reader034/viewer/2022051620/5681338b550346895d9a92ec/html5/thumbnails/17.jpg)
5/30/2013Amrita-UB-MSES-2013-3
17
System Calls For Process Management and File Management