Reading Questions

Recall that answers to reading questions should be sent via plain-text email to remzi AT cs before 10am on the day of the class.

Tip #1: Don't spend time regurgitating obvious stuff from the papers! The point of these questions is to think, and then to write down what it is that you thought about. I read 30-odd write-ups, so the more interesting you are, the better! If you find yourself just repeating a lot of details from the paper, you are going down the wrong path.

Tip #2: Don't spend time criticizing how they wrote the paper. That is, I don't need to know whether you thought the paper was well written or not. We'll have plenty of time to talk about those types of things later in the class...

No more questions this year! (hooray!)

Question for the week (due 4/21)

Combo question: Coda and PAST

Q17, 4/21: What are the main differences between an old style "distributed" system and a modern "p2p" system?

Question for the week (due 4/14)

Combo question: NFS and AFS

Q16, 4/14: Describe a workload (e.g., a set of reads/writes to file(s) of a given size) that performs much better on NFS than on AFS. Then do the opposite (much better on AFS than on NFS). Then smile.

Question for the week (due 4/7)

Combo question: TACC (Cluster-based scalable services) and Locus

Q15, 4/7: Is Locus a good substrate to build cluster-based scalable services upon? (e.g., does Locus provide the kind of primitives that are needed in the cluster-based scalable services paper?)

Question (singular!) for the week (due 3/30)


Q14, 3/30: The designers of RPC make a number of design assumptions. List and discuss three of those decisions; did they make good trade-offs in the design?

Optional (to think about): The VMWare paper introduces memory ballooning as a technique to steal pages from one domain and give them to another: what are the limitations of this approach?

Questions for the week (3/15, 3/17)

No questions this week! (An early spring break) Use this time to start on your projects, but please still read and discuss the papers before class.

Questions for the week (3/8, 3/10)

Resource Containers

Q12, 3/8: Discuss the empirical evaluation in the Resource Containers paper. What is good about it, what is bad, what is missing?

Scheduler Activations

Q13, 3/10: Scheduler Activations are used, among other things, to convey information between user-level processes and the operating system. What type of information is conveyed by each to the other, and why is it important to do so?

Questions for the week (3/1, 3/3)

Monitors and Mesa

Q10, 3/1: In theory, there's no difference between theory and practice, but in practice, there is. Discuss how the "practice" as described in the Mesa paper differs from the "theory" described in the Monitors paper.

Lottery scheduling

Q11, 3/3: Describe how we could use lottery scheduling to schedule a different resource, namely disk bandwidth. What are the issues here? (hint: think about how a disk works)

Questions for the week (2/22, 2/24)

Note: Only one question this week, due Thursday 2/24 at 10am.

Q9, 2/24: Discuss some of the difficulties of applying D-GRAID-style layout to RAID Level-5 style parity encoding.

Questions for the week (2/15, 2/17)


Q7, 2/15: Discuss how I/O lite changes how buffer-cache management works in an operating system. What is different?

Anticipatory Scheduling

Q8, 2/17: Describe how you would write a program that would make an anticipatory scheduling system perform very poorly, as compared to a more traditional scheduler.

Questions for the week (2/8, 2/10)


2/8: No question to turn in about FFS; just read the paper!


Q6, 2/10: Come up with three workloads: one that works well on FFS-based systems but not on LFS; one that works well on LFS but not on FFS; and finally, one that doesn't work particularly well on either. What do I mean by a "workload"? Just a rough description of a set of I/O accesses. For example, you could describe one workload as "a set of sequential reads to large files".

Questions for the week (2/1, 2/3)


Q4, 2/1: Imagine you wanted to detect, from inside the OS, that you were running on Disco and not the bare hardware; what could you do? (assume you can run an arbitrary piece of code to do this). How robust is your detection scheme? Just sketch the basic idea, no need to go into extreme levels of detail.


Q5, 2/3: Criticize the evaluation of the Nooks system -- what is done well, what is missing?

Questions for the week (1/25, 1/27)


Q2, 1/25: Compare the Hydra generic "call" and a "system call" of a more modern OS -- what are the similarities, what are the differences?

A good answer


Q3, 1/27: What is different between the minimal approach that Exokernel takes as compared to that of Nucleus?

Questions for the week (1/20)

The Structure of the "THE" Multiprogramming System
The Nucleus of a Multiprogramming System

Q1, 1/20: What are the main philosophical differences in design of the THE system and the Nucleus system?

A good answer