Tutorial Week 6


Resources & Deadlock

Q1: What is deadlock?

Q2: What is starvation, give an example?

Q3: Describe the four conditions required for deadlock to occur.

Q4*: Describe four ways to prevent deadlock by attacking the conditions required for deadlock.

Q5*: Answer the following questions about the tables.

  1. Compute what each process still might request and display in the columns labeled "still needs".
  2. Is the system in a safe or unsafe state? Why?
  3. Is the system deadlocked? Why or why not?
  4. Which processes, if any, are or may become deadlocked?
  5. Assume a request from p3 arrives for (0,1,0,0)
    • Can the request be safely granted immediately?
    • In what state (deadlocked, safe, unsafe) would immediately granting the request leave the system?
    • Which processes, if any, are or may become deadlocked if the request is granted immediately?
r1 r2 r3 r4
2 1 0 0
current allocation maximum demand       still needs    
process r1 r2 r3 r4 r1 r2 r3 r4 r1 r2 r3 r4
p1 0 0 1 2 0 0 1 2
p2 2 0 0 0 2 7 5 0
p3 0 0 3 4 6 6 5 6
p4 2 3 5 4 4 3 5 6
p5 0 3 3 2 0 6 5 2

Memory Management

Q6: Describe internal and external fragmentation.?

Q7: What are the problems with multiprogrammed systems with fixed-partitioning?

Q8: Assume a system protected with base-limit registers. What are the problems with such a protected system (compared to a paged or segmented VM system)?

Q9*: A program is to run on a multiprogrammed machine. Describe at which points in time during program development to execution time where addresses within the program can be bound to the actual physical memory it uses for execution? What are the implication of using each of the three binding times?