Professor: Well, imagine we have a peach –
Student: (interrupting) Peaches again! What is it with you and peaches?
Professor: Ever read T.S. Eliot? The Love Song of J. Alfred Prufrock, “Do I dare to eat a peach”, and all that fun stuff?
Student: Oh yes! In English class in high school. Great stuff! I really liked the part where –
Professor: (interrupting) This has nothing to do with that – I just like peaches. Anyhow, imagine there are a lot of peaches on a table, and a lot of people who wish to eat them. Let’s say we did it this way: each eater ﬁrst identiﬁes a peach visually, and then tries to grab it and eat it. What is wrong with this approach?http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf
[CS97] “Inside Windows NT”
Helen Custer and David A. Solomon
Microsoft Press, 1997
The NT book, if you want to learn about something other than UNIX. Of course, why would you? OK, we’re kidding; you might actually work for Microsoft some day you know.http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf
For example, grocery stores commonly have a “ten-items-or-less” line to ensure that shoppers with only a few things to purchase don’t get stuck behind the family preparing for some upcoming nuclear winter.http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-persistence.pdf
Professor: Ha! Yes. But persistence here means something else. Let me explain. Imagine you are outside, in a ﬁeld, and you pick a –
Student: (interrupting) I know! A peach! From a peach tree!
Professor: I was going to say apple, from an apple tree. Oh well; we’ll do it your way, I guess.
Student: (stares blankly)
Professor: Anyhow, you pick a peach; in fact, you pick many many peaches, but you want to make them last for a long time. Winter is hard and cruel in Wisconsin, after all. What do you do?http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf
In the early days, building computer systems was easy. Why, you ask? Because users didn’t expect too much. It is those darned users with their expectations of “ease of use”, “high performance”, “reliability”, and so forth that really have led to all these headaches. Next time you meet one of those computer users, thank them for all the problems they have caused.http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf
[DD68] “Virtual Memory, Processes, and Sharing in Multics”
Robert C. Daley and Jack B. Dennis
Communications of the ACM, Volume 11, Issue 5, May 1968
An early paper on how to perform dynamic linking in Multics, which was way ahead of its time. Dynamic linking ﬁnally found its way back into systems about 20 years later, as the large Xwindows libraries demanded it. Some say that these large X11 libraries were MIT’s revenge for removing support for dynamic linking in early versions of UNIX!http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-distribution.pdf
Student: Sounds interesting. Time to learn something for real?
Professor: It does seem so. Let’s get to work! But ﬁrst things ﬁrst ... (bites into peach he has been holding, which unfortunately is rotten)http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf
[BNS69] “An anomaly in space-time characteristics of certain programs running in a
L. A. Belady and R. A. Nelson and G. S. Shedler
Communications of the ACM, 12:6, June 1969
Introduction of the little sequence of memory references known as Belady’s Anomaly. How do Nelson and Shedler feel about this name, we wonder?http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf
[B02] “The FAT File System”
A nice clean description of FAT. The file system kind, not the bacon kind. Though you have to admit, bacon fat probably tastes better.http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf
It should be noted that these heuristics are not based on extensive studies of file-system traffic or anything particularly nuanced; rather, they are based on good old-fashioned common sense (isn’t that what CS stands for after all?).http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf
fsck Pronounced either “eff-ess-see-kay”, “eff-ess-check”, or, if you don’t like the tool, “eff-suck”. Yes, serious professional people use this term.http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf
Because the value of the semaphore simply alternates between 1 and 0, this usage is sometimes known as a binary semaphore. Yes, this is something you just have to remember; life is unfair that way sometimes.http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf
The problem is famous because it is fun and somewhat intellectually interesting; however, its practical utility is low. However, its fame forces its inclusion here; indeed, you might be asked about it on some interview, and you’d really hate your OS professor if you miss that question and don’t get the job. Conversely, if you get the job, please feel free to send your OS professor a nice note, or some stock options.