Transcript ppt

CS533 Concepts of Operating Systems
Class 3
Monitors
Questions


Which multi-threaded 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?
How does encapsulation help with synchronization?
How can mutual exclusion in a monitor be enforced?
o
… on uniprocessors and multiprocessors?
CS533 - Concepts of Operating Systems
2
Questions



Do monitors solve the deadlock problem?
Why restrict signal to affect only waiting processes
in the “same” monitor?
Why hand-off the resource directly from the
signaling process to the signaled waiting process?
o
o
What is the advantage of restricting signal calls to be the
last statement of a monitor procedure?
What implications does this have for assumptions that can
be made by processes waking up from a wait?
CS533 - Concepts of Operating Systems
3
Questions



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)?
How might the queuing discipline for waiting
processes avoid starvation?
CS533 - Concepts of Operating Systems
4
Questions

In Hoare’s bounded buffer example, he assumes that
the time taken to produce or consume is very large
in comparison with the time taken to append or
remove an item from a list
o
o
What are the implications of this?
Are there similar assumptions in the readers/writers
example?
CS533 - Concepts of Operating Systems
5
Questions


What are the implications of allowing monitor calls
to make calls to different monitors?
Which kinds of monitor procedures do not need to
acquire/release the monitor lock?
CS533 - Concepts of Operating Systems
6
Questions

How does non-preemption solve concurrency
problems?
o
o
o
What problem does it have on multiprocessors?
What problem does I/O present?
What problem does page faults present?
CS533 - Concepts of Operating Systems
7
Questions

Mesa operates in an environment that doesn’t use
hardware protection
o

What are the implications for the cost of monitor
operations?
How is processes creation in Mesa similar to thread
creation in Pthreads?
o
o
o
Why join?
Why detatch?
Why might you still use p after calling Detach[p]?
CS533 - Concepts of Operating Systems
8
Questions


How is handling exceptions in root procedures of
processes more complicated than in normal Mesa
procedures?
What issues arise when an exception is generated
within a monitor procedure?
o
What does UNWIND do in Mesa?
CS533 - Concepts of Operating Systems
9
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
o
Why do Hoare semantics require more context switches?
Why do they require the signaling mechanism to be
reliable?
CS533 - Concepts of Operating Systems
10
Questions

What are the advantages of Mesa’s wait/notify
semantics?
o
o
o
Why does it help to enable timeouts for waiting processes?
Why does it help to enable broadcast?
Why is Mesa’s use of broadcast encouraged by their use of
compiler-supported protection in a single user environment?
CS533 - Concepts of Operating Systems
11
Questions

How might you use monitors for I/O
o
o

Can interrupts be treated as signals?
What if no process was waiting?
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
12
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
13
Reminder


Please mail me your slides to put on the web page
The next paper is work in progress, presented by
Paul McKenney of IBM.
CS533 - Concepts of Operating Systems
14