Operating Systems
Introduction to
Processes
A. Frank - P. Weisberg
Process Concept
• Process is a program in execution; forms the basis of all
computation; process execution must progress in sequential
fashion.
• Program is a passive entity stored on disk (executable file),
Process is an active entity; A program becomes a process when
executable file is loaded into memory.
• Execution of program is started via CLI entry of its name,
GUI mouse clicks, etc.
• A process is an instance of a running program; it can be
assigned to, and executed on, a processor.
• Related terms for Process: Job, Step, Load Module, Task,
Thread.
2 A. Frank - P. Weisberg
Process Parts
• A process includes three segments/sections:
1. Program: code/text.
2. Data: global variables and heap
• Heap contains memory dynamically allocated during run time.
3. Stack: temporary data
• Procedure/Function parameters, return addresses,
local variables.
• Current activity of a program includes its Context:
program counter, state, processor registers, etc.
• One program can be several processes:
– Multiple users executing the same Sequential program.
– Concurrent program running several process.
3 A. Frank - P. Weisberg
Process in Memory (1)
4 A. Frank - P. Weisberg
Processes in Memory (2)
5 A. Frank - P. Weisberg
General Structure of OS Control Tables
6 A. Frank - P. Weisberg
Typical Process Table Implementation
7 A. Frank - P. Weisberg
Process Attributes
• Process ID
• Parent process ID
• User ID
• Process state/priority
• Program counter
• CPU registers
• Memory management information
• I/O status information
• Access Control
• Accounting information
8 A. Frank - P. Weisberg
Typical process table entry
9 A. Frank - P. Weisberg
Fields of a typical process table entry
10 A. Frank - P. Weisberg
Components of Process Control Block (PCB)
• Process Control Block (PCB) – IBM name for
information associated with each process –
its context!
• PCB (execution context) is the data needed
(process attributes) by OS to control process :
1. Process location information
2. Process identification information
3. Processor state information
4. Process control information
11 A. Frank - P. Weisberg
Process Control Block (PCB)
12 A. Frank - P. Weisberg
Process Location Information
• Each process image in memory:
– may not occupy a contiguous range of addresses
(depends on memory management scheme used).
– both a private and shared memory address space
can be used.
• The location if each process image is pointed to
by an entry in the process table.
• For the OS to manage the process, at least part
of its image must be brought into main
13
memory. A. Frank - P. Weisberg
Process Images in Memory
14
Process Identification Information
• A few numeric identifiers may be used:
– Unique process identifier (PID) –
• indexes (directly or indirectly) into the process table.
– User identifier (UID) –
• the user who is responsible for the job.
– Identifier of the process that created this process
(PPID).
• Maybe symbolic names that are related to
numeric identifiers.
15 A. Frank - P. Weisberg
Processor State Information
• Contents of processor registers:
– User-visible registers
– Control and status registers
– Stack pointers
• Program Status Word (PSW)
– contains status information
– Example: the EFLAGS register on Pentium
machines.
16 A. Frank - P. Weisberg
Process Control Information
• scheduling and state information:
– Process state (i.e., running, ready, blocked...)
– Priority of the process
– Event for which the process is waiting (if blocked).
• data structuring information
– may hold pointers to other PCBs for process
queues, parent-child relationships and other
structures.
17 A. Frank - P. Weisberg
Process Control Information
• Inter-process communication –
– may hold flags and signals for IPC.
• Resource ownership and utilization –
– resource in use: open files, I/O devices...
– history of usage (of CPU time, I/O...).
• Process privileges (Access control) –
– access to certain memory locations, to resources, etc…
• Memory management –
– pointers to segment/page tables assigned to this process.
18 A. Frank - P. Weisberg
Process States
• Let us start with three states:
1) Running state –
• the process that gets executed (single CPU);
its instructions are being executed.
2) Ready state –
• any process that is ready to be executed; the process
is waiting to be assigned to a processor.
3) Waiting/Blocked state –
• when a process cannot execute until its I/O
completes or some other event occurs.
19 A. Frank - P. Weisberg
A Three-state Process Model
Dispatch
Ready Running
Time-out
Event Event
Occurs Wait
Waiting
20
Process Transitions (1)
• Ready –> Running
– When it is time, the dispatcher selects a new
process to run.
• Running –> Ready
– the running process has expired his time slot.
– the running process gets interrupted because
a higher priority process is in the ready state.
21 A. Frank - P. Weisberg
Process Transitions (2)
• Running –> Waiting
– When a process requests something for which it
must wait:
• a service that the OS is not ready to perform.
• an access to a resource not yet available.
• initiates I/O and must wait for the result.
• waiting for a process to provide input.
• Waiting –> Ready
– When the event for which it was waiting occurs.
22 A. Frank - P. Weisberg
Process List Structures
23 A. Frank - P. Weisberg
Five-state Process Model
24 A. Frank - P. Weisberg
Other Useful States (1)
• New state –
– OS has performed the necessary actions to
create the process:
• has created a process identifier.
• has created tables needed to manage the process.
– but has not yet committed to execute the
process (not yet admitted):
• because resources are limited.
25 A. Frank - P. Weisberg
Other Useful States (2)
• Terminated state –
– Program termination moves the process to this state.
– It is no longer eligible for execution.
– Tables and other info are temporarily preserved for
auxiliary program –
• Example: accounting program that cumulates resource
usage for billing the users.
• The process (and its tables) gets deleted when
the data is no more needed.
26 A. Frank - P. Weisberg
Reasons for Process Creation
• System initialization.
• Submission of a batch job.
• User logs on.
• Created by OS to provide a service to a user
(e.g., printing a file).
• A user request to create a new process.
• Spawned by an existing process
– a program can dictate the creation of a number of
processes.
27 A. Frank - P. Weisberg
Process Creation (1)
• Parent process create children processes, which, in
turn create other processes, forming a tree of
processes.
• Possible resource sharing:
– Parent and children share all resources.
– Children share subset of parent’s resources.
– Parent and child share no resources.
• Possible execution:
– Parent and children execute concurrently.
– Parent waits until children terminate.
28 A. Frank - P. Weisberg
A tree of processes on UNIX
29 A. Frank - P. Weisberg
A tree of processes on typical Solaris
30 A. Frank - P. Weisberg
Process Creation (2)
• Assign a unique process identifier (PID).
• Allocate space for the process image.
• Initialize process control block
– many default values (e.g., state is New, no I/O
devices or files...).
• Set up appropriate linkages
– Ex: add new process to linked list used for the
scheduling queue.
31 A. Frank - P. Weisberg
Process Creation (3)
• 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.
32 A. Frank - P. Weisberg
Process Creation (3)
33 A. Frank - P. Weisberg
C 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);
}
34 }
?When does a process get terminated
• Batch job issues Halt instruction.
• User logs off.
• Process executes a service request to
terminate.
• Parent kills child process.
• Error and fault conditions.
35 A. Frank - P. Weisberg
Reasons for Process Termination (1)
• Normal/Error/Fatal exit.
• Time limit exceeded
• Memory unavailable
• Memory bounds violation
• Protection error
– example: write to read-only file
• Arithmetic error
• Time overrun
– process waited longer than a specified maximum for an
event.
36 A. Frank - P. Weisberg
Reasons for Process Termination (2)
• I/O failure
• Invalid instruction
– happens when trying to execute data.
• Privileged instruction
• Operating system intervention
– such as when deadlock occurs.
• Parent request to terminate one child.
• Parent terminates so child processes terminate.
37 A. Frank - P. Weisberg
Process Termination
• Process executes last statement and asks the operating
system to terminate it (exit):
– Output data from child to parent (via wait).
– Process’ resources are deallocated by operating system.
• Parent may terminate execution of child processes
(abort):
– Child has exceeded allocated resources.
– Mission assigned to child is no longer required.
– If Parent is exiting:
• Some OSs do not allow child to continue if its parent
terminates.
• Cascading termination – all children terminated.
38 A. Frank - P. Weisberg
UNIX SVR4 Process States
• User Running Executing in user mode.
• Kernel Running Executing in kernel mode.
• Ready to Run, in Memory Ready to run as soon as the kernel schedules it.
• Asleep in Memory Unable to execute until an event occurs; process
is in main memory (a blocked state).
• Ready to Run, Swapped Process is ready to run, but the swapper must
swap the process into main memory before the kernel can schedule it to
execute.
• Sleeping, Swapped The process is awaiting an event and has been
swapped to secondary storage (a blocked state).
• Preempted Process is returning from kernel to user mode, but the
kernel preempts it and does a process switch to schedule another process.
• Created Process is newly created and not yet ready to run.
• Zombie Process no longer exists, but it leaves a record for its parent process
39 to collect. A. Frank - P. Weisberg
UNIX SVR4 States Process Model
40 A. Frank - P. Weisberg