Upload
owen-daniels
View
213
Download
0
Embed Size (px)
Citation preview
Processes – Part IProcesses – Part I
3.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Review on OSsReview on OSs
Upon brief introduction of OSs, how do you slice an OS?
In a top-down fashion, making assumptions and release assumptions step-by-step?
3.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Chapter 3: ProcessesChapter 3: Processes
Process Concept
Process Scheduling
Operations on Processes
Cooperating Processes
Interprocess Communication (deferred at later time)
Communication in Client-Server Systems (not covered)
3.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process ConceptProcess Concept
An operating system executes a variety of programs: Batch system – jobs Time-shared systems – user programs or tasks
Textbook uses the terms job and process almost interchangeably Process – a program in execution; process execution must
progress in sequential fashion A process includes:
program counter Text section: program code Stack: local variables, function params, return addresses data section: global variables Heap (optional): dynamically allocated memory
What is not a process? -- program on a disk - a process is an active object, but a program is just a file
3.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process in MemoryProcess in Memory
3.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process StateProcess State
Processes switch between different states based on internal and external events
Each process is in exactly one state at a time As a process executes, it changes state (Typical States of
Processes (varies with OS)) new: The process is being created running: Instructions are being executed (only one process
per processor may be running) waiting: The process is waiting for some event (e.g., I/O,
signals) to occur ready: The process is waiting to be assigned to a processor terminated: The process has finished execution
3.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Diagram of Process StateDiagram of Process State
3.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process Control Block (PCB)Process Control Block (PCB)
-- PCB Stores all of the information about a process
Information associated with each process
Process state
Program counter
CPU registers: accumulators, index registers, stack pointers, etc.
CPU scheduling information: priority, etc.
Memory-management information: base/limit, page tables, or segment tables
Accounting information: CPU, etc
I/O status information: a list of I/O devices allocated, a list of open files, etc.
3.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process Control Block (PCB)Process Control Block (PCB)
3.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
CPU Switch From Process to ProcessCPU Switch From Process to Process
3.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Maintaining PCBsMaintaining PCBs
Need to keep track of the different processes in the system
Collection of PCBs is called a process table
How to store the process table?
Option 1:
Problems with Option 1:
hard to find processes
how to fairly select a process
P1 P2 P2 P3 P4 P5
Ready Waiting Waiting ReadyNew Term
3.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process Scheduling QueuesProcess Scheduling Queues
Store processes in queues based on state
Processes migrate among the various queues
Job queue – set of all processes in the system
Ready queue – set of all processes residing in main memory, ready and waiting to execute
Device queues – set of processes waiting for an I/O device
3.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Ready Queue And Various I/O Device QueuesReady Queue And Various I/O Device Queues
3.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Representation of Process SchedulingRepresentation of Process Scheduling
3.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
SchedulersSchedulers
Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue; controls degree of multiprogramming (# of processes in memory)
Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU
3.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Addition of Medium Term SchedulingAddition of Medium Term Scheduling
Swap in/out processes memory
3.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Schedulers (Cont.)Schedulers (Cont.)
Short-term scheduler is invoked very frequently (milliseconds) (must be fast)
Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow)
The long-term scheduler controls the degree of multiprogramming
Processes can be described as either:
I/O-bound process – spends more time doing I/O than computations, many short CPU bursts
CPU-bound process – spends more time doing computations; few very long CPU bursts
3.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Short-Term SchedulerShort-Term Scheduler
The inner most part of the OS that runs processes
Responsible for:
saving state into PCB when switching to a new process
selecting a process to run (from the ready queue)
loading state of another process
Switching between processes is called context switching
One of the most time critical parts of the OS
Almost never can be written completely in a high level language
3.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Selecting a Process to RunSelecting a Process to Run
called scheduling
can simply pick the first item in the queue
called round-robin scheduling
is round-robin scheduling fair?
can use more complex schemes
we will study these in the future
use alarm interrupts to switch between processes
when time is up, a process is put back on the end of the ready queue
frequency of these interrupts is an important parameter
typically 3-10ms on modern systems
need to balance overhead of switching vs. responsiveness
3.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Context SwitchContext Switch
When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process
Context-switch time is overhead; the system does no useful work while switching
Time dependent on hardware support
3.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process CreationProcess Creation
Parent process create children processes, which, in turn create other processes, forming a tree of processes
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
3.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process Creation (Cont.)Process Creation (Cont.)
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
3.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Forking a New ProcessForking a New Process
create a PCB for the new process copy most entries from the parent clear accounting fields buffered pending I/O allocate a pid (process id for the new process)
allocate memory for it could require copying all of the parents segments however, text segment usually doesn’t change so that could be
shared might be able to use memory mapping hardware to help
will talk more about this in the memory management part of the class
add it to the ready queue
3.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process CreationProcess Creation
3.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C Program Forking Separate ProcessC Program Forking Separate Process
int main(){pid_t pid;
/* fork another process */pid = fork();if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");exit(-1);
}else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);}else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);printf ("Child Complete");exit(0);
}}
3.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
A tree of processes on a typical SolarisA tree of processes on a typical Solaris
3.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process TerminationProcess Termination
Process executes last statement and asks the operating system to delete it (exit)
Output data from child to parent (via wait)
Process’ resources are deallocated by operating system
Parent may terminate execution of children processes (abort)
Child has exceeded allocated resources
Task assigned to child is no longer required
If parent is exiting orphan process
Some operating system do not allow child to continue if its parent terminates
– All children terminated - cascading termination (VMS)
in UNIX becomes child of the root process
3.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Process Termination - UNIX exampleProcess Termination - UNIX example
Kernel frees memory used by the process moved PCB to the terminated queue
Terminated process signals parent of its death (SIGCHILD) is called a zombie in UNIX remains around waiting to be reclaimed
parent process wait system call retrieves info about the dead process
exit status accounting information
signal handler is generally called the reaper since its job is to collect the dead processes