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