1. Structure and principles of distributed systems: architectures, communication, naming, transparency, replication, fault tolerance. Clusters, grids, clouds.
2. Kernel architectures, including experimental operating systems for multicore computers and VMMs
3. Introductory topics: processes and threads, process/thread state diagram, etc.
4. Synchronization: semaphores, mutual exclusion, transactions, data-race detection, etc.
5. Storage management and file systems
The only new material we’ve covered since the second midterm is I/O and file systems. You were tested lightly on multicore operating systems & cloud computing so they will be emphasized on the final. Synchronization is always important. 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.
Storage Management and File Systems-Review Material
Know the physical characteristics of a disk (sectors, tracks, cylinders) and the difference between a file block and a disk sector.
What are the three components of a disk access? (seek, rotational delay, data transmission time) Which of these components would we seek to minimize if we want to improve performance (disk read/write times)?
What is the difference between sequential and random (direct) access patterns for files?
What is an i-node? Why are they the preferred method for accessing files stored on disk?
Define/describe buffering and caching in file systems.
Storage Management and File Systems-Mostly New Material
Why did FFS introduce cylinder groups? (Consider performance and reliability)
Give an argument for and against large block sizes in file systems. How did FFS address this issue?
Be able to describe traditional client/server distributed file system architecture, as exemplified in NFS.
What is the role of the Virtual File System Layer in NFS?
How does the architecture of a cluster file system (for example, the Google File System) differ from a traditional client-server system? Know the roles of the master and the chunk servers in GFS.
Compare traditional client-server file systems and peer-to-peer file systems.
What is the difference between a stateless and a stateful file system? Be able to give advantages and disadvantages of each approach.
- - - - - - Most of the topics below have been covered slightly; we will talk about some - - - - - - of them in more detail Tuesday.
File locking, lost messages, other issues affected by lack of state information at server.
Understand the meaning of UNIX (strict) semantics, session semantics, immutable semantics, and transaction semantics.
Be able to define “transaction”, list, explain, and demonstrate understanding of the four ACID properties (especially atomicity and isolation), and describe what it means for a transaction to “commit”. See notes and Chapter 1.
What are the advantages and disadvantages of client-side caching in a distributed file system? Compare to the advantages and disadvantages of server-side replication.
MulticoreComputing and Cloud Computing
What are the major obstacles that make current operating systems wrong for multicore computers? In other words, why do many researchers think we can’t simply modify existing systems? Give specific problems
Be specific about the problems. For example, why is locking more of a problem in multicore than in more traditional multiprocessors. What concrete ideas have Barrelfish, fos, and (to a lesser degree) Tesselation proposed.
Be able to give a short definition of cloud computing or identify/define features such as utility computing & elasticity.
Differences and similarities between multikernels and factored operating systems.
Cloud computing definition, defining features of a cloud.
Difference between IAAS, PAAS, SAAS