Useful Links
Sys comps. home
Weighted comps. Topics
Questions in chronological order
Questions sorted by topic
2007 cs591: Networks and Distributed Systems
The CS department's
Comprehensive Exams
page with general information, and information about all three parts of the exam.
|
About This Page
Below is a list of systems comprehensive Ph.D. exam questions given by the computer
science department of the University of New Mexico. The list contains all questions
that I have available from the last ten years or so.
Use the navigation bar to jump to a particular year. Use the side bar to learn
more about the systems exam, or use the resources available to prepare for the exam.
Spring 1997
| Topic | Election algorithms |
| Date | Spring 1997 |
| Question | 1.1 |
| Worth | 20 points points |
| In a parallel operating system it is sometimes necessary to have an election, that is, one of the machines on the network is elected to fulfill some function (like be a file server). Describe as many situations as you can where such an election would be necessary. Sketch out one algorithm to do such an election. Analyze the algorithm in terms of the likelihood that different kinds of failures will cause the algorithm to fail. |
|
| Topic | Device drivers and file system drivers |
| Date | Spring 1997 |
| Question | 1.2 |
| Worth | 20 points points |
| The device driver interface essentially virtualizes a disk drive, that is, it provides a common set of function that can be used to control any disk drive. This allows the rest of the operating system to treat all disk alike. Give an example of a disk driver interface, that is, give on example of a common list of functions that a disk driver will provide.
Most modern operating systems can handle several different file system organizations. Give two different file system organization and describe them briefly. Operating system usually provide this functionality with a file system driver. A file system driver is like a disk driver but it virtualized a file system with a common set of functions. Describe a possible interface to a file system driver, that is, a common set of functions that can be used to control any file system. |
|
| Topic | Load control |
| Date | Spring 1997 |
| Question | 1.3 |
| Worth | 20 points points |
| An important aspect of a virtual memory system is load control. Describe what the load control is and why it is important. Give one algorithm for load control and describe why you think it will work. |
|
| Topic | Authentication |
| Date | Spring 1997 |
| Question | 1.4 |
| Worth | 20 points points |
| What is authentication in an operating system? What is it used for and why is it important? What are some common methods of authentication? Why is authentication more difficult in a distributed operating system? How is cryptography used for authentication? |
|
| Topic | Memory Caching |
| Date | Spring 1997 |
| Question | 1.5 |
| Worth | 20 points points |
| Memory caches can work with either virtual addresses or physical addresses. Which is the most common? What are the tradeoffs between these two techniques? Describe two situations, one where each of the two techniques would be preferred. |
|
| Topic | Pipelining |
| Date | Spring 1997 |
| Question | 1.6 |
| Worth | 20 points points |
| The typical instruction interpretation pipeline for a RISC processor has four or five stages. Describe each of the stages in an instruction interpretation pipeline (four or five stages, your choice). Explain the difference between simple pipelining and super pipelining. What does the term superscalar mean? |
|
| Topic | Memory latency |
| Date | Spring 1997 |
| Question | 1.7 |
| Worth | 20 points points |
| Memory latency is probably the most fundamental problem in the design of modern computing systems. Why is memory latency such a fundamental problem? That is, if we can make processors so much faster, why can't we make memory so much faster? What is a ``multithreaded'' architecture? Explain how multithreaded architectures address the problem of memory latency. What does ``out of order execution'' mean? How does out of order execution address the problem of memory latency? |
|
Fall 1997
| Topic | Log-structured file systems |
| Date | Fall 1997 |
| Question | 1.1 |
| Worth | 15 points |
| What is a log-structured file system? What file system problems is a log-structured file system intended to solve? How well does it solve them? |
|
| Topic | Instruction scheduling |
| Date | Fall 1997 |
| Question | 1.10 |
| Worth | 15 points |
| Instruction scheduling What is the goal of dynamic instruction scheduling? Why might you expect that dynamic scheduling would do better than static scheduling? Briefly, describe a technique that provides dynamic instruction scheduling. |
|
| Topic | IPC |
| Date | Fall 1997 |
| Question | 1.2 |
| Worth | 15 points |
| Consider three methods of IPC (interprocess communication): shared memory, messages and RPC. Compare these three methods by giving the advantages and disadvantages of each one. Which can be implemented by using one of the others? |
|
| Topic | Access control lists |
| Date | Fall 1997 |
| Question | 1.3 |
| Worth | 15 points |
| Describe the access control list method for protection. Show how the UNIX protection system can be implemented with an access control list. |
|
| Topic | File caching |
| Date | Fall 1997 |
| Question | 1.4 |
| Worth | 15 points |
| In the Plan-9 operating system the local disk on a workstation contains no permanent files. The only permanent files are on the file servers on the network. The local disk contains swap areas and is a cache for files on the file server. Discuss the implications of this decision on the design of the operating system running on the local workstation. |
|
| Topic | Network file systems |
| Date | Fall 1997 |
| Question | 1.5 |
| Worth | 15 points |
| Describe how a network file system would be implemented. Assume you have an ordinary single machine operating system on the client machine and the file server machine. What changed have to be made in each operating system to support a network file system? |
|
| Topic | Inverted page tables |
| Date | Fall 1997 |
| Question | 1.6 |
| Worth | 15 points |
| What is an inverted page table? What problem is it intended to solve? |
|
| Topic | Hazards |
| Date | Fall 1997 |
| Question | 1.7 |
| Worth | 15 points |
| What are the four types of hazards encountered during instruction interpretation pipelining? Give a description of each hazard and an example using a load/store style instruction set. How do these hazards relate to data dependencies. |
|
| Topic | Caches |
| Date | Fall 1997 |
| Question | 1.8 |
| Worth | 15 points |
| Describe a simple snooping cache coherence protocol (either write-update or write-invalidate). When is a snooping protocol appropriate and when is it inappropriate? |
|
| Topic | Caches |
| Date | Fall 1997 |
| Question | 1.9 |
| Worth | 15 points |
| Give a brief description for each of the three types of cache misses. In addition, give a brief description of a technique that could be used to lessen the impact of this type of miss. |
|
Fall 1998
| Topic | File systems |
| Date | Fall 1998 |
| Question | 1.1 |
| Worth | 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? |
|
| Topic | Scheduling |
| Date | Fall 1998 |
| Question | 1.2 |
| Worth | 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. |
|
| Topic | Protection |
| Date | Fall 1998 |
| Question | 1.3 |
| Worth | 10 points |
|
- (5 points) Describe the matrix model of protection.
- (5 points) Describe the access-list method of protection and how it relates to the matrix model.
|
|
| Topic | Resource allocation |
| Date | Fall 1998 |
| Question | 1.4 |
| Worth | 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. |
|
| Topic | Handling of SCSI and network devices |
| Date | Fall 1998 |
| Question | 1.5 |
| Worth | 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. |
|
| Topic | Caches |
| Date | Fall 1998 |
| Question | 1.6 |
| Worth | 15 points |
|
- (5 points) Contrast the terms "write-through" and "write-back" when applied to cache line replacement.
- (10 points) Explain how you can implement coherence on a shared bus multiprocessor system when each processor uses a write-back replacement policy.
|
|
| Topic | Instruction set architecture |
| Date | Fall 1998 |
| Question | 1.7 |
| Worth | 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. |
|
| Topic | Networks and operating systems |
| Date | Fall 1998 |
| Question | 1.8 |
| Worth | 20 points |
| 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.
- (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.
- (15 points) Discuss the problems that must be addressed when delivering messages directly to the memory for an application
|
|
Fall 1999
| Topic | Java OS |
| Date | Fall 1999 |
| Question | 1.1 |
| Worth | 20 points |
| In the literature they have talked about a "Java operating system". This is an operating system for a system that only runs Java programs. (Lisp machines also ran only Lisp and had an operating system to support that.) How would a Java OS compare to a regular OS? What parts would it have and what parts would it not have (if any)? What parts would have their function changed? |
|
| Topic | Hardware abstraction layer |
| Date | Fall 1999 |
| Question | 1.2 |
| Worth | 20 points |
| A recent approach to operating system portability is the use of a hardware abstraction layer (HAL). Explain what a HAL is and its role in porting the operating system. Define a possible interface for a HAL. Explain your design decisions. Give some alternative you considered and explain why you choose the one you did. |
|
| Topic | Distributed file systems |
| Date | Fall 1999 |
| Question | 1.3 |
| Worth | 20 points |
| Consider the path of a file open system call and a file read system call. Follow each of these through the parts of the file and IO systems in a typical operating system. It will go through several levels, getting closer to the hardware at each level and finally ending up as a read of the disk device. There are, at least, the logical and physical levels of the file system. Now assume that the operating system implements a distributed file system and the file is really on another machine in the network. Follow the open and read requests in this situation and show the parts of each system they go through. |
|
| Topic | Address spaces |
| Date | Fall 1999 |
| Question | 1.4 |
| Worth | 25 points |
| Most operating systems provide a separate address space for each process but single-address-space (SAS) operating systems provide a single virtual address space that is shared by the operating system and all the processes the operating system runs.
- (3 points) In such a system it would be better to call the units of execution
threads rather than processes. Explain why.
- (8 points) Suppose you were to take a more conventional multiple-address-space
operating system and convert it to a SAS operating system. Describe the
changes you would have to make the accomplish this.
- (6 points) What are the advantages and disadvantages of a SAS operating
system over a multiple-address-space operating system?
- (5 points) How would memory protection be handled in a SAS operating system?
- (3 points) Some recent processors have 64-bit virtual address spaces. Why are
SAS operating systems attractive for such processors?
|
|
| Topic | Consistency and coherence |
| Date | Fall 1999 |
| Question | 1.5 |
| Worth | 20 points |
| In the context for a shared memory multiprocessor systems, explain the difference between the terms consistency and coherence as these terms relate to the manipulation of data structures. |
|
| Topic | Memory barrier |
| Date | Fall 1999 |
| Question | 1.6 |
| Worth | 15 points |
| Most of the newer instruction sets include a memory barrier instruction. What does this instruction do and why is it needed. |
|
| Topic | Memory gap |
| Date | Fall 1999 |
| Question | 1.7 |
| Worth | 20 points |
| The growing disparity between processor speeds and memory speeds is perhaps the most significant trend of the past ten years. Both memory and processors are getting faster, so what's the problem? Why can't we make memory as fast as processors (caution, this is a bit of a trick question)? What does the future look like--will this problem go away, or is it likely to become more and more significant? Discuss approaches to addressing this problem. |
|
Fall 2000
| Topic | Device drivers |
| Date | Fall 2000 |
| Question | 1.1 |
| Worth | 20 points |
| Suppose a computer system has a SCSI controller and the SCSI bus has three devices on it: a disk drive, a DAT drive, and a laser printer. What device drivers will the system need to control all this (the SCSI bus and the devices on it)? Describe the interfaces these drivers will have. What other drivers, other parts of the operating system, device controllers, and devices will they call (or communicate with)? Who will call each of these drivers? |
|
| Topic | Context switching |
| Date | Fall 2000 |
| Question | 1.2 |
| Worth | 20 points |
|
- (8 points) Explain what context switching in an operating system is. Go into some details
and describe what happens in both the hardware and the software during a context
switch. Explain what a half-context switch is. Talk about the registers and what happens
to them.
- (6 points) Context switching is not possible without some help from the hardware, that is,
an instruction specially designed to do the critical part of context switching. Explain why
such instructions are necessary. Be sure to describe the problem and why it cannot be
handled with ordinary instructions.
- (6 points) Context switching slows down the processor by quite a bit. We are not talking
about the time to execute the context switch itself but side effects from the context switch.
Explain why this is so, that is, describe why the process is slowed down after a context
switch.
|
|
| Topic | Address spaces |
| Date | Fall 2000 |
| Question | 1.3 |
| Worth | 20 points |
| Consider a system with 40-bit physical addresses and 48-bit logical addresses which are translated with a three-level page table. The system also has an address cache (usually called a TLB).
- (6 points) Decide on a good size for each page and the number of address bits assigned
to each level. Draw a diagram of the logical address and how each part is used.
- (9 points) Draw a diagram that explains how the address is translated from a logical
address coming in from the processor to a physical address to the bus. Include the TLB
in your diagram and show where it fits it. Use text annotations so that the diagram stands
by itself and can be understood easily.
- (5 points) Suppose a memory read cycle for a physical address put on the bus takes 50
ns. The processor will not see this speed because of the overhead for address
translation. Suppose we wanted the processor to see an average 60 ns memory read
time for reads from logical addresses. What would the hit rate on the TLB have to be to
achieve this goal.
|
|
| Topic | Authentication and Protection |
| Date | Fall 2000 |
| Question | 1.4 |
| Worth | 20 points |
| Define authentication and protection in an operating system and tell how they relate to each other. Describe one method of protection that can be used in an operating system. Describe one method for users to be authenticated and one method that operating systems can authenticate themselves to user. Give three examples of security attacks, one which exploits a protection failure, one of which exploits a user authentication failure and one of which exploits a system authentication failure. |
|
| Topic | Networks |
| Date | Fall 2000 |
| Question | 1.5 |
| Worth | 20 points |
| Computer networks are frequently described by the ISO/OSI 7-layer model. However, in practice, most TCP/IP/Ethernet LANs do not conform exactly to this model. Compare the ISO/OSI to TCP/IP/Ethernet layer by layer. For each layer in the TCP/IP/Ethernet, tell where you would expect to find it in an OS like UNIX or Linux. |
|
| Topic | Hardware |
| Date | Fall 2000 |
| Question | 1.6 |
| Worth | 20 points |
| Ten years ago, prognosticators predicted the "end of the millennium" PC machine would have the three G's (a gigahertz processor, a gigabyte of memory, and a gigabit network connection). Now that the new millennium is here, assess whether or not they were right (i.e., what is typical (for a new PC) for each of the three resources). What is your prediction for the 2010 machine and for each of the three resources. Justify in some detail your prediction. |
|
| Topic | Consistency and coherence |
| Date | Fall 2000 |
| Question | 1.7 |
| Worth | 20 points |
| In the context for a shared memory multiprocessor systems, explain the difference between the terms consistency and coherence as these terms relate to the manipulation of data structures. |
|
Spring 2001
| Topic | File Systems |
| Date | Spring 2001 |
| Question | 1.1 |
| Worth | 20 points |
| Define what it means to 'mount' a file system on a directory. Define it from the point of view of the OS user who is doing the mounting (that is, define the effect, not the implementation). What is the purpose of this operation? There are two kinds of mounting, mounting a file system on a local disk and mounting a file system on a remote disk (one available over the network). Describe how each of these types of mounting is implemented. Do this as follows. Describe the two basic operations, open and read. First describe how these are implemented on a normal file (not on a mounted file system and not remote). Describe the steps in the operation, paying particular attention to the OS data structures that are used and modified. Then describe the same operations on a file that is locally mounted. Finally describe these operations on a file that is remotely mounted. These do not have to be separate descriptions; in fact, it is better to combine them to show the similarities and differences. |
|
| Topic | User code in the kernel |
| Date | Spring 2001 |
| Question | 1.2 |
| Worth | 20 points |
| Suppose we would like to allow users to insert user code into the kernel. Why would you want to do this? Give some examples of where it would be useful. What are the problems that can occur if we try to do this? What are some possible solutions to these problems? |
|
| Topic | OS design |
| Date | Spring 2001 |
| Question | 1.3 |
| Worth | 20 points |
| Microkernel designs were once the rage in operating systems. Today, one rarely hears of microkernel designs. Contrast the microkernel approach to other OS design strategies. Describe the factors that lead to the rise of the microkernel approach. Is the current lack of interest in microkernel designs due to widespread acceptance of this approach or were there factors that lead to favoring other approaches? Be certain to support your responses with examples when possible. |
|
| Topic | System Design |
| Date | Spring 2001 |
| Question | 1.4 |
| Worth | 20 points |
| While processors continue to get faster, interrupt latencies (the time it takes to respond to an interrupt) are not improving at nearly the same rate. In many respects, this is similar to the situation in memory systems where memory systems are not improving at the same rate as the processor. Discuss the extent to which these problems are related. You should consider the source of the problem, the degree of effort being directed toward each problem, the extent to which a solution to one problem can be applied to the other, and likelihood that either or both of these problems will continue to be significant problems in the future. |
|
| Topic | System Design |
| Date | Spring 2001 |
| Question | 1.5 |
| Worth | 20 points |
| It is often said that bandwidth is easy, latency is hard. Examples of this truism can be found in all aspects of system design ranging from instruction interpretation, to memory access, to job scheduling, to communication networks. Describe as many examples of this truism as you can, being certain to explain the circumstances under which it's easy to improve bandwidth. |
|
| Topic | Architecture |
| Date | Spring 2001 |
| Question | 1.6 |
| Worth | 20 points |
| Describe, in general terms, the factors that influence the cache hit rate. Discuss the similarities and differences between the design of a cache system and the design of a demand-paged virtual memory system. |
|
| Topic | Architecture |
| Date | Spring 2001 |
| Question | 1.7 |
| Worth | 20 points |
| In recent years, we have seen the development of computer architectures based on super-scalar designs, super-pipeline designs, and very large instruction words. Give a brief description of each approach. Be certain to discuss the expected benefits and drawbacks of each approach. When appropriate cite specific examples of machines based on each approach. |
|
Fall 2001
| Topic | PDA operating systems |
| Date | Fall 2001 |
| Question | 1.1 |
| Worth | 20 points |
| Development of computers has gone below the notebook scale toward personal digital assistants (PDAs) such as the Palm Pilot. These computers have operating systems like larger computers but they are structured differently because of the different hardware environment. Among the issues to consider are things like: no disk, the need to minimize power consumption, accommodating a range of hardware add-ins, etc.
Describe how an OS for a PDA will be different from an OS for a normal computer system. First, describe the differences in the OS services as seen by the users, that is, define how the set of system calls will differ. What is added, what is removed and what is modified? Second, describe how the implementation of the OS will differ. How are the new or modified system calls implemented? How are the same system calls implemented differently? How is the overall structure of the OS different? It is useful to think about the data structures the OS will maintain and how they are used and modified. |
|
| Topic | Logical Addressing |
| Date | Fall 2001 |
| Question | 1.2 |
| Worth | 20 points |
| There are two parts of an operating system than map logical to physical addresses, the paging system and the part of the file system that maps logical file offsets to physical disk offsets. They use similar but not identical techniques to do this.
Consider three paging mechanisms: (1) ordinary paging with a single page table, (2) paging with two levels of page tables, and (3) inverted page tables. For each one of these mechanisms give the method used in operating systems to map logical file offsets to physical disk block numbers that most closely corresponds to the paging mechanism.
For each corresponding pair explain what the similarities are and what the differences are (because the correspondences will not often be exact). For each difference explain why they are different in terms of hardware differences or design goal differences. For each similarity explain why we were able to make them similar, that is, how the hardware or design goals allow them to be similar.
Note:To be sure you understand what we are talking about here, an example of a file block mapping method is the UNIX method where the file descriptor contains 13 disk block addresses, 10 direct, 1 indirect, 1 double indirect, and 1 triple indirect.
Paging also allows virtual memory as well as address translation. Is there any similar concept in the file system situation? If so explain what it is and if not explain why there is not one. |
|
| Topic | File systems |
| Date | Fall 2001 |
| Question | 1.3 |
| Worth | 20 points |
| Many years ago operating system designers developed the concept of a device driver as a way of easily integrating many different devices into an operating system. More recently there has been an expansion in the number of a different file system formats. To meet this challenge more recent operating systems have a concept of a file system driver.
- Explain what a file system driver is and why it is useful.
- Give a list of typical functions that a file system driver would define for use by the rest of the operating system.
- The device driver concept allows generalizations such as RAM disks, pseudo-ttys, and drivers that control disk partitions or several disks. File system drivers have also been generalized this way. Give some examples of the use of file system drivers that do not access a traditional file system on a disk.
|
|
| Topic | Caching |
| Date | Fall 2001 |
| Question | 1.4 |
| Worth | 20 points |
| Caching is the main way to speed up a computational process. Give several examples (at least three for each) of the use of caching in an operating system and in a computer system. |
|
| Topic | Architecture |
| Date | Fall 2001 |
| Question | 1.5 |
| Worth | 20 points |
| Branching poses a significant problem when the goal is to maximize instruction throughput. Describe how you would design an experiment to determine the frequency of branching instructions. To what extent can the problems of branching be dealt with by a compiler and to what extent must they be addressed during execution. Describe the techniques that have been introduced in modern processors to deal with the problems associated with branches. |
|
| Topic | SMP |
| Date | Fall 2001 |
| Question | 1.6 |
| Worth | 20 points |
| Suppose we have a typical operating system that runs on a single processor and we want to modify the operating system to work on a symmetric, shared-memory multiprocessor system. What changes will have to be made to accomplish this? For each change, indicate what the new design problem is and what are some possible solutions to the design problem. |
|
| Topic | Cluster architectures |
| Date | Fall 2001 |
| Question | 1.7 |
| Worth | 20 points |
| Cluster communications with standard OS like Linux employs user-level communication, bypassing to a large degree the OS.
- (8 points) Explain what the benefit(s) is/are.
- (6 points) Explain problems involved with respect to memory management if hardware DMA is set up for block transfer in such an environment.
- (6 points) Which further optimizations to basic message passing are meaningful if communication is to be sped up, especially considering the fact that on Myrinet the data is not only to be transferred to the net but also between PC and Network Interface memory?
|
|
Spring 2003
| Topic | Integration of memory and processing |
| Date | Spring 2003 |
| Question | 1.1 |
| Worth | 15 points |
| One of the more interesting developments in computer systems is the integration of memory and processing. In the literature, this has been called PIM (processor integrated memory systems) or IRAM (Intelligent RAM). In considering the design of computing systems, PIMs can be used in a variety of ways. Initially, they were proposed to support offloaded computations (e.g., SIMD style vector operations). More recently, they have been proposed as a way to ensure that the main processor has a constant stream of instructions and data elements.
Give a brief description of the most important trends that have led to the development of PIMs. Give a brief description of one way in which PIMs could be used in the design of a computing system. |
|
| Topic | Working set model |
| Date | Spring 2003 |
| Question | 1.2 |
| Worth | 15 points |
| In the context of demand page replacement, give a brief description of the working set model. How is the size of the working set determined? Explain why it would be impractical to directly implement the working set model. Describe a practical approximation of the working set model. |
|
| Topic | Coherence and consistency |
| Date | Spring 2003 |
| Question | 1.3 |
| Worth | 15 points |
| Coherence and consistency issues arise at virtually every level in distributed systems from memory caches to file systems. Explain what these terms mean and describe the different approaches that have been developed to address coherence and consistency. |
|
| Topic | Address translation |
| Date | Spring 2003 |
| Question | 1.4 |
| Worth | 15 points |
| Describe all of the steps in the translation from a logical address to a physical address and finally to a value during a load operation on a modern processor. You should assume that the processor has a limited set of TLB entries and a two level cache. Be certain to indicate opportunities for parallel activities and how failures are dealt with in each step of the translation. |
|
| Topic | Branch prediction |
| Date | Spring 2003 |
| Question | 1.5 |
| Worth | 15 points |
| Branch prediction has become increasingly important in the design of modern processors. Give a brief description of branch prediction, explaining why it has become more important in recent years and how this relates to speculative execution. Describe two different approaches to how branch prediction might be implemented. |
|
| Topic | Super-scalar, super-pipeline, very large instruction words (VLIW) |
| Date | Spring 2003 |
| Question | 1.6 |
| Worth | 15 points |
| In recent years, we have seen the development of computer architectures based on super-scalar designs, super-pipeline designs, and very large instruction words. Give a brief description of each approach. Be certain to discuss the expected benefits and drawbacks of each approach. When appropriate cite specific examples of machines based on each approach. |
|
| Topic | Authentication and protection |
| Date | Spring 2003 |
| Question | 1.7 |
| Worth | 15 points |
| Define authentication and protection in an operating system and explain how they relate to each other. Describe one method of protection that can be used in an operating system. Describe one method for users to be authenticated and one method that operating systems can authenticate themselves to user. Give three examples of security attacks, one which exploits a protection failure, one of which exploits a user authentication failure and one of which exploits a system authentication failure. |
|
| Topic | Congestion control vs. flow control |
| Date | Spring 2003 |
| Question | 1.8 |
| Worth | 15 points |
| In the context of network communication, compare and contrast the terms "congestion control" and "flow control." Explain how TCP deals with each of these.
Suppose that a TCP implementation advertises a larger flow control window than it has buffer space available. Discuss the possible advantages and problems associated with doing this. |
|
Fall 2003
Short
| Topic | Pipeline stages |
| Date | Fall 2003 |
| Question | 2.1 |
| Worth | 10 points |
| Consider a machine with a standard 5-stage pipeline (perhaps the DLX pipeline described by Hennessy and Patterson--Fetch, Decode, Execute, Memory, and Writeback). Suppose you split every stage into 2 stages which took half as long to run and as a result doubled the clock speed of the processor. Explain why programs would not necessarily run twice as fast on this processor despite the doubled clock frequency. |
|
| Topic | Branch prediction |
| Date | Fall 2003 |
| Question | 2.2 |
| Worth | 10 points |
| Consider the inner-most backward branch in a set of nested loops, where the program exits the loop when that branch is not taken. Why will a two-bit branch predictor generally perform better in this case than a one-bit predictor? |
|
| Topic | RPC marshalling |
| Date | Fall 2003 |
| Question | 2.3 |
| Worth | 10 points |
| In the context of RPC, what is marshalling and how is it done? |
|
| Topic | Congestion control vs. flow control |
| Date | Fall 2003 |
| Question | 2.4 |
| Worth | 10 points |
| In a transport protocol, what is the difference between congestion control and flow control? |
|
Medium
| Topic | Priority Inversion |
| Date | Fall 2003 |
| Question | 3.1 |
| Worth | 10 points |
| Priority inversion is an important problem in scheduling and synchronization. Define what priority inversion is, and carefully illustrate how it could occur in a specific situation. How is priority inversion usually prevented? |
|
| Topic | Consistency |
| Date | Fall 2003 |
| Question | 3.2 |
| Worth | 10 points |
| A variety of different consistency models have been defined for use in distributed systems, the most important of which are sequential consistency and various forms of weak consistency.
- Define sequential consistency. Pick and describe one specific weak consistency model.
- Construct and show an example in which sequential consistency and your chosen form of weak consistency will return different results.
|
|
| Topic | Caching in Distributed File Systems |
| Date | Fall 2003 |
| Question | 3.3 |
| Worth | 10 points |
| Different distributed file systems cache data at different granularities. For example, the Andrew File System (AFS) caches whole files, while the Sprite file system and most versions of NFS cache individual file blocks.
- What are the advantages and disadvantages of each approach?
- How does the choice of a caching mechanism relate to options for maintaining consistency and coherency in the file system?
- How suitable is of each approach to dealing with disconnected operation (i.e., the access of cached data when disconnected from the network)?
|
|
Long
| Topic | System I/O Hardware and Software |
| Date | Fall 2003 |
| Question | 4.1 |
| Worth | 25 points |
| The company you work for is designing a new computer system design and heavily customizing the operating system to take advantage of this system. Two typed of non-volatile media appropriate for secondary storage are being considered for use in the system's file system: a high-latency, high-bandwidth medium (e.g. modern disk drives) and a low-latency, low bandwidth medium (similar to e.g., compact flash memory). Both formats have the same price/megabyte. How would you customize the operating system to best take advantage of these types of storage, and approximately how much each type of memory would you suggest be included in low-end and high-end versions system? |
|
| Topic | Stupid Paging Tricks |
| Date | Fall 2003 |
| Question | 4.2 |
| Worth | 25 points |
| Copy-on-write is frequently used to optimize performance of data passing and sharing between multiple processes. (Recall that in a copy-on-write system, "copied" data is actually mapped read-only into multiple processes, and an actual copy is made for a process only when it attempts to write to the data.)
- Assuming a two-level page table, show the actions necessary for providing copy-on-write sharing for one page of data between two processes.
- In some cases, immediately copying the data may be quicker than remapping the data. Which factors should you consider in determining which approach is better, and how do each of these factors effect the performance of each approach?
|
|
Spring 2004
Short
| Topic | Aliasing |
| Date | Spring 2004 |
| Question | 2.1 |
| Worth | 10 points |
| What is the alias problem in virtually indexed and tagged caches? |
|
| Topic | Page-size tradeoff |
| Date | Spring 2004 |
| Question | 2.2 |
| Worth | 10 points |
| In a paged virtual memory system, what are the tradeoffs of choosing larger or smaller page sizes? |
|
| Topic | Job scheduling |
| Date | Spring 2004 |
| Question | 2.3 |
| Worth | 10 points |
| Shortest-job-first is a scheduling discipline that always runs the job with the least amount of compute time remaining. What are the advantages and disadvantages of this scheduling discipline? |
|
| Topic | Media access guarantees |
| Date | Spring 2004 |
| Question | 2.4 |
| Worth | 10 points |
| Compare and contrast the access guarantees provided by token-ring networks and ethernet networks. |
|
Medium
| Topic | Network packet processing |
| Date | Spring 2004 |
| Question | 3.1 |
| Worth | 10 points |
| Consider an operating system's network stack that processes headers on network packets prior to transmitting them to the network or delivering them to the application (e.g., protocol stacks in UNIX or the x -kernel.) Such network stacks can process packets either in their entirety, with each packet traversing the entire set of layers and being delivered to the application before the next packet is processed, or in batches with each layer processing several packets at a time. What tradeoff is involved in this choice? Be sure to consider the cache performance of each approach. |
|
| Topic | Page sharing |
| Date | Spring 2004 |
| Question | 3.2 |
| Worth | 10 points |
| Describe and illustrate the page table manipulations for sharing of data between two machines in a distributed shared memory system and the state changes necessary when each machine first reads from a shared page and later writes to a shared page. |
|
| Topic | File system data |
| Date | Spring 2004 |
| Question | 3.3 |
| Worth | 10 points |
|
- What is the difference between normal data and metadata in a file system?
- In what ways do these differences impact file system design?
|
|
Long
| Topic | Power Management |
| Date | Spring 2004 |
| Question | 4.1 |
| Worth | 25 points |
| Modern laptops frequently spin down (stop rotation) their hard disks when they have been idle in an effort to conserve battery power. Because spinning up (start rotating again) these hard disks is a potentially expensive operation, the operating system may want to delay writes to disk. Consider two different approaches to delaying having to spin up the hard disk in such a system:
- A method that is transparent to the application
- A method that exposes the state of the hard disk to the application, allowing the application to participate in the decision of when to spin up the hard disk
For both of these options, describe a potential implementation, how it would work, and its potential advan-
tages and shortcomings. Be sure to address which applications are likely to benefit most from each of these
approaches. |
|
| Topic | Recovery in Message-passing Systems |
| Date | Spring 2004 |
| Question | 4.2 |
| Worth | 25 points |
| Background
Large-scale, long-running scientific computations (Applications spanning hundreds or thousands of nodes and running for days or weeks) generally use some form of recovery to tolerate crashes, as failures happen relatively often on large-scale machines. Checkpointing is by far the most common form of recovery in these systems; in this approach, a copy of the state of the entire system (a checkpoint) is periodically written to global stable storage. In the case of a crash, computation can be restarted from the most recent checkpoint. Unfortunately, checkpointing is generally costly due to the amount of data that must be saved to shared storage at each checkpoint. As a result, a variety of techniques for reducing the cost and frequency for checkpointing have been proposed. In this question, you are asked to evaluate the tradeoffs of one such potential optimization.
System Optimization
Assume we have a distributed system where each node is normally diskless but could optionally have non- volatile local storage installed in every node if desirable. We propose optimizing checkpointing performance by logging received messages to this optional local storage; after a failure (a failure entails loss of all volatile state), each machine would recover from the most recent global checkpoint and then use the local log of received messages to roll forward from the checkpoint without having to wait for messages from other machines. (This optimization is normally referred to as message logging.)
Evaluate this proposed optimization, making sure to address the following issues:
- What restrictions on application behavior are necessary with this approach? Are these restrictions fundamental, or could they be worked around with modifications to the proposed optimization scheme?
- As it involves changes to both the hardware configuration and the system software runtime, the pro- posed optimization affects application performance in a variety of ways. Describe in detail the potential costs and benefits of this optimization in terms of its effect on expected total application runtime.
- Given your answers to the previous questions, under what circumstances is this optimization worth doing? For a given hardware system and application, what measurements would you suggest taking to determine whether or not to perform this optimization?
|
|
Fall 2004
Short
| Topic | Caching |
| Date | Fall 2004 |
| Question | 2.1 |
| Worth | 10 points |
| Briefly describe the three types of cache misses. |
|
| Topic | TCP/IP |
| Date | Fall 2004 |
| Question | 2.2 |
| Worth | 10 points |
| Describe how the slow start mechanism of TCP is used to increase the congestion window. |
|
| Topic | TLB Management |
| Date | Fall 2004 |
| Question | 2.3 |
| Worth | 10 points |
| TLB faults can be handled by hardware or software. Discuss the relative benefits of each approach. |
|
| Topic | Deadlock |
| Date | Fall 2004 |
| Question | 2.4 |
| Worth | 10 points |
| Explain the difference between deadlock avoidance and deadlock prevention. |
|
Medium
| Topic | Out of order completion |
| Date | Fall 2004 |
| Question | 3.1 |
| Worth | 20 points |
| Using pseudo assembly language for a RISC (load-store) architecture, present a concrete example illustrating a potential benefit of out of order instruction completion. Describe the general circumstances under which instructions can be completed out of order. |
|
| Topic | Process migration |
| Date | Fall 2004 |
| Question | 3.2 |
| Worth | 20 points |
| Describe the issues that must be addressed when implementing process migration within the network for the CS department. How do theses issues change when you consider migration across the UNM campus network? How do they change when you consider process migration across the Internet? |
|
| Topic | Distributed transactions |
| Date | Fall 2004 |
| Question | 3.3 |
| Worth | 20 points |
| Describe the 2-phase commit protocol for distributed transactions. Carefully describe the point at which the transaction becomes permanent (aka committed). |
|
| Topic | OS Design |
| Date | Fall 2004 |
| Question | 3.4 |
| Worth | 20 points |
| In the context of micro-kernels, what is an "up-call"? What is a "scheduler activation"? Describe in detail how scheduler activations and up-calls are related. |
|
Long
| Topic | Page pre-fetching |
| Date | Fall 2004 |
| Question | 4.1 |
| Worth | 30 points |
| Consider the possibility of using page pre-fetching to avoid the delay associated with a page fault and subsequent time needed to load the page from backing store.
- Discuss the potential benefits and costs associated with page pre-fetching in general terms.
- Consider the following four levels: language implementation, runtime/libraries, operating systems, and architecture. For each of these levels, describe the relevant information that could be obtained to support page pre-fetching and how this could be used to implement page pre-fetching.
- Describe one instance of how you could integrate information provided by multiple levels to improve the benefits of page pre-fetching.
- Suppose that you have to choose one of the four levels to instrument. Which do you believe will yield the best benefit/cost ratio and why?
|
|
| Topic | Ubiquitous computing |
| Date | Fall 2004 |
| Question | 4.2 |
| Worth | 30 points |
| Consider a time in the not-too-distant future, when every automobile is equipped with a GPS sensor, a wireless networking transmitter/receiver, and several sensors for recording environmental information, like temperature, moisture content, ambient light, RADAR emissions, etc. Given this context, it is natural to assume that our automobiles will start to carry on conversations with one another. In particular, your car might provide information to on-coming cars about the conditions where you were a short time ago.
To make this scenario plausible, there are at least two research areas that must be explored:
- Communication infrastructure services are needed that take into account speed and direction of travel.
- Coherence and consistency of the information exchanged in these conversations must be addressed.
Choose one of these areas and provide a fairly detailed description of the important issues. Provide a brief description of the important issues in the other area. |
|
Spring 2005
Short
| Topic | Caching |
| Date | Spring 2005 |
| Question | 2.1 |
| Worth | 10 points |
| Compare and contrast the use of write-through and write-back caches in multiprocessor systems. |
|
| Topic | File Systems |
| Date | Spring 2005 |
| Question | 2.2 |
| Worth | 10 points |
| What operations do log-structured file systems attempt to optimize? What is the difference between the locality optimized by log-structured file systems and more traditional UNIX file system implementations (e.g. Berkeley FFS)? |
|
| Topic | TCP/IP |
| Date | Spring 2005 |
| Question | 2.3 |
| Worth | 10 points |
| Consider the state transition diagram for TCP connections shown in figure 1. Why is the TIME WAIT state needed? Why has the TIME WAIT state become a problem for Web servers?
|
|
| Topic | Consistency |
| Date | Spring 2005 |
| Question | 2.4 |
| Worth | 10 points |
| What is the fundamental difference between weakened consistency models such as weak consistency, entry consistency, and release consistency and more traditional consistency models such as sequential and PRAM consistency? |
|
Medium
| Topic | Addressing Modes |
| Date | Spring 2005 |
| Question | 3.1 |
| Worth | 20 points |
| Processors designed for embedded applications (e.g., the ARM) do not typically have support for paged address translation, using other techniques to ensure address space isolation. For example, in base and bound addressing, the application uses a base register to denote the base of its current addressing range and offsets from that base as virtual addresses. Discuss the design tradeoff that motivates this decision. |
|
| Topic | Locking |
| Date | Spring 2005 |
| Question | 3.2 |
| Worth | 20 points |
| Compare and contrast the advantages and disadvantages of spin-locks and blocking locks in multi-threaded programs. A study of lock acquisition times has shown that they are highly bi-modal-- locks are generally either acquired quickly or after a very long wait. Describe in detail a solution that takes advantage of this distribution to achieve the advantages of both spin locks and blocking locks. |
|
| Topic | Operating System Structure |
| Date | Spring 2005 |
| Question | 3.3 |
| Worth | 20 points |
| Compare and contrast the following general approaches to OS design: monolithic systems, monolithic systems with loadable modules, microkernels, and exokernels/library operating systems. |
|
Long
| Topic | Multiprocessor Scheduling |
| Date | Spring 2005 |
| Question | 4.1 |
| Worth | 30 points |
| Consider the scheduler for an operating system for a shared memory multi-processor. In such systems, the scheduler functionality can be distributed in a variety of ways. Describe in detail the advantages and disadvantages of:
- A single global scheduler
- Individual per-processor schedulers that interact with a global scheduler that assigns jobs to processors.
- A hierarchy of interacting processor schedulers.
In writing your answer, be sure to consider:
- The size of the machine (which can range from two processors up to several hundred processors)
- Application characteristics (e.g. job lengths, job-level parallelism, and synchronization behavior)
- Operating system parameters (e.g. length of scheduling quantum)
|
|
| Topic | Intelligent Networks |
| Date | Spring 2005 |
| Question | 4.2 |
| Worth | 30 points |
| Suppose that you have a small router (10-12 port pairs) that is capable of actively processing every packet that comes through the router. That is, the router can execute on the order of 1000 instructions per packet (in addition to routing the packet). In addition, the router has a small amout memory (on the order of a couple of megabytes) that can be used to store state information. As an example, the router could examine an incoming packet and, based on a value in the packet, decide that the packet should be dropped, a counter incremented, and several new packets constructed and sent on different output ports.
How might you use such a router in the implementation of a parallel file system where one of the port pair will be used to connect the parallel file system to the outside world and the remaining port pairs would be used to connect systems that provide the processing and storage space needed for the file system? Pay particular attention to how you would partition functionality betweeen the switch and the systems connected to the switch. |
|
Fall 2005
Short
| Topic | Deadlock |
| Date | Fall 2005 |
| Question | 2.1 |
| Worth | 10 points |
| What is deadlock, and what constitutes necessary and sufficient conditions for causing deadlock? |
|
| Topic | Memory Management |
| Date | Fall 2005 |
| Question | 2.2 |
| Worth | 10 points |
| What is the optimal page replacement strategy in a paged virtual memory system? Name one algorithm frequently used to approximate this strategy. |
|
| Topic | File Systems |
| Date | Fall 2005 |
| Question | 2.3 |
| Worth | 10 points |
| What is a journalling file system, and what advantage does it offer over more traditional UNIX file system implementations? |
|
| Topic | Network Routing |
| Date | Fall 2005 |
| Question | 2.4 |
| Worth | 10 points |
| What is the difference between distance vector routing and link state routing? |
|
Medium
| Topic | Caching |
| Date | Fall 2005 |
| Question | 3.1 |
| Worth | 20 points |
| Modern cache systems have a wide range of design parameters, including:
- Unified versus split caches
- Direct-mapped versus associative caches
- Cache size, cache access time, line length, and number of cache levels
Define each of these terms, the trade-offs associated with each parameter, and how changes to them effect capacity, compulsory, and conflict miss rates. |
|
| Topic | Virtual Memory |
| Date | Fall 2005 |
| Question | 3.2 |
| Worth | 20 points |
| Describe inverted page tables, how they are used for memory mapping, and their advantages and disadvantages compared to traditional hierarchical page tables. |
|
| Topic | Consistency in Group Communication Systems |
| Date | Fall 2005 |
| Question | 3.3 |
| Worth | 20 points |
| Causal consistency in group communication systems is normally implemented using one of two approaches: vector timestamps or a sequencer process. Describe each method and compare and contrast the advantages and disadvantages of each. |
|
| Topic | Policy and Mechanism in Modern Operating Systems |
| Date | Fall 2005 |
| Question | 3.4 |
| Worth | 20 points |
| Hypervisors and microkernels are both modern operating system design strategies, one oriented toward multiplexing multiple operating sys- tems on top of a virtual machine monitor, and the other oriented toward dividing OS functionality between multiple servers. How do these two approaches affect how policy and mechanism are traditionally divided in the system? |
|
Long
| Topic | Scheduling and Load Management |
| Date | Fall 2005 |
| Question | 4.1 |
| Worth | 30 points |
| Scheduling and load management are core operating systems problems that also occur in real life systems, not just computer systems. Consider an elevator system of four elevators cars with limited occupancy that services a tall building. In this system, in addition to servicing floors that elevator occupants select, each elevator also stops on every floor with an external call signal active (i.e., where the elevator call button is pushed).
- What metrics are appropriate to determining the quality of service provided by such an elevator system?
- How can such a system fail to provide adequate service under heavy load?
- Are the metrics the system seeks to optimize different under light and heavy loads?
- How can the system be changed to provide adequate service under heavy load, for example by having separate service policies for light and heavy load?
- In such a system, how and when would the elevator system switch between policies for light and heavy loads?
|
|
| Topic | Future Operating Systems |
| Date | Fall 2005 |
| Question | 4.2 |
| Worth | 30 points |
| Architectures are advancing to the point where CPU cycles are almost completely free on emerging systems; memory and I/O systems are now becoming the predominant bottlenecks in these systems. For example, desktops in 5 years will likely have 2-4 processors each with 8 processing cores on them. Operating system designers may take advantage of this wealth of CPU power by changing OS designs by, for example, dedicating a processor to OS processing. How will this wealth of processors and cycles change fundamental OS policies, including scheduling, I/O, and memory management? How could hardware be changed to allow the operating system to make more effective use of this abundance of CPU power? |
|
Spring 2006
Short
| Topic | Clock algorithm |
| Date | Spring 2006 |
| Question | 2.1 |
| Worth | 10 points |
| What is the clock algorithm used for in operating system implementation? |
|
| Topic | Media access |
| Date | Spring 2006 |
| Question | 2.2 |
| Worth | 10 points |
| What are the advantages and disadvantages of CSMA/CD and token ring media access to high- bandwidth and low-bandwidth customers on a network? |
|
| Topic | File system inconsistency |
| Date | Spring 2006 |
| Question | 2.3 |
| Worth | 10 points |
| Provide a simple example of how an interrupted (crashed) file system operation can leave the file system in an inconsistent state that must be fixed via fsck or journal replay in a UNIX-like file system. |
|
| Topic | Cache affinity |
| Date | Spring 2006 |
| Question | 2.4 |
| Worth | 10 points |
| What is cache affinity in the context of job scheduling? |
|
Medium
| Topic | Computer Architecture and the Memory Wall |
| Date | Spring 2006 |
| Question | 3.1 |
| Worth | 20 points |
| A number of different architectural proposals have been made for dealing with the so-called memory wall problem. One of these, processors-in- memory (PIM) systems, suggests placing processing elements into each memory chip (e.g. DIMMS), so that they can get full access to memory bandwidths of the local memory instead of being limited by pin-out bandwidths.
- Carefully define what is meant by the memory wall problem.
- How have normal processor architectures (e.g. Intel x86/Motorola PowerPC) attempted to deal with this problem, and why is or isn't this approach sufficient?
- Does a PIM architecture like that described above address the memory wall problem, and what new difficulties does it present?
|
|
| Topic | Optimistic Synchronization and Concurrency Control |
| Date | Spring 2006 |
| Question | 3.2 |
| Worth | 20 points |
| Optimistic approaches to synchroniza- tion and concurrency control are frequently used in system design and implementation of asynchronous and parallel systems, from operating systems to databases to parallel simulations. Use a specific ex- ample of optimistic synchronization of your choosing to answer the following questions:
- How does the optimistic synchronization and concurrecy control differ from the normal pessimistic approach both in general and in your example?
- What are the general advantages and disadvantages of the optimistic and pessimistic approaches? For your example, under what conditions would an optimistic and pessimistic approaches be preferable?
|
|
Long
| Topic | Flying Video on Demand |
| Date | Spring 2006 |
| Question | 4.1 |
| Worth | 30 points |
| ???? |
|
| Topic | Disconnection in Sensor Systems |
| Date | Spring 2006 |
| Question | 4.2 |
| Worth | 30 points |
| Networked sensor systems are crucial to emergency response in large scale disasters such as Hurricane Katrina. Such sensors may include water level/quality, weather, or photographic feeds on cell or telephone towers in cities. Unfortunately, such disasters tend to cause network disconnection, isolating each portion of the sensor network from central databases that normally collect and collate data from these systems. Without support for dealing with disconnection, such systems become useless in the situations in which they are potentially most helpful.
Consider a system where each sensor system has local power (e.g. solar/battery), limited storage, and connectivity to first responders in its immediate physical vicinity. The primary goal of this system is to make local sensor information available to local first responders while it logs updates to send to central facilities when long-range connectivity becomes available.
Such a system is similar in ways to a disconnected/weakly-connected file systems like Coda. Compare and contrast approaches for utilizing or dealing with the following issues with how they are handled in systems like Coda:
- Replication and consistency
- Caching
- Transactional semantics
|
|
Fall 2006
Short
| Topic | Storage Management |
| Date | Fall 2006 |
| Question | 2.1 |
| Worth | 10 points |
| The UNIX fast file system, and most file systems, stores files as a list (or tree) of blocks. What problem does this present particularly for small files and how does the Berkeley Fast File System attempt to address this? |
|
| Topic | Caches and Multiprocessors |
| Date | Fall 2006 |
| Question | 2.2 |
| Worth | 10 points |
| What are the main advantages and disadvantages of write-though vs. write-back caches on mulitprocessor systems? |
|
| Topic | Computer Networks |
| Date | Fall 2006 |
| Question | 2.3 |
| Worth | 10 points |
| When might a layer-3 (network-layer) switch, a.k.a. a router, be preferable to a layer-2 (MAC-level) switch, a.k.a. a bridge, and why? |
|
| Topic | Memory Mangement |
| Date | Fall 2006 |
| Question | 2.4 |
| Worth | 10 points |
| Assuming a standard two-level hierarchical page table, when a page is marked copy-on-write and then subsequently written to and copied, what page table manipulations are involved in the page tables of the source and destination processes? |
|
Medium
| Topic | Routing |
| Date | Fall 2006 |
| Question | 3.1 |
| Worth | 20 p | | |