|
UNIT
3/LECTURE 1 |
|||||||||||||||
|
Processes •
Process Concept •
Process Scheduling •
Operation on Processes •
Cooperating Processes •
Interprocess Communication 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. •
A process includes: –
program counter –
stack –
data section 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
process. –
terminated: The process has finished execution. Diagram
of Process State Process
Control Block (PCB) Information
associated with each process. •
Process state •
Program counter •
CPU registers •
CPU scheduling information •
Memory-management information •
Accounting information •
I/O status information Process
Control Block (PCB) CPU
Switch From Process to Process Process
Scheduling Queues •
Job queue – set of all processes in
the system. •
Ready queue – set of all processes
residing in main memory, •
Device queues – set of processes
waiting for an I/O device. •
Process migration between the
various queues. Ready Queue And Various I/O Device Queues
|
|||||||||||||||
|
UNIT
3/LECTURE 2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Representation of Process Scheduling 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. Addition of Medium Term Scheduling •
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. 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. •
Context-switch time is overhead;
the system does no useful work while switching. •
Time dependent on hardware support. Process Creation •
Parent process creates children
processes, which, in turn create other processes, forming a tree of
processes. •
Resource sharing –
Parent and children share all
resources. –
Children share subset of parent’s
resources. –
Parent and child share no
resources. •
Execution –
Parent and children execute
concurrently. –
Parent waits until children
terminate. •
Address space –
Child duplicate of parent. –
Child has a program loaded into it. •
UNIX examples –
fork system call
creates new process –
execve system call used
after a fork to replace the process’ memory space with a new program. Process Termination •
Process executes last statement and
asks the operating system to decide 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. –
Parent is exiting. T
Operating system does not allow
child to continue if its parent terminates. T
Cascading termination. 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 –
Modularity –
Convenience Inter Process Communication
Race Condition
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UNIT
3/LECTURE 3 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Semaphore ·
Synchronization
tool that does not require busy waiting ·
Semaphore
S – integer variable ·
Two
standard operations modify S: wait() and signal() 1.
Originally
called P() and V() ·
Less
complicated ·
Can
only be accessed via two indivisible (atomic) operations wait (S) { while S
<= 0 ; // no-op S--; } signal (S) { S++; } Semaphore as General
Synchronization Tool ·
Counting
semaphore – integer value can range over an unrestricted domain ·
Binary
semaphore – integer value can range only between 0 and 1; can be simpler to
implement l
Also
known as mutex locks ·
Can
implement a counting semaphore S as a binary semaphore ·
Provides
mutual exclusion Semaphore S; //
initialized to 1 wait (S); Critical
Section signal (S); Semaphore Implementation ·
Must
guarantee that no two processes can execute wait () and signal () on the same
semaphore at the same time ·
Thus,
implementation becomes the critical section problem where the wait and signal
code are placed in the crtical section. 1.
Could
now have busy waiting in critical section implementation 4
But
implementation code is short 4
Little
busy waiting if critical section rarely occupied ·
Note
that applications may spend lots of time in critical sections and therefore
this is not a good solution. Semaphore Implementation with no
Busy waiting ·
With
each semaphore there is an associated waiting queue. Each entry in a waiting
queue has two data items:
·
Two
operations: 1. block – place the process invoking the
operation on the appropriate
waiting queue.
2. wakeup – remove one of
processes in the waiting queue and place it in the ready queue. ·
Implementation
of wait: wait (S){ value--; if (value <
0) { add this process to waiting
queue block(); } } ·
Implementation
of signal: Signal (S){ value++; if
(value <= 0) { remove a process P from
the waiting queue wakeup(P); } } –
–
Deadlock and Starvation ·
Deadlock
– two or more processes are waiting indefinitely for an event that can be
caused by only one of the waiting processes ·
Let
S and Q be two semaphores initialized to 1 P0 P1 wait (S); wait
(Q); wait (Q); wait
(S); .
. .
. .
. signal
(S); signal
(Q); signal (Q); signal
(S); ·
Starvation – indefinite blocking. A process may never be removed from the
semaphore queue in which it is suspended. \
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UNIT
3/LECTURE 4 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
–
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UNIT
3/LECTURE 5 |
||||||||||||
|
Sockets ·
A socket is defined as an endpoint
for communication ·
Concatenation of IP address and
port ·
The socket 161.25.19.8:1625
refers to port 1625 on host 161.25.19.8 ·
Communication consists between a
pair of sockets Socket
Communication Remote Procedure
Calls ·
Remote
procedure call (RPC) abstracts procedure calls between processes on networked
systems. ·
Stubs – client-side proxy for the actual
procedure on the server. ·
The
client-side stub locates the server and marshalls the parameters. ·
The
server-side stub receives this message, unpacks the marshalled parameters,
and peforms the procedure on the server. Execution of RPC Remote Method
Invocation ·
Remote
Method Invocation (RMI) is a Java mechanism similar to RPCs. ·
RMI
allows a Java program on one machine to invoke a method on a remote object.
|
|
UNIT
3/LECTURE 6 |
|||||||||||||||||||||||||||
|
CPU Scheduling ·
Basic
Concepts ·
Scheduling
Criteria ·
Scheduling
Algorithms ·
Multiple-Processor
Scheduling ·
Real-Time
Scheduling ·
Thread
Scheduling ·
Operating
Systems Examples ·
Java
Thread Scheduling ·
Algorithm
Evaluation Basic Concepts ·
Maximum CPU utilization obtained
with multiprogramming ·
CPU–I/O Burst Cycle – Process
execution consists of a cycle of CPU execution and I/O wait ·
CPU burst distribution Alternating
Sequence of CPU And I/O Bursts CPU Scheduler ·
Selects
from among the processes in memory that are ready to execute, and allocates
the CPU to one of them ·
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 Dispatcher ·
Dispatcher
module gives control of the CPU to the process selected by the short-term
scheduler; this involves: 1.
switching
context 2.
switching
to user mode 3.
jumping
to the proper location in the user program to restart that program ·
Dispatch
latency – time it takes for the dispatcher
to stop one process and start another running 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) 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: ·
Waiting
time for P1 = 0; P2 = 24; P3 = 27 ·
Average
waiting time: (0 + 24 + 27)/3 = 17 Suppose that the processes arrive in the order P2 , P3
, P1 The Gantt chart for the schedule is: ·
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 Shortest-Job-First (SJF) Scheduling ·
Associate
with each process the length of its next CPU burst. Use these lengths to schedule the process
with the shortest time ·
Two
schemes: 1. nonpreemptive – once CPU given to
the process it cannot be preempted until completes its CPU burst 2.
preemptive
– if a new process arrives with CPU burst length less than remaining time of
current executing process, preempt.
This scheme is know as the ·
SJF
is optimal – gives minimum average waiting time for a given set of processes Example of Non-Preemptive SJF Process
Arrival Time Burst Time P1 0.0
7 P2 2.0 4 P3 4.0 1 P4 5.0 4 ·
SJF
(non-preemptive) ·
Average
waiting time = (0 + 6 + 3 + 7)/4 = 4
Example of Preemptive SJF Process
Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 ·
SJF
(preemptive) ·
Average
waiting time = (9 + 1 + 0 +2)/4 = 3 Determining Length of
Next CPU Burst ·
Can
only estimate the length ·
Can
be done by using the length of previous CPU bursts, using exponential
averaging Examples of Exponential Averaging ·
a =0
then tn+1 = tn -- Recent history does not count ·
a =1
then tn+1 = a tn
-- Only the
actual last CPU burst counts ·
If
we expand the formula, we get: tn+1 = a tn+(1 - a)a tn -1 + … +(1
- a )j a tn -j
+ …
+(1 - a )n +1 t0 ·
Since
both a and (1 - a) are less than or equal to 1, each
successive term has less weight than its predecessor 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) 1.
Preemptive 2.
nonpreemptive
·
SJF
is a priority scheduling where priority is the predicted next CPU burst time ·
Problem
º Starvation – low priority
processes may never execute ·
Solution
º Aging – as time progresses
increase the priority of the process
|
|||||||||||||||||||||||||||
|
UNIT
3/LECTURE 7 |
|||||||||||||||||||||||||||||||||||||||
|
Round Robin (RR) ·
Each process gets a small unit of
CPU time (time quantum), 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. ·
Performance 1. q large Þ FIFO 2. q small Þ q must be large with respect to context switch, otherwise
overhead is too high Example of RR
with Time Quantum = 20 Process
Burst Time P1 53 P2 17 P3 68 P4 24 The Gantt chart is: ·
Typically,
higher average turnaround than SJF, but better response Time Quantum and
Context Switch Time Multilevel Queue ·
Ready
queue is partitioned into separate queues: ·
Each
queue has its own scheduling algorithm 1.
foreground
– RR 2.
background
– FCFS ·
Scheduling
must be done between the queues 1. Fixed priority scheduling;
(i.e., serve all from foreground then from background). Possibility of starvation. 2. 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 3. 20% to background in FCFS 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: 1. number of queues 2. scheduling algorithms for each
queue 3. method used to determine when to
upgrade a process 4. method used to determine when to
demote a process 5. method used to determine which
queue a process will enter when that process needs service Example of
Multilevel Feedback Queue ·
Three
queues: 1.
Q0 – RR with time quantum 8 milliseconds 2.
Q1 – RR time quantum 16 milliseconds 3.
Q2 – FCFS ·
Scheduling 1. 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. 2. 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. Multiple-Processor
Scheduling ·
CPU
scheduling more complex when multiple CPUs are available ·
Homogeneous
processors within a
multiprocessor ·
Load
sharing ·
Asymmetric
multiprocessing
– only one processor accesses the system data structures, alleviating the
need for data sharing Real-Time
Scheduling ·
Hard
real-time systems –
required to complete a critical task within a guaranteed amount of time ·
Soft
real-time computing
– requires that critical processes receive priority over less fortunate ones
Figure:- Dispatch Latency
|
|||||||||||||||||||||||||||||||||||||||
|
UNIT
3/LECTURE 8 |
|||||||||||||||||||||||||||
|
Deadlocks ·
The
Deadlock Problem ·
System
Model ·
Deadlock
Characterization ·
Methods
for Handling Deadlocks ·
Deadlock
Prevention ·
Deadlock
Avoidance ·
Deadlock
Detection ·
Recovery
from Deadlock The Deadlock
Problem ·
A
set of blocked processes each holding a resource and waiting to acquire a
resource held by another process in the set. ·
Example
1.
System
has 2 disk drives. 2.
P1 and P2 each hold one disk drive
and each needs another one. ·
Example
3.
semaphores
A and B, initialized to 1
P0 P1
wait (A); wait(B)
wait (B); wait(A) Bridge Crossing
Example ·
Traffic
only in one direction. ·
Each
section of a bridge can be viewed as a resource. ·
If
a deadlock occurs, it can be resolved if one car backs up (preempt resources
and rollback). ·
Several
cars may have to be backed up if a deadlock occurs. ·
Starvation
is possible. System Model ·
Resource
types R1, R2, . . ., Rm CPU
cycles, memory space, I/O devices ·
Each
resource type Ri has Wi instances. ·
Each
process utilizes a resource as follows: 1.
request
2.
use
3.
release Deadlock can arise if four
conditions hold simultaneously. ·
Mutual
exclusion: only one process at a time can use a
resource. ·
Hold
and wait: a process holding at least one resource is
waiting to acquire additional resources held by other processes. ·
No
preemption: a resource can be released only voluntarily
by the process holding it, after that process has completed its task. ·
Circular
wait:
there exists a set {P0, P1, …, P0}
of waiting processes such that P0 is waiting for a resource
that is held by P1, P1 is waiting for a
resource that is held by P2,
…, Pn–1 is waiting for a resource that is held
by Pn, and P0 is waiting for a resource
that is held by P0. Resource-Allocation Graph A set of vertices V and a set of edges E. ·
V
is partitioned into two types: 1.
P = {P1, P2,
…, Pn}, the set consisting of all the processes in the
system. 2.
R = {R1, R2,
…, Rm}, the set consisting of all resource types in the
system. ·
request
edge – directed edge P1 ® Rj ·
assignment
edge – directed edge Rj ® Pi 4 Process
4 Resource Type with 4 instances
4 Pi requests instance of Rj
4 Pi is holding an instance of Rj
Example of a Resource Allocation
Graph Resource Allocation
Graph With A Deadlock Graph With A
Cycle But No Deadlock Basic Facts 4 If graph contains no cycles Þ no deadlock. 4 If graph contains a cycle Þ 1.
if
only one instance per resource type, then deadlock. 2.
if
several instances per resource type, possibility of deadlock. Methods for
Handling Deadlocks 4 Ensure that the system will never
enter a deadlock state. 4 Allow the system to enter a
deadlock state and then recover. 4 Ignore the problem and pretend that
deadlocks never occur in the system; used by most operating systems,
including UNIX. Deadlock
Prevention Restrain the
ways request can be made 4
Mutual
Exclusion – not
required for sharable resources; must hold for nonsharable resources. 4
Hold
and Wait – must guarantee that whenever a
process requests a resource, it does not hold any other resources. 1.
Require
process to request and be allocated all its resources before it begins
execution, or allow process to request resources only when the process has
none. 2.
Low
resource utilization; starvation possible. 4
No
Preemption – 1.
If
a process that is holding some resources requests another resource that
cannot be immediately allocated to it, then all resources currently being
held are released. 2.
Preempted
resources are added to the list of resources for which the process is
waiting. 3.
Process
will be restarted only when it can regain its old resources, as well as the
new ones that it is requesting. 4
Circular
Wait – impose a total ordering of all
resource types, and require that each process requests resources in an
increasing order of enumeration.
|
|||||||||||||||||||||||||||
|
UNIT
3/LECTURE 9 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Deadlock
Avoidance Requires that the system has some additional a
priori information available. 4 Simplest and most useful model
requires that each process declare the maximum number of resources of
each type that it may need. 4 The deadlock-avoidance algorithm
dynamically examines the resource-allocation state to ensure that there can
never be a circular-wait condition. 4 Resource-allocation state is
defined by the number of available and allocated resources, and the maximum
demands of the processes. Safe State 4
When
a process requests an available resource, system must decide if immediate
allocation leaves the system in a safe state. 4
System
is in safe state if there exists a sequence <P1, P2,
…, Pn> of ALL the
processes is the systems such
that for each Pi, the
resources that Pi can still request can be satisfied by currently
available resources + resources held by all the Pj, with
j < i. 4
That
is: 1.
If
Pi resource needs are not immediately available, then Pi
can wait until all Pj have finished. 2.
When
Pj is finished, Pi can obtain needed
resources, execute, return allocated resources, and terminate. 3.
When
Pi terminates, Pi +1 can
obtain its needed resources, and so on. Basic Facts 4 If a system is in safe state Þ no deadlocks. 4 If a system is in unsafe state Þ possibility of deadlock. 4 Avoidance Þ ensure that a system will never
enter an unsafe state. Safe, Unsafe ,
Deadlock State Avoidance algorithms 4
Single
instance of a resource type. Use a
resource-allocation graph 4
Multiple
instances of a resource type. Use the
banker’s algorithm Resource-Allocation Graph Scheme 4 Claim edge Pi ® Rj indicated
that process Pj may request resource Rj;
represented by a dashed line. 4 Claim edge converts to request edge
when a process requests a resource. 4 Request edge converted to an
assignment edge when the resource is
allocated to the process. 4 When a resource is released by a
process, assignment edge reconverts to a claim edge. 4 Resources must be claimed a
priori in the system. Resource-Allocation Graph Unsafe State In
Resource-Allocation Graph Resource-Allocation Graph Algorithm 4 Suppose that process Pi
requests a resource Rj 4 The request can be granted only if
converting the request edge to an assignment edge does not result in the
formation of a cycle in the resource allocation graph Banker’s
Algorithm 4
Multiple
instances. 4
Each
process must a priori claim maximum use. 4
When
a process requests a resource it may have to wait. 4
When
a process gets all its resources it must return them in a finite amount of
time. Data Structures
for the Banker’s Algorithm Let n =
number of processes, and m = number of resources types 4
Available: Vector of
length m. If available [j] = k, there are k
instances of resource type Rj available. 4
Max: n x m matrix. If Max
[i,j] = k, then process Pi may request at
most k instances of resource type Rj. 4
Allocation:
n x m
matrix. If Allocation[i,j] = k
then Pi is currently allocated k instances of Rj.
4
Need:
n x m
matrix. If Need[i,j] = k, then Pi may
need k more instances of Rj to complete
its task.
Safety Algorithm 1.
Let
Work and Finish be vectors of length m
and n, respectively. Initialize: Work = Available Finish [i] = false for i
= 0, 1, …, n- 1. 2.
Find and i such that both: (a) Finish [i] = false
(b) Needi £ Work If no such i exists,
go to step 4. 3. Work = Work + Allocationi 4.
If Finish [i] == true for all i, then the system
is in a safe state. Resource-Request
Algorithm for Process Pi Request
= request vector for process Pi.
If Requesti [j] = k then process Pi wants k
instances of resource type Rj 1.
If Requesti £ Needi go to step 2. Otherwise, raise error condition, since
process has exceeded its
maximum claim. 2. If Requesti 1£
Available, go to step 3. Otherwise
Pi must wait, since resources are not
available. 3. Pretend to allocate requested
resources to Pi by modifying the state as follows: Available =
Available – Request; Allocationi
= Allocationi + Requesti; Needi =
Needi – Requesti; a.
If safe Þ
the resources are allocated to Pi. b.
If unsafe Þ
Pi must wait, and the old resource-allocation state is restored Example of
Banker’s Algorithm 4 5 processes P0 through P4; 3 resource types: A (10
instances), B (5instances), and
C (7 instances). 4 Snapshot at time T0: Allocation Max Available
A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2
0 0 3 2 2 P2
3 0 2 9 0
2 P3
2 1 1 2 2 2 P4
0 0 2 4 3 3
4 The content of the matrix Need
is defined to be Max – Allocation. Need
A
B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 4 The system is in a safe state since
the sequence < P1, P3, P4,
P2, P0> satisfies safety criteria. Example: P1 Request (1,0,2) 4 Check that Request £ Available (that is, (1,0,2) £ (3,3,2) Þ true. 4 Allocation Need Available A
B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0
2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 4 Executing safety algorithm shows that
sequence < P1, P3, P4,
P0, P2> satisfies safety requirement. 4 Can request for (3,3,0) by P4
be granted? 4 Can request for (0,2,0) by P0
be granted?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UNIT
3/LECTURE 10 |
|||||||||||||||||||||||||||
|
Deadlock
Detection 4 Allow system to enter deadlock
state 4 Detection algorithm 4 Recovery scheme Single Instance
of Each Resource Type 4 Maintain wait-for graph a.
Nodes
are processes. b.
Pi ® Pj if Pi is
waiting for Pj. 4 Periodically invoke an algorithm
that searches for a cycle in the graph. If there is a cycle, there exists a
deadlock. 4 An algorithm to detect a cycle in a
graph requires an order of n2 operations, where n is
the number of vertices in the graph. Resource-Allocation
Graph and Wait-for Graph Resource-Allocation
Graph Corresponding
wait-for graph Several
Instances of a Resource Type 4
Available: A vector of
length m indicates the number of available resources of each type. 4
Allocation: An n x
m matrix defines the number of resources of each type currently allocated
to each process. 4
Request: An n x
m matrix indicates the current request
of each process. If Request [ij]
= k, then process Pi is requesting k more
instances of resource type. Rj. Detection
Algorithm 1. Let Work and Finish
be vectors of length m and n, respectively Initialize: (a) Work = Available
(b) For i = 1,2, …, n, if Allocationi ¹ 0, then 2. Find an index i such that
both: (a) Finish[i]
== false (b) Requesti
£ Work
If no such i
exists, go to step 4. 3. Work
= Work + Allocationi 4.
If Finish[i] == false, for some i, 1 £ i £
n, then the system is in deadlock state.
Moreover, if Finish[i] == false, then Pi
is deadlocked. Example of
Detection Algorithm 4
Five
processes P0 through P4; three
resource types 4
Snapshot
at time T0: Allocation Request Available A B C A B C A B C P0
0 1 0 0 0 0 0 0 0 P1
2 0 0 2 0 2 P2
3 0 3 0 0 0 P3
2 1 1 1 0 0 P4
0 0 2 0
0 2 4 Sequence <P0, P2,
P3, P1, P4> will
result in Finish[i] = true for all i. 4 P2 requests an additional instance of type C. Request
A
B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 4 State of system? 1.
Can
reclaim resources held by process P0, but insufficient
resources to fulfill other processes; requests. 2.
Deadlock
exists, consisting of processes P1, P2, P3,
and P4. Detection-Algorithm
Usage ·
When,
and how often, to invoke depends on: 1.
How
often a deadlock is likely to occur? 2.
How
many processes will need to be rolled back? 4
one
for each disjoint cycle ·
If
detection algorithm is invoked arbitrarily, there may be many cycles in the
resource graph and so we would not be able to tell which of the many
deadlocked processes “caused” the deadlock. Recovery from
Deadlock: Process Termination 4
Abort
all deadlocked processes. 4
Abort
one process at a time until the deadlock cycle is eliminated. 4
In
which order should we choose to abort? ·
Priority
of the process. ·
How
long process has computed, and how much longer to completion. ·
Resources
the process has used. ·
Resources
process needs to complete. ·
How
many processes will need to be terminated. ·
Is
process interactive or batch? Recovery from
Deadlock: Resource Preemption 4
Selecting
a victim – minimize cost. 4
Rollback
– return to some safe state, restart process for that state. 4
Starvation
– same process may always be picked as
victim, include number of rollback in cost factor.
|
|||||||||||||||||||||||||||