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 are the systems comprehensive Ph.D. exam questions given by the computer
science department of the University of New Mexico over the last ten years or so.
This page sorts the questions by category. Note that some questions appear
more than once, if they fit into multiple categories.
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.
Distributed Systems
Consistency and Coherence
| 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 | 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 | 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 | 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. |
|
| 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? |
|
| 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 | ACID |
| Date | Spring 2007 |
| Question | 3.1 |
| Worth | 20 points |
| Briefly describe each of the ACID properties for a transaction. |
|
| Topic | Consistency in Data Processing Systems |
| Date | Spring 2007 |
| Question | 4.1 |
| Worth | 30 points |
| Consider a general data processing/data mining system where data updates are continually being streamed into an archive, and a backend system is processing the archive for useful information. Specifically, consider the following two examples:
- A web indexing system used by companies such as Google, where the data updates are web pages crawled by concurrent web spiders, and the backend processes the resulting archived graph of web pages to generate indexes that are used to satisfy search requests.
- A business database/intelligence system for a web retailer such as amazon, where the data updates are sales orders generated by web servers which include the contents of the order, the customer ID of the person placing the order. The resulting database is used both for:
-
- Tracking inventory and order status by web applications
- Mining suggestions to customers about what to purchase
In each of the example systems above, analyze and describe the demands of and tradeoffs between consistency and performance in this system. Be sure to consider:
The potential need for consistent snapshots of the data being acquired by the front-end systems;
The potential need for consistency versus data acquisition performance between multiple writers in the front-end data acquisistion systems;
The potential need for consistency versus data analysis performance between front-end data acquisition writers and back-end data analysis readers. |
|
| Topic | Consistency |
| Date | Fall 2007 |
| Question | 2.4 |
| Worth | 10 points |
| Briefly contrast sequential and causal consistency in a group RPC system. |
|
Synchronization
| 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 | 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?
|
|
| 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
|
|
| Topic | Distributed Clocks |
| Date | Fall 2006 |
| Question | 3.2 |
| Worth | 20 points |
| Lamport timestamps are a common method for partially ordering operations in a distributed system based on the happens-before relation. Describe Lamport's technique for implementing logical clocks using timestamps, where every operation a, b, . . . is given a logical clock time C(a), C(b), ... |
|
| Topic | Memory write barriers |
| Date | Fall 2007 |
| Question | 2.1 |
| Worth | 10 points |
| One feature of modern architectures and compilers is that they can reorder memory writes from a single thread to improve pipeline and memory system (e.g. caching) performance. Unfortunately, this reordering can make it very difficult to write concurrent programs. Most architectures provide an (expensive) write barrier() operation across which memory reads and writes cannot be reordered, which allows programmers to address this issue.
The code in figure 1 implements a simple lock-free single-reader/single-writer FIFO ring buffer. Indicate where if anywhere write barriers must be added to guarantee correctness of this code on a modern multiprocessor system, and what specific error each write barrier you add is needed to guard against. Because write barriers are expensive on multiprocessor systems, it is important that you not add any unnecessarily!
1 typedef struct ringbuffer {
2 /* Buffer is empty if rb->head == rb->tail. Buffer is full if
3 * next(rb->tail) == rb->head */
4 void **head, /* Points to first occupied element in buffer */
5 **tail, /* Points to first free element in buffer */
6 void **buf, /* Points to the start of the allocated ring */
7 **end; /* Points one element *past* the allocated ring */
8 } ringbuffer_t;
9
10 void **RingbufferNext(ringbuffer_t *rb, void **item)
11 {
12 void **next = item + 1;
13 if (next >= rb->end)
14 return rb->buf;
15 else
16 return next;
17 }
18
19 int RingbufferAppendSingle(ringbuffer_t *rb, void *value)
20 {
21 void **next = RingbufferNext(rb, rb->tail);
22 if (next == rb->head)
23 return -1;
24 *rb->tail = value;
25 rb->tail = next;
26 return 0;
27 }
28
29 int RingbufferRemoveSingle(ringbuffer_t *rb, void **value)
30 {
31 if (rb->head == rb->tail)
32 return -1;
33 *value = *rb->head;
34 rb->head = RingbufferNext(rb, rb->head);
35 return 0;
36 }
Figure 1: A simple single-reader, single writer FIFO ring buffer. |
|
| Topic | Lamport's clocks |
| Date | Fall 2007 |
| Question | 2.2 |
| Worth | 10 points |
| Describe briefly what service Lamport's clock algorithm provides in a distributed system, and provide a brief (e.g. 3 sentence) overview of how the algorithm works. |
|
| Topic | Distributed Systems |
| Date | Fall 2007 |
| Question | 3.3 |
| Worth | 20 points |
| Ring algorithms are frequently used in distributed systems to implement a broad range of distributed services. Describe in detail one distributed algorithm based on a ring topology and contrast its tradeoffs versus another algorithm for implementing the same service in terms of performance and fault tolerance. |
|
| Topic | Distributed Sensor Systems |
| Date | Fall 2007 |
| Question | 4.1 |
| Worth | 30 points |
| Sensor networks are being deployed in a wide range of situations, and supplemented with large-scale back- end cluster systems for real-time analysis of data acquired by sensors. However, large-scale disruptions, for example natural disasters or adversarial attacks, are a potential difficulty in these systems. In particular, such disruptions may cause sensors or back-end analysis systems to become unavailable. How would you design system software support for such a sensor/analysis system so that online users of the sensor network could still have real-time access to (potentially degraded) sensor network data and analysis information in the face of network disruption? Be specific in terms of the system services that you would provide, the challenges these services these services would have to deal with, and how you would address these challenges. |
|
Networking
Design
| 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
|
|
| 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 | 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 | 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?
|
|
| 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 | 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 | 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. |
|
| 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. |
|
Remote procedure Call (RPC)
| 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 | Message Passing and Scheduling |
| Date | Fall 2006 |
| Question | 3.3 |
| Worth | 20 points |
| Older message-passing systems, for example in the original Mach kernel, had synchronous RPC where a sender sent an RPC request to a waiting receiver thread that processed incoming messages. In contrast, most modern message passing systems, for example in the K42 and L4 operating systems, have caller threads in a synchronous RPC directly execute the called funciton in the memory protection context of the called server for efficiency reasons. This optimization is sometimes referred to as "migrating threads".
- Assuming short messages that can fit in registers, what steps are involved in the complete Mach- style synchronous RPC, and which steps can be removed in the optimized migrating threads version?
- One difficulty with a migrating threads model of RPC is that the thread usually runs entirely in the resource allocation context of the caller. With multiple callers to a single service, show how this can lead to priority inversion.
|
|
Physical layer characteristics
| 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. |
|
| 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? |
|
Routing
| Topic | Network Routing |
| Date | Fall 2005 |
| Question | 2.4 |
| Worth | 10 points |
| What is the difference between distance vector routing and link state routing? |
|
| 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 | Routing |
| Date | Fall 2006 |
| Question | 3.1 |
| Worth | 20 points |
| The count-to-infinity problem is a well-known problem in distance-vector (i.e. Bellman-Ford) routing. Define the count-to-infinity problem, provide an example where the count-to-infinity problem occurs, and briefly mention at least one possible workaround to this problem. |
|
Protocols
| 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. |
|
| 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? |
|
| 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 | 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 | IP fragmentation and reassembly |
| Date | Fall 2007 |
| Question | 2.3 |
| Worth | 10 points |
| How does the IP protocol implement datagram fragmentation and reassembly? In particular, what elements of the network fragment, which elements reassemble, and what data is stored in each fragment to facilitate reassembly? |
|
Systems Design
| 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 | 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 | 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?
|
|
| 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 | Diagnosis in Autonomic Systems |
| Date | Spring 2007 |
| Question | 4.2 |
| Worth | 30 points |
| Diagnosis of component failure is a critical part of autonomic systems. Describe how the need to run diagnostics may affect the design of systems software and the overall system. Be sure to consider diagnostics that require exclusive use of a component and the degree to which the system needs to be highly available. |
|
Operating Systems
Basics
| 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 | 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 | 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 | 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 | Deadlock |
| Date | Fall 2004 |
| Question | 2.4 |
| Worth | 10 points |
| Explain the difference between deadlock avoidance and deadlock prevention. |
|
| 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 | Deadlock |
| Date | Fall 2005 |
| Question | 2.1 |
| Worth | 10 points |
| What is deadlock, and what constitutes necessary and sufficient conditions for causing deadlock? |
|
| Topic | Fragmentation |
| Date | Spring 2007 |
| Question | 2.2 |
| Worth | 10 points |
| Explain the difference between internal and external fragmentation in a memory system. Which type of fragmentation is associated with variable sized allocation? |
|
| Topic | Polling vs. interrupts |
| Date | Spring 2007 |
| Question | 2.4 |
| Worth | 10 points |
| Give a brief description of polling and interrupt driven I/O. Describe a circumstance in which you might prefer polling over interrupt driven I/O. |
|
| Topic | Double buffering |
| Date | Spring 2007 |
| Question | 3.3 |
| Worth | 20 points |
| Suppose that a process is processing a file in sequential order. Explain how double buffering will improve the overall performance of the process. Start be describing double buffering. Are there circumstances under which adding a third buffer would be beneficial? |
|
Design
| 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 | 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 | 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 | 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 | 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 | 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. |
|
| 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? |
|
| 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? |
|
Process/Thread Scheduling
| 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 | 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 | 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 | 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 | Cache affinity |
| Date | Spring 2006 |
| Question | 2.4 |
| Worth | 10 points |
| What is cache affinity in the context of job scheduling? |
|
| Topic | Job scheduling |
| Date | Spring 2007 |
| Question | 2.3 |
| Worth | 10 points |
| In the context of job scheduling, describe the difference between throughput and response time. |
|
IPC
| 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? |
|
Advanced
| 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
|
|
| 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 | 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?
|
|
| 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 | 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. |
|
Paging
| 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 | 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 | 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 | 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?
|
|
| 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 | 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 | 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 | 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 | 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 | Clock algorithm |
| Date | Spring 2006 |
| Question | 2.1 |
| Worth | 10 points |
| What is the clock algorithm used for in operating system implementation? |
|
| Topic | Memory Mangement |
| Date | Fall 2006 |
| Question | 2.4 |
| Worth | 10 points |
| |