UNM Computer Science



Operating Systems and Architecture
Comprehensive Exam

August 18, 1998
Computer Science Department
University of New Mexico

The test monitor will answer some parts of these questions for you if you are unsure of what some of these terms mean. The only penalty is that you will not get any points for the part that was answered for you. You can still answer the other parts of the question. This can get you started on a question even if you are not sure of the definitions.

You can do any questions you want. You do not have to do all the parts of a single question. Instead you can pick the parts you want to answer. Be sure that it is absolutely clear which questions you are answering.

Do enough questions to total at least 100 points. It is okay to go over 100 points and you can answer as many questions as you wish but all the questions you answer will be counted in your grade and the total will be normalized to 100 points. We will not take the best 100 points.

  1. File systems (15 points) Typical file systems do not operate disks at their capacity, that is, the disk drives and disk controllers are not transferring nearly as much data as they are capable of. Why not? What are some possible solutions to this problem?
  2. Scheduling (15 points) Most modern operating systems use multiple levels of queues for scheduling. Explain in some detail how these systems work and why they work well.
  3. Protection
    1. (5 points) Describe the matrix model of protection.
    2. (5 points) Describe the access-list method of protection and how it relates to the matrix model.
  4. Resource allocation (15 points) Consider the following statement, "All resource allocation and optimization decisions involve predicting the future." Explain what this statement means. Give several examples where it is true. Give any examples you can think of where it is not true.
  5. Handling of SCSI and network devices (20 points) A SCSI controller controls a bus and an Ethernet controller controls a bus. Compare how these two controllers will be handled by the operating system. Which parts of the operating system will be concerned with each one? How will each one be virtualized (if at all)? Relate this to the differences between a SCSI bus and an Ethernet bus.
  6. Caches
    1. (5 points) Contrast the terms "write-through" and "write-back" when applied to cache line replacement.
    2. (10 points) Explain how you can implement coherence on a shared bus multiprocessor system when each processor uses a write-back replacement policy.
  7. Instruction set architecture (20 points) One of the most common arguments in systems is static versus dynamic. In the context of instruction set architecture, static means scheduling that is done by the compiler (prior to program execution), dynamic means scheduling that is handled by the hardware (during program execution). Give a brief characterization of this debate in the context of instruction set architectures. You should consider register scheduling (static) versus large caches (dynamic) and multiple, parallel instructions per instruction word (a.k.a., VLIW—very large instruction words) versus out of order and speculative execution.
  8. Networks and operating systems Modern networks are capable of delivering data at bandwidths that are comparable to a memory bus. For example, a PCI bus is capable of delivering memory blocks at a rate of 120 Mbytes/sec and a Myrinet network is capable of delivering message blocks at a rate of 60 Mbytes/sec. To avoid a significant loss of bandwidth, it is critical that the networking system deliver messages directly to the application and avoid making copies whenever possible.
    1. (5 points) Given the example of 120 MB/S for the memory bus and 60 MB/S for the network, what is the effective message bandwidth if every message requires a memory copy (you should ignore other overheads that might be introduced). Repeat this calculation assuming that the memory bandwidth is 10 MB/S and the network bandwidth is 2 MB/S.
    2. (15 points) Discuss the problems that must be addressed when delivering messages directly to the memory for an application