Chapter 3: Processes
Shatabdi Roy Moon
Lecturer, Dept. of CSE
Process 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
Multiple parts The program code, also called Text section
Current activity including program counter, processor registers
Stack containing temporary data Function parameters, return
addresses, local variables
Data section containing global variables
Heap containing memory dynamically allocated during run time
Operating System Concepts 3.2 Silberschatz, Galvin and Gagne ©2005
Program to Process
Process page table, PCB, device
PROGRAM driver, memory mapped H/W deices
kernel code etc.
Hard Disk
Mode
bit =0
RAM KERNEL
.cpp 2GB
Kernel
Space
Compile STACK
Systemcall
P1
.obj, .asm 2GB
User HEAP
Space
Mode
Linker DATA
bit =1
OS Kernel CODE/TEXT
IVT
.exe
./[Link]
Operating System Concepts 3.3 Silberschatz, Galvin and Gagne ©2005
Process in Memory
Operating System Concepts 3.4 Silberschatz, Galvin and Gagne ©2005
Two State Process Model
Process may be in one of two states
Running
Not-running
Operating System Concepts 3.5 Silberschatz, Galvin and Gagne ©2005
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 3.6 Silberschatz, Galvin and Gagne ©2005
Diagram of Process State
Operating System Concepts 3.7 Silberschatz, Galvin and Gagne ©2005
Process Control Block (PCB)
Information associated with each process
(also called task control block)
Process ID – unique number assigned for a process
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 3.8 Silberschatz, Galvin and Gagne ©2005
Process Control Block (PCB)
Operating System Concepts 3.9 Silberschatz, Galvin and Gagne ©2005
CPU Switch From Process to Process
Operating System Concepts 3.10 Silberschatz, Galvin and Gagne ©2005
Process Scheduling
Maximize CPU use, quickly switch processes onto CPU for
time sharing
Process scheduler selects among available processes for
next execution on CPU
Maintains scheduling queues of processes
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
Processes migrate among the various queues
Operating System Concepts 3.11 Silberschatz, Galvin and Gagne ©2005
(Queueing-Diagram)
Representation of Process Scheduling
Operating System Concepts 3.12 Silberschatz, Galvin and Gagne ©2005
Schedulers
Long-term scheduler (or job scheduler) – selects which processes should
be brought into the ready queue
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 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
Operating System Concepts 3.13 Silberschatz, Galvin and Gagne ©2005
Mid-term scheduler
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 3.14 Silberschatz, Galvin and Gagne ©2005
Process Creation
Parent process creates 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
Operating System Concepts 3.15 Silberschatz, Galvin and Gagne ©2005
Process Creation
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
Operating System Concepts 3.16 Silberschatz, Galvin and Gagne ©2005
Processes Tree on a UNIX System
Operating System Concepts 3.17 Silberschatz, Galvin and Gagne ©2005
Process 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
Some operating systems do not allow child to continue if its parent
terminates All children terminated - cascading termination
If no parent waiting, then terminated process is a zombie
If parent terminated, processes are orphans
Operating System Concepts 3.18 Silberschatz, Galvin and Gagne ©2005
End of Chapter 3