
STUDY GUIDE – FINAL EXAM
Major Topics
1. Storage management and file systems
2. Memory management including superpage paper
3. Synchronization: semaphores, mutual exclusion, transactions, data-race detection, etc.
4. Structure and principles of distributed systems: architectures, communication, naming, transparency,
replication, fault tolerance
5. Kernel architectures and virtual machine monitors
6. Introductory topics: processes and threads, process/thread state diagram, etc.
Approximately 50% of the test will come from the new material in numbers 1 and 2. Other topics will be
covered more or less equally. Don’t forget that similar concepts are discussed in several different places, so
for example a question about client-server architecture could fit into several different categories.
Memory Management
1. Understand the basic principles of memory management: motivation, implementation, etc.
2. What are the main problems introduced by page tables? (storage consumption, poor performance). Be
able to explain the problems and know the common solutions.
3. How are page tables used to perform address translation (virtual address to physical machine address)?
4. What is the purpose of a Translation Lookaside Buffer (TLB)?
5. What problem is addressed in the superpage paper?
6. What is the difference between a base page and a superpage?
7. Discuss the two main ways an operating system can implement superpages (relocation, reservation)
and the advantages & disadvantages of each.
8. Be able to state an argument for and against the use of multiple superpage sizes in a system. What
approach is adopted in the paper we read?
9. Understand superpage promotion and demotion, contiguity issues, superpage alignment issues.
10. In the superpage management system developed by Navarro et al., when is an initial reservation made?
11. What guidelines did the Navarro system use to choose an initial reservation size?
12. Explain Distributed Shared Memory and give several benefits.
Storage Management and File Systems
1. Know the physical characteristics of a disk (sectors, tracks, cylinders) and the relation between a file
block and a disk sector.
2. What are the three components of a disk access? (seek, rotational delay, data transmission time)
3. Which of these components would we seek to minimize if we want to improve performance (disk read/
write times)?
4. What is the difference between sequential and random (direct) access patterns for files?
5. What is an i-node?
6. What are some techniques for improving read/write performance in a file system?
7. Define/describe buffering and caching in file systems.
8. Why did FFS introduce cylinder groups? (Consider performance and reliability)
9. Give an argument for and against large block sizes in file systems. How did FFS address this issue?
Compare to the large superpage versus small superpage issue in virtual memory management.
10. What are the major issues that must be addressed in a distributed file system? What is network
transparency, how can it be achieved?
11. Be able to describe traditional client/server distributed file system architecture, as exemplified in NFS.
12. What is the role of the Virtual File System Layer in NFS?
13. How does the architecture of a cluster file system (for example, the Google File System) differ from a
traditional client-server system?
14. Know the roles of the master and the chunk servers in GFS.
15. How is replication handled in the GFS.
16. What are some differences between traditional client-server file systems and peer-to-peer file systems?
17. How is the Ivy file system different from most P2P file systems?
18. What is the difference between a stateless and a stateful file system? Be able to give an advantage and
disadvantage of each approach.
19. What is a file handle?