Nota Bene: The review questions given below are of the True-and-False or short-answer variety. The four or so questions on the final exam, on the other hand, are likely to be more developed, involving multiple parts each. Also, the review questions do NOT cover all of the topics that you may be asked about on the actual final exam. You must study all of the assigned chapters (and the Java threads lecture) independently of this review to give yourself the best chance to do well on the exam.
1. [20 points, 1 each] True or False, circle T or F.
T F a. A binary semaphore takes on numerical values 0 and 1 only.
T F b. An atomic operation is a machine instruction or a sequence of instructions
that must be executed to completion without interruption.
T F c. Deadlock is a situation in which two or more processes (or threads) are wait-
ing for an event that will occur in the future.
T F d. Starvation is a situation in which a process is denied access to a resource
because of the competetive activity of other, possibly unrelated, processes.
T F e. While a process is blocked on a semaphore's queue, it is engaged in busy
waiting.
T F f. Circular waiting is a necessary condition for deadlock, but not a sufficient
condition.
T F g. Mutual exclusion can be enforced with a general semaphore whose initial value
is greater than 1.
T F h. External fragmentation can occur in a paged virtual memory system.
T F i. External fragmentation can be prevented (almost completely) by frequent use
of compaction, but the cost would be too high for most systems.
T F j. A page frame is a portion of main memory.
T F k. Once a virtual memory page is locked into main memory, it cannot be written
to the disk.
T F l. Pages that are shared between two or more processes can never be swapped out
to the disk.
T F m. The allocated portions of memory using a buddy system are all the same size.
T F n. Demand paging requires the programmer to take specific action to force the
operating system to load a particular virtual memory page.
T F o. Prepaging is one possibility for the fetch policy in a virtual memory system.
T F p. The resident set of a process can be changed in response to actions by other
processes.
T F q. The working set of a process can be changed in response to actions by other
processes.
T F r. The translation lookaside buffer is a software data structure that supports
the virtual memory address translation operation.
T F s. In a symmetric multiprocessor, threads can always be run on any processor.
T F t. Thrashing will never be a problem if the system has 1 GB of real memory.
2. [20 points, 5 each] Short answers and simple diagrams.
(a) Define the resident set of a process.
(b) Define the working set of a process.
(c) What problems could occur if virtual memory pages are always allocated in groups
of four?
(d) What information is used by the Least Recently Used page replacement policy, and
how does this compare to the information used by the various Clock algorithms?
3. [20 points, 5 each] Short answers and simple diagrams.
(a) In terms of memory allocation, what is a reference counter? Why is it needed?
(b) Explain why, or why not, internal fragmentation can be a problem when using the
best fit algorithm for memory allocation.
(c) One of the options in a mainframe OS is to limit the number of jobs (processes)
currently in the system. What are some of the benefits of this capability?
(d) In what circumstances of virtual memory is the placement policy an important issue?
4. [20 points, 5 each] Short answers.
(a) What are four general characteristics of processor scheduling policies?
clarification - "characteristics" could mean goals, requirements,
features of algorithms, information requirements, etc.
(b) Define Turnaround Time and Normalized Turnaround Time. Why are these useful for
measuring the performance of a scheduling algorithm?
(c) What would be the effect of a large number of page faults by a process on that
process's page allocation on a nonpreemptive operating system?
(d) What are four actions or decisions that a preemptive virtual memory operating
system would make at the end of a time quantum (in response to a timer interrupt)?
5. [20 points]
This function is proposed for use in an operating system, with the definitions of
Process, Process_Set and other functions given elsewhere.
Process next_process(Process_Set available_processes) {
Process_Set A = highest_valuation(available_processes); /* priority ranking */
Process_Set B = earliest(A); /* actual arrival time */
Process c = random_selection(B); /* tie-breaker */
return c; /* run this process next */
}
(a) [5] Explain why this function could lead to processor starvation among the
available processes.
(b) [5] Suppose one of the criteria used by the highest_valuation function is the
process's fraction of virtual memory pages currently in main memory. Explain
why this is not a good idea.
(c) [10] Define a version of the highest_valuation function (in the same style, but
with some more descriptive comments) for the Shortest Process Next scheduling
policy. Describe the data requirements and how this data is obtained.