Transcript ppt

Class Discussion
CS533 - Concepts of Operating Systems
1
Questions


Which concurrent programming problems do
monitors address?
Are monitors useful as a programming convention,
i.e., without compiler support?
o


What is the convention?
With compiler support for monitors, what are the
important tasks of the compiler?
Why does encapsulation help with synchronization?
CS533 - Concepts of Operating Systems
2
Questions




Do monitors solve the deadlock problem?
How might the queuing discipline for waiting
processes avoid starvation?
Why do we need condition variables instead of a
single waiting queue per monitor?
Does a condition variable have a value (such as
true/false)?
CS533 - Concepts of Operating Systems
3
Questions

What are the implications of allowing monitor calls
to make calls to different monitors?
o

Should the monitor lock be released before such a call?
Which kinds of monitor procedures do not need to
acquire/release the monitor lock, and why?
CS533 - Concepts of Operating Systems
4
Questions

How does non-preemptive scheduling solve
concurrency problems?
o
o
o

What problem does it have on multiprocessors?
What problem does I/O present?
Why are page faults a problem for this approach?
How can mutual exclusion in a monitor be enforced?
o
… on uniprocessors and multiprocessors?
CS533 - Concepts of Operating Systems
5
Questions

Mesa operates in an environment that doesn’t use
hardware protection
o

How does this affect the cost of monitor operations?
How is processes creation in Mesa similar to thread
creation in Pthreads?
o
o
o
o
Why join?
Why detatch?
Why might you still use p after calling Detach[p]?
What dangling reference problems can arise with process
pointers?
CS533 - Concepts of Operating Systems
6
Questions

What is the difference between Hoare’s semantics
for wait/signal and Mesa’s wait/notify?
o
o

What invariants can be assumed in each case?
What implications does this have for code surrounding a
wait call?
What is the advantage of Hoare’s semantics for
wait/signal vs Mesa’s wait/notify?
o
Why do Hoare semantics require more context switches?
CS533 - Concepts of Operating Systems
7
Questions

What are the advantages of Mesa’s wait/notify
semantics?
o
o
In what way does it enable the use of timeouts?
In what way does it encourage the use of broadcast?
CS533 - Concepts of Operating Systems
8
Questions

How can devices make monitor calls?
o
o
o
If a device can’t wait on the monitor lock, how can it update
monitor state?
What is a naked notify, and who is waiting on it?
Why is a wakeup-waiting switch needed with naked notifies?
CS533 - Concepts of Operating Systems
9
Questions

Why implement process creation as a monitor?
o
o

How is fork implemented?
How are join and end implemented?
Why is fork/join so expensive compared to other
operations?
CS533 - Concepts of Operating Systems
10
Reminder



Check that you have been assigned a paper to
present!
Please mail me your presentation slides to put on the
web page
The next paper is work in progress, presented by me
CS533 - Concepts of Operating Systems
11