1. Explain the difference between a semaphore and a monitor. Also give the classical definitions of
the wait() and signal() operations, as well as one programming example (in a block-structured
pseudocode language) of the implementation of a monitor.
2. Discuss what is meant by a real-time system. Explain the difference between a hard and a soft
3. Consider a file currently consisting of 100 blocks. Assume that the file control block (and the index
block in the case of indexed allocation) is already in memory. Calculate for (a) and (b) below how many
disk I/O operations are required for each of contiguous, linked and indexed single-level allocation
strategies, if, for one block, the following conditions hold: In the contiguous-allocation case, assume that
there is no room to grow at the beginning of the file, but there is room to grow at the end. Assume also
that the block information to be added is already in memory. Explain your reasoning and show all your
4. Write a well-planned essay in which you discuss the three schemes circuit switching, message switching
and packet switching, all used to connect pairs of processes that want to communicate over a computer
network. Discuss the advantages and disadvantages of each of these schemes as well as their similarities
with everyday systems.