CMSC 412 Final
(Spring 1998)
(20 points) Define (or explain) the following
terms:
a)
I/O (disk) protection
b)
semaphore (as a synchronization abstraction)
c)
server
d)
critical section
e)
monitor (as a synchronization abstraction)
2.)
(15 points) Explain
the differences between short, medium, and long term scheduling. Be specific in the goals of each type of
scheduling and the resources being managed.
3.)
(20 Points) Computer
networks can be arranged as a buses, stars, rings, or meshes. Define each of these topologies and list one
advantage for each.
4.)
(25 points) Consider a machine that supports a 44 bit
virtual address, a page size of 16k (214) bytes, that each page
table entry is 8 bytes, and that uses conventional page tables.
a)
What is the maximum number of page faults that could possibly
be associated with any memory reference (you may assume memory references are
aligned).
b)
Assume that we accessed 224 contiguous elements of
an integer array (integers are 4 bytes).
What is the maximum number of page faults that can occur?
c)
On some machines translation look-aside buffer (TLB) misses
trap into the operating system, and on other systems they are handled by the
hardware. Give two advantages of each
approach.
5.)
(30 points)
Synchronization.
a)
Sally Smartcoder is worried about synchronization in a system
where multiple processes are running on different processors sharing
memory. Her application has 10,000
disjoint shared objects (i.e., they are used and updated separately). To handle
synchronization she declares one semaphore, mutex, for the entire
application. Why might this approach
not be the best one.
b)
Explain why a spin (busy waiting) followed by a semaphore (if
the lock isn’t acquired after a short timeout) is a useful type of
synchronization for parallel computers, but just a semaphore is better for
single processor systems.
c)
Given an atomic test-and-set instruction, show how you could
build an atomic swap.
6.)
(25 Points) RPC
Bundlers. One of the problems with RPC bundlers is how to pass a pointer based
data structure (such as a graph or a tree) to a remote machine.
a)
Describe a way to achieve a deep copy (transfer of the entire
data structure) to the remote machine.
b)
If a data structure is large, performing a deep copy can
transfer too much data that is often not needed for the RPC. Describe how you could implement a shallow
copy that only transferred part of the data structure with the initial RPC, but
still permits access to the entire data structure by the remote process.
7.)
(15 points) UNIX
includes a feature called a setuid bit.
When this bit is set, a program can execute with either the privilege of
the user starting the command or the user who owns the executable image. Explain why it is important to ensuring
security to clear this bit before letting someone run a debugger.