UNM Computer Science



Ph.D. Exam Operating Systems and Architecture January 14, 2003

Turn in answers to five questions. Answer only one question on a sheet of paper and write only on one side of each sheet. An answer can continue on several sheets. In this case, only write on one side of each sheet and number the sheets. Write on each sheet the number of the question you are answering.

You can use a computer as a word processor for this exam but you cannot access any information on the computer or on the Internet or run any other programs to help you answer the questions.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.