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,
ready and waiting to execute.

          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

 

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

95-101

 

 

 

                                                                                      

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

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

Q1.

Explain short term, medium term and long term scheduling?

Dec, 2011

10

Q2.

Explain the following terms with examples: (i) critical section (ii) Mutual Exclusion (iii) Race Condition

Dec , 2011

10

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

95-110

 

 

 

 

 

 

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:

    1.  value (of type integer)
    2.  pointer to next record in the list

·         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.

 

\

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

Q1.

What are monitors? How are they useful in process synchronization? Discuss the features of it.

Dec, 2011

10

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

201-205

 

 

 

UNIT 3/LECTURE 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

          

 

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

1

Explain critical section problem ?

Jun-11

5

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

209-215

 

 

 

 

 

 

 

 

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.

 

S.NO

RGPV QUESTION

YEAR

MARKS

 

 

 

 

 

 

 

 

 

 

 

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
Shortest-Remaining-Time-First (SRTF)

 

·         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

 

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

 

 

 

 

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

151-162

 

 

 

 

 

 

 

 

 

 

 

 

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:
           foreground (interactive)
           background (batch)

·         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

 

 

 

 

 

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

1

Suppose that the given ahead processes arrive for execution at time indicated:

Process

Arrival Time

Burst Time

P1

0.0

8

P2

0.4

4

P3

1.0

1

 

Calculate average turn around time , avg waiting time and throughput

(i) FCFS

(ii) SRTF

(iii) Non-Preemptive SJF

Jun-11

20

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

163-172

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

Q1.

What are various ways to avoid Deadlock?

Dec, 2011

10

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

243-255

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.


                         Need [i,j] = Max[i,j] – Allocation [i,j].

 

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
             Finish[i] = true
             go to step 2.

      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 MaxAllocation.

                                   

                                     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?

 

 

 

 

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

Q1.

Assume a maximum claim reusable resource system with 4 processes and 3 resource types. The claim matrix is given by

 

C =

4

1

4

3

1

4

5

7

13

1

1

6

 

Where c(i,j) denotes denotes maximum claim of process i for resource j. The total units of each resource type are given by vector (5, 8, 16). The allocation of resources is given by the matrix :

 

 

 

 

A =

0

1

4

2

0

1

1

2

1

1

0

3

 

  

Where A(i,j) denotes the number of the unit of resource j that are currently allocated to process i

(i) Find if the current state of the system is safe?

(ii) find if a granting of a request by process 1 for 1unit of resource type 1 can safely be done?

(iii) find if the granting of a request by process 3 for 6 units of resources 3 can safely be done?

 

Dec - 11

10

2

Describe the Banker’s algorithm for safe allocation. Consider the system with 3 processes and three resource types and at time to the following snapshot of the system has been taken:

Process

Allocated

Maximum

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

P1

2

2

3

3

6

8

7

7

10

P2

2

0

3

4

3

3

 

 

 

P3

1

2

4

3

4

4

 

 

 

 

(a) Is the current allocation a safe state ?

(b) Would the following requests be granted in the current safe state ?

(i) Process P2 requests (1, 0).

(ii) Process P1 requests (1, 0).

Jun-11

15

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

253-260

 

 

 

 

 

 

 

 

 

 

 

 

 

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
                          Finish[i] = false;otherwise, Finish[i] = true.

 

 

         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
               Finish[i] = true
               go to step 2.

          

           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
A (7 instances), B (2 instances), and C (6 instances).

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.

 

 

 

 

 

S.NO

RGPV QUESTION

YEAR

MARKS

 

 

 

 

 

 

 

 

 

REFERNCES

S.NO

BOOK  NAME

AUTHORS

Edition

PAGE NO

  1

   OPERATING  SYSTEM  CONCEPT

Peter Bare Galvin, Abraham Silberschatz

SIXTH

260-264

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Back To Home