Questions
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.
- Compute what each process still might request and display in the
columns labeled "still needs".
- Is the system in a safe or unsafe state? Why?
- Is the system deadlocked? Why or why not?
- Which processes, if any, are or may become deadlocked?
- 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?
| available |
| 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 |
|
|
|
|
Threads
Q6: Compare cooperative versus preemptive multithreading?
Q7: Describe user-level threads and kernel-level
threads. What are the advantages or disadvantages of each approach?
Q8: Describe a plausible sequence of activities that occur
when a timer interrupt results in a context switch.
|