



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Main points of this exam paper are: Mesa Solution, Operating System, Big Monitor, Thread Priorities, Easily Eliminated, Entering the Monitor, Process Debugging
Typology: Exams
1 / 6
This page cannot be seen from the preview
Don't miss anything!




NOTE: Please write your ID on every page of the exam. Answer each question on its own page; you may use the back if you need extra space. Answers on any other pages of the exam will NOT be graded.
Question Score Points 1 10 2 10 3 10 4 10 5 10 Total 50
a) The Linux operating system implements the OS inside a big monitor (euphemistically called the ”Big Kernel Lock” or BKL). Using the approach and terminology from the Mesa paper, describe what problem(s) this poses and how it can be avoided. Finally, discuss what new problem is presented by the Mesa solution to this problem. You don’t need to know anything special about Linux to answer this question.
b) Considering the following Mesa monitor code:
PROCEDURE Test() BEGIN SIGNAL(c); END
In a system with two different thread priorities, how might this construction be inefficient (i.e. waste CPU time)? However, in this particular case (SIGNAL is last statement in the monitor) the overhead could be easily eliminated. How? If there are three different thread priorities how might a medium-priority thread prevent a high-priority thread from running indefinitely without ever entering the monitor?
a) Show, by example, that there is a two-phase locking protocol that can deadlock. Do not consider self-deadlocks, such as a transaction attempting to acquire a lock on a table that it has already locks.
b) Do you expect that a common technique for a database to avoid deadlock is to use hierarchical locking? Explain your reasoning.
c) Do you expect that a common technique for a database to avoid deadlock is to use the Banker’s algorithm? Explain your reasoning.
a) Describe some of the relative advantages of using multi-threaded, multi-process, and event- driven network services. Consider issues of portability to multiple platforms, performance, and simplicity of the overall code. Please briefly justify your position on the relative merits of each approach.
b) What are some of the challenges and techniques for making a remote procedure call transparent? What role do idempotent operations play in this space? What about marshaling/unmarshaling arguments?