0% found this document useful (0 votes)
65 views33 pages

Processes

This document discusses processes and process management in an operating system. It covers key concepts such as: - A process is the active execution of a program and must progress sequentially. A program becomes a process when loaded into memory. One program can spawn multiple processes. - Processes have various states like new, running, waiting, ready, and terminated. A process control block stores information about each process like its state, registers, scheduling details, and more. - Process scheduling aims to maximize CPU usage through techniques like maintaining ready and device queues. Schedulers like short-term and long-term schedulers select which processes to execute. - Context switching saves the state of the current process and loads the

Uploaded by

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

Processes

This document discusses processes and process management in an operating system. It covers key concepts such as: - A process is the active execution of a program and must progress sequentially. A program becomes a process when loaded into memory. One program can spawn multiple processes. - Processes have various states like new, running, waiting, ready, and terminated. A process control block stores information about each process like its state, registers, scheduling details, and more. - Process scheduling aims to maximize CPU usage through techniques like maintaining ready and device queues. Schedulers like short-term and long-term schedulers select which processes to execute. - Context switching saves the state of the current process and loads the

Uploaded by

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

Processes

Process Concept (Cont.)

 Process – a program in execution; process execution


must progress in sequential fashion

 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
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
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
 Long-term scheduler strives for good process mix
Addition of Medium Term Scheduling
 Medium-term scheduler
 Remove process from memory, store on disk,
bring back in from disk to continue execution:
swapping
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
Operations on Processes

 System must provide mechanisms for:


 process creation,
 process termination,
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
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
Interprocess Communication
 Processes within a system may be independent or
cooperating

 Cooperating process can affect or be affected by other


processes, including sharing data
 Reasons for cooperating processes:
 Information sharing

 Cooperating processes need interprocess


communication (IPC)
 Two models of IPC
 Shared memory
 Message passing
Communications Models
(a) Message passing. (b) shared memory.
Cooperating Processes
 Independent process cannot affect or be affected by
the execution of another process
 Cooperating process can affect or be affected by the
execution of another process
 Advantages of process cooperation
 Information sharing
 Computation speed-up
 Convenience
CPU Scheduler
 Short-term scheduler selects from among the processes
in ready queue, and allocates the CPU to one of them
 Queue may be ordered in various ways
 CPU scheduling decisions may take place when a
process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
 Scheduling under 1 and 4 is nonpreemptive
 All other scheduling is preemptive
 Consider access to shared data
 Consider preemption while in kernel mode
 Consider interrupts occurring during crucial OS
activities
Scheduling Criteria

 CPU utilization – keep the CPU as busy as possible


 Throughput – # of processes that complete their
execution per time unit
 Turnaround time – amount of time to execute a
particular process
 Waiting time – amount of time a process has been
waiting in the ready queue
 Response time – amount of time it takes from when
a request was submitted until the first response is
produced, not output (for time-sharing environment)
Scheduling Algorithm Optimization Criteria

 Max CPU utilization


 Max throughput
 Min turnaround time
 Min waiting time
 Min response time
First- Come, First-Served (FCFS) Scheduling

Process Burst Time


P1 24
P2 3
P3 3
 Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:

P1 P2 P3
0 24 27 30

 Waiting time for P1 = 0; P2 = 24; P3 = 27


 Average waiting time: (0 + 24 + 27)/3 = 17
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order:
P2 , P3 , P1
 The Gantt chart for the schedule is:

P2 P3 P1
0 3 6 30

 Waiting time for P1 = 6; P2 = 0; P3 = 3


 Average waiting time: (6 + 0 + 3)/3 = 3
 Much better than previous case
 Convoy effect - short process behind long process
 Consider one CPU-bound and many I/O-bound
processes
Shortest-Job-First (SJF) Scheduling

 SJF is optimal – gives minimum average waiting


time for a given set of processes
 The difficulty is knowing the length of the next
CPU request
Example of SJF

ProcessArriva l Time Burst Time


P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3

 SJF scheduling chart

P4 P1 P3 P2
0 3 9 16 24

 Average waiting time = (3 + 16 + 9 + 0) / 4 = 7


Example of Shortest-remaining-time-first

 Now we add the concepts of varying arrival times and


preemption to the analysis
ProcessAarri Arrival TimeTBurst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
 Preemptive SJF Gantt Chart

P1 P2 P4 P1 P3
0 1 5 10 17 26

 Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4


= 6.5 msec
Priority Scheduling

 A priority number (integer) is associated with each


process

 The CPU is allocated to the process with the highest


priority (smallest integer  highest priority)
 Preemptive
 Nonpreemptive

 SJF is priority scheduling where priority is the inverse


of predicted next CPU burst time

 Problem  Starvation – low priority processes may


never execute

 Solution  Aging – as time progresses increase the


priority of the process
Example of Priority Scheduling

ProcessAarri Burst TimeT Priority


P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2

 Priority scheduling Gantt Chart

P1 P2 P1 P3 P4
0 1 6 16 18 19

 Average waiting time = 8.2 msec


Round Robin (RR)

 Each process gets a small unit of CPU time (time


quantum q), usually 10-100 milliseconds. After this
time has elapsed, the process is preempted and
added to the end of the ready queue.
 If there are n processes in the ready queue and the
time quantum is q, then each process gets 1/n of the
CPU time in chunks of at most q time units at once.
No process waits more than (n-1)q time units.
 Timer interrupts every quantum to schedule next
process
 Performance
 q large  FIFO
 q small  q must be large with respect to
context switch, otherwise overhead is too high
Example of RR with Time Quantum = 4
Process Burst Time
P1 24
P2 3
P3 3
 The Gantt chart is:

P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30

 Typically, higher average turnaround than SJF, but


better response
 q should be large
Time Quantum and Context Switch Time
Multilevel Queue
 Ready queue is partitioned into separate queues, eg:
 foreground (interactive)
 background (batch)
 Process permanently in a given queue
 Each queue has its own scheduling algorithm:
 foreground – RR
 background – FCFS
 Scheduling must be done between the queues:
 Fixed priority scheduling; (i.e., serve all from
foreground then from background). Possibility of
starvation.
 Time slice – each queue gets a certain amount of
CPU time which it can schedule amongst its
processes; i.e., 80% to foreground in RR
 20% to background in FCFS
Multilevel Queue Scheduling
Multilevel Feedback Queue

 A process can move between the various queues;


aging can be implemented this way
 Multilevel-feedback-queue scheduler defined by the
following parameters:
 number of queues
 scheduling algorithms for each queue
 method used to determine when to upgrade a
process
 method used to determine when to demote a
process
 method used to determine which queue a process
will enter when that process needs service
Example of Multilevel Feedback Queue

 Three queues:
 Q0 – RR with time quantum 8
milliseconds
 Q1 – RR time quantum 16 milliseconds
 Q2 – FCFS

 Scheduling
 A new job enters queue Q0 which is
served FCFS
 When it gains CPU, job receives 8
milliseconds
 If it does not finish in 8
milliseconds, job is moved to
queue Q1
 At Q1 job is again served FCFS and
receives 16 additional milliseconds
 If it still does not complete, it is
preempted and moved to queue Q2

You might also like