Wa0001
Wa0001
Operating System Concepts – 9 th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Process Concept
Operating System Concepts – 9 th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Process Concept (Cont.)
● Program is passive entity stored on disk (executable file),
process is active
● Program becomes process when executable file loaded into
memory
● One program can be several processes
● Consider multiple users executing the same program
Operating System Concepts – 9 th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
Process in Memory
Operating System Concepts – 9 th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Process State
● As a process executes, it changes state
● new: The process is being created
● running: Instructions are being executed
● waiting: The process is waiting for some event to occur
● ready: The process is waiting to be assigned to a processor
● terminated: The process has finished execution
Operating System Concepts – 9 th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
Process Control Block (PCB)
Information associated with each process
(also called task control block)
● Process state – running, waiting, etc
● Program counter – location of
instruction to next execute
● CPU registers – contents of all
process-centric registers
● CPU scheduling information- priorities,
scheduling queue pointers
● Memory-management information –
memory allocated to the process
● Accounting information – CPU used,
clock time elapsed since start, time
limits
● I/O status information – I/O devices
allocated to process, list of open files
Operating System Concepts – 9 th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process
Operating System Concepts – 9 th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
Question
Operating System Concepts – 9 th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
Process Scheduling
Operating System Concepts – 9 th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various I/O Device Queues
Operating System Concepts – 9 th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling
Operating System Concepts – 9 th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
Schedulers
● Short-term scheduler (or CPU scheduler) – selects which process
should be executed next and allocates CPU
● Sometimes the only scheduler in a system
● Short-term scheduler is invoked frequently (milliseconds) ⇒ (must be
fast)
● Long-term scheduler (or job scheduler) – selects which processes
should be brought into the ready queue
● Long-term scheduler is invoked 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
● Long-term scheduler strives for good process mix
Operating System Concepts – 9 th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Addition of Medium Term Scheduling
● Medium-term scheduler can be added if degree of multiple
programming needs to decrease
● Remove process from memory, store on disk, bring back
in from disk to continue execution: swapping
Operating System Concepts – 9 th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
Context 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 via a context switch
● Context of a process represented in the PCB
● Context-switch time is overhead; the system does no useful
work while switching
● The more complex the OS and the PCB the longer the
context switch
● Time dependent on hardware support
● Some hardware provides multiple sets of registers per
CPU multiple contexts loaded at once
Operating System Concepts – 9 th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Operations on Processes
Operating System Concepts – 9 th Edition 3.16 Silberschatz, Galvin and Gagne ©2013
Process Creation & Exec.
● 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 options
● Parent and children share all resources
● Children share subset of parent’s resources
● Parent and child share no resources
● Execution options
● Parent and children execute concurrently
● Parent waits until children terminate
● Address space
● Child duplicate of parent
● Child has a program loaded into it
Operating System Concepts – 9 th Edition 3.17 Silberschatz, Galvin and Gagne ©2013
Process Creation & exec. (Cont.)
● UNIX examples
● fork() creates new process
● exec() used after a fork() to execute the process code.
Operating System Concepts – 9 th Edition 3.18 Silberschatz, Galvin and Gagne ©2013
● The fork() command makes a complete copy of the
running process and the only way to differentiate the
two is by looking at the returned value
● fork() returns the process identifier (pid) of the child process in
the parent
● fork() returns 0 in the child.
Operating System Concepts – 9 th Edition 3.19 Silberschatz, Galvin and Gagne ©2013
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pid;
/* fork another process */
pid = fork(); C Program
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed"); Forking
}
exit(-1);
Separate
else if (pid == 0) { /* child process */ Process
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
}
return 0;
}
Operating System Concepts – 9 th Edition 3.20 Silberschatz, Galvin and Gagne ©2013
A tree of processes on a typical Solaris
Operating System Concepts – 9 th Edition 3.21 Silberschatz, Galvin and Gagne ©2013
Question
Operating System Concepts – 9 th Edition 3.22 Silberschatz, Galvin and Gagne ©2013
Process Termination
Operating System Concepts – 9 th Edition 3.23 Silberschatz, Galvin and Gagne ©2013
Process Termination
Operating System Concepts – 9 th Edition 3.24 Silberschatz, Galvin and Gagne ©2013
● How processes communicate?
Operating System Concepts – 9 th Edition 3.25 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication
Operating System Concepts – 9 th Edition 3.26 Silberschatz, Galvin and Gagne ©2013
Communications Models
Operating System Concepts – 9 th Edition 3.27 Silberschatz, Galvin and Gagne ©2013
Question
Operating System Concepts – 9 th Edition 3.28 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Shared Memory
Operating System Concepts – 9 th Edition 3.29 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Message Passing
Operating System Concepts – 9 th Edition 3.30 Silberschatz, Galvin and Gagne ©2013