Professional Documents
Culture Documents
Process Management
By Rizal Mohd Nor
Slides adopted from Mikhail Nesterenko OS slides at Kent State University
Previous slides review
major OS duties are
process management
memory management
disk/file management
OS interacts with users through system calls, to ease interaction
API - for app. programmers
GUI or CLI for end-users
OS is a big and complex program; traditional monolithic kernel
design approach yields OSes that are fast but hard to develop,
modify and debug; other approaches have been suggested:
microkernel
virtual machine
Lecture 4: Process Management
process
process creation/termination
context
process control block (PCB)
context switch
5-state process model
process scheduling
short/medium/long term
Unix process model
3
Process
prompt% ps -efl
UID PID PPID C STIME TTY TIME COMMAND
root 0 0 0 Jan 19 ? 10:53 swapper
root 1 0 0 Jan 19 ? 0:17 init
root 2 0 0 Jan 19 ? 7:39 telnetd
…
4 rizal 1546 1321 0 15:38:45 pts/17 3:31 chrome
Unix Process Creation
one process can create another process, perhaps to do
some work for it
child – the new process
an (almost) identical copy of parent (same code, same data, etc.)
parent – the original process
parent can either wait for the child to complete, or continue executing in parallel (concurrently) with
the child
parent does not terminate until the child does
In UNIX, a process creates a child process using the system call fork( )
In child process, fork() returns 0
In parent process, fork() returns process id of new child
child often uses exec( ) to start another completely different program
5
Process Creation
Process Parent
spawning Child process
process
• when the • is the • is the new
OS creates a original, process
process at creating,
the explicit process
request of
another
process
Example of Unix Process Creation
#include <sys/types.h>
#include <stdio.h>
int a = 6;/* global (external) variable */
int main(void) {
int b; /* local variable */
pid_t pid; /* process id */ example execution
b = 88; prompt% forkprogram
printf("..before fork\n"); ..before fork
..after fork, a = 7, b = 89
pid = fork(); ..after fork, a = 6, b = 88
if (pid == 0) { /* child */
a++; b++;
} else /* parent */
wait(pid);
8
Process Termination
10
Reasons for
Process
Termination
Context
context – information about running process
program code (?)
static data (bss)
heap (dynamic data) program memory
procedure call stack - contains temporary data - subroutine allocation
parameters, return addresses, local variables
register contents
general purpose registers
program counter (PC) — address of next instruction to be executed
stack pointer (SP)
program status word (PSW) — interrupt status, condition codes, etc.
OS resources in use - open files, connections to other
programs
accounting information
note that for each process there are two contexts
for user mode and for kernel mode
12
Process Control Block
process control block (PCB) – data structure
maintained by OS to keep track of process’ state
contains
process id number
user id of the owner
process state (running, not-running, etc.)
PC, SP, PSW, general purpose registers
memory limits (static, dynamic) - base/limit register
contents
list of open files
CPU scheduling information (e.g., priority)
I/O states, I/O in progress - list of I/O devices
allocated to process, list of open files, etc. status of I/O
requests
…
13
Context Switch
context switch - stopping one
process and
restarting another
sequence of actions
OS takes control (through
interrupt)
saves old context in the
process PCB
reloads new context
from the new process
PCB
this amounts to changing
the execution of processes (as soon as the PC is reloaded)
returns control to app. program
how is context switch different from mode switch? How are they similar?
how many mode switches are there in a context switch?
context switch requires several thousand instructions
time-sharing
14 OS may do 100–1000 context switches a second
Interleaving of Process Execution in Time-Sharing OS
time time
process A
process process process process B
A B C process C
process A
process B
process C
process process A
D process C
process A
process D
process C
process D
process C
15
Five State Process Model
OS maintains the state of a process.
process is
new – when it is being created
running - executing on the CPU
waiting (blocked) – waiting on input/output event to occur
ready – ready to run on the CPU
terminated – finished execution, is being destroyed
how many processes in the system can be in a particular state?
16
OS Process Queues
OS queues PCBs according to their state
ready queue –
processes in state
ready (waiting to
be run on CPU)
for each device there
is an I/O queue –
processes in state
waiting, blocked
on particular device
waiting for their
request to be
submitted
to the device
controller
17
Short Term
Scheduler
selects process
from the ready
queue to run on
the CPU
runs when
process is created
or terminated
process switches
from running to blocked
interrupt occurs
goals:
minimize response time (e.g., program execution, character to screen)
minimize variance of average response time — predictability may be important
maximize throughput
minimize overhead (OS overhead, context switching, etc.)
efficient use of resources
18
fairness — share CPU in an equitable fashion
Other Types
of Schedulers
medium-term
scheduler
temporarily
swaps processes in/out of main memory
may suspend/resume processes
goal: balance load for better throughput
long-term scheduler (job scheduler) – does not exist on time-sharing OS
selects job from the spool, and loads it into memory
executes infrequently, maybe only when process leaves system
controls degree of multiprogramming
goal: good mix of CPU-bound and I/O-bound processes
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
19
Unix Process States
20
Unix Process Scheduling
process is running in user mode until an interrupt occurs or
it executes a system call
if time slice expires the process is preempted and another is scheduled
a process goes to sleep if it needs to wait for some event to occur and is woken up when
this event occurs
when process is created decision is made whether to put it in memory or disk
fork
user mode kernel mode
interrupt enough created not enough
memory memory
kernel schedule swap out
return running ready swap in
ready
interrupt, preempt
user
system call
running wakeup wakeup
exit
sleep
swap out
zombie asleep asleep
21 disk