0% found this document useful (0 votes)
26 views18 pages

MSCIT 4th COMP2115 6 (1), 6

The document discusses processes and process management in an operating system. It defines a process as a program in execution that must progress sequentially. A process goes through various states like new, running, waiting, ready and terminated. Process information is stored in a process control block that tracks state, registers, scheduling and more. Process scheduling aims to maximize CPU usage by selecting ready processes. Context switching saves and loads process states when switching between CPU processes. Operations on processes include creation using forking, termination, and organizing as a tree of related processes.

Uploaded by

countsohaib.as
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views18 pages

MSCIT 4th COMP2115 6 (1), 6

The document discusses processes and process management in an operating system. It defines a process as a program in execution that must progress sequentially. A process goes through various states like new, running, waiting, ready and terminated. Process information is stored in a process control block that tracks state, registers, scheduling and more. Process scheduling aims to maximize CPU usage by selecting ready processes. Context switching saves and loads process states when switching between CPU processes. Operations on processes include creation using forking, termination, and organizing as a tree of related processes.

Uploaded by

countsohaib.as
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Chapter 3: Processes

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
Process Concept (Cont.)
Program is passive entity stored on disk (executable file),
process is active
Program becomes process when executable file loaded into
memory
Execution of program started via GUI mouse clicks, command
line entry of its name, etc
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
Diagram of Process State
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
CPU Switch From Process to Process
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
Representation of Process Scheduling
Queueing diagram represents queues, resources, flows
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
CPU Switch From Process to Process
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
Operations on Processes

System must provide mechanisms for:


process creation,
process termination,
and so on as detailed next
Process Creation
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
A Tree of Processes in Linux
init
pid = 1

login kthreadd sshd


pid = 8415 pid = 2 pid = 3028

bash khelper pdflush sshd


pid = 8416 pid = 6 pid = 200 pid = 3610

emacs tcsch
ps
pid = 9204 pid = 4005
pid = 9298
Process Creation (Cont.)
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
C Program Forking Separate Process
Process Termination

Process executes last statement and then asks the operating


system to delete it using the exit() system call.
Returns status data from child to parent (via wait())
Process’ resources are deallocated by operating system
Parent may terminate the execution of children processes using
the abort() system call. Some reasons for doing so:
Child has exceeded allocated resources
Task assigned to child is no longer required
The parent is exiting and the operating systems does not
allow a child to continue if its parent terminates

You might also like