Operating Systems: Three Easy Pieces

Book News

  • 03/31/15: Updates to many chapters, resulting in new version 0.90
  • 01/05/14: Added new traces in cpu-intro
  • 01/04/14: Added new homework for cpu-intro
  • 09/04/14: Added new homework for threads-locks
  • 07/28/14: Added new homework for cpu-api
  • 07/26/14: Added new homework for vm-freespace
  • 05/26/14: Released Version 0.8; includes many small fixes and lower price hard and soft covers
  • 03/14/14: Added new homework for threads-intro ; download it and play around to learn more about race conditions and related fun!
  • 03/04/14: Updates to everything in the Appendix - redid table to have more verbose chapter titles - some other small fixes
  • 03/04/14: New homework in dist-afs to simulate AFS cache consistency
  • 02/16/14: Major updates throughout to Version 0.7. This can be considered a final version of the text and figures - only homeworks for various chapters will be added to get to version 1.0. Changes include: re-format of entire book to fit more text onto each page (saves a few bucks in the printed version, and looks a little better) - added proper copyright notice and link to www.ostep.org on page footers - a few more people to thank in the acks - added list of tables - added line numbers to most code snippets - added figure to cpu-intro , plus a little more description - added another example to cpu-api , plus aside - small rewrites to cpu-sched - new pics to cpu-sched-multi - new pic in vm-freespace - decent rewrite of vm-tlbs including better example, aside, and pics - added some text to vm-beyondphys to clarify terms - additional policy discussion in vm-beyondphys-policy - some detailed traces in threads-cv plus clarifying text - some detailed traces in threads-sema , plus clarification of Semaphore definition as per original paper - discussion of signals in threads-events - better pics in file-devices - nice piece on dimensional analysis in file-disks - new graph of amortization in file-ffs - many new figures in file-journaling , as well as new text and timelines of journal protocols - new pics in file-integrity - new traces in dist-afs , as well as timelines, an aside, and an analysis of NFS/AFS - bug fixes throughout - new citations throughout.
  • 01/19/14: Added some cover art - a picture of Halley's comet (hat tip to Thomas Griebel). Plus lots of other fixes, thanks to those at Hacker News and elsewhere
  • 11/05/13: Some updates to File Intro - basically more details on fsync(), rename(), and how to use them for atomic update
  • 09/06/13: Some updates to Limited Direct Execution chapter - small bug fix in Semaphores
  • 08/15/13: Moved all of the homework simulator information OUT of the end of chapters and into README files, which can be downloaded from the homework page. All that is left at the end of chapters with simulators are the questions you might want to answer by using the simulator
  • 08/14/13: Too much to list here - basically, went through the entire book and replaced text figures with actual drawn figures - made sure each chapter had at least one crux (problem) - made sure that there were tips and asides throughout - reduced all previous sidebar material to just tips and asides - added citations in a few spots - added some new data here and there. All of this is now called version 0.6 which is getting close to a finished product (modulo a few homeworks). The rough list of chapters that have been updated includes: intro (new asides), cpu-api (aside, citations), cpu-sched (crux), cpu-sched-lottery (new data, homework changes, new tip, crux), cpu-sched-mlfq (redid pictures entirely), cpu-sched-multi (added chapter itself, graphical pics), vm-api (fixed reference), vm-mechanism (resized figures for readability), vm-freespace (redid pictures), vm-paging (added crux, rewrote here and there, added summary at end of chapter), vm-smalltables (added crux, some rewrites here and there, added a cite), threads-intro (fixed references), threads-sema (added crux), threads-locks-usage (added new chapter, fixed bugs), threads-events (added chapter itself), file-intro (fixed reference), file-raid (added crux, rewrote bits and pieces, added a few citations), file-implementation (redid pictures entireyly), file-ffs (new data, added pictures), file-lfs (redid pictures entirely), file-integrity (added chapter itself), dist-intro (added pics)
  • 08/02/13: Added final distributed summary dialogue
  • 08/02/13: Added a rough version on concurrent data structures with locks
  • 08/02/13: Added a rough version of a new chapter on event-based concurrency (finally!)
  • 08/02/13: Thinking about doing these long entries in a more verbose format
  • 07/26/13: Added new summary dialogue for file systems
  • 07/26/13: Added new hardcover edition
  • 07/26/13: Revised softcover edition
  • 07/26/13: Revised electronic full PDF
  • 07/26/13: New chapter on Multiprocessor Scheduling
  • 07/26/13: New chapter on (replaces and generalizes deadlock chapter)
  • 07/26/13: New chapter on Data Integrity (replaces pending file-modern)
  • 07/26/13: Upcoming chapter on event-based concurrency is next
  • 01/12/13: Updates to vm-freespace, vm-segmentation
  • 01/09/13: A number of fixes thanks to various bug reports: see errata
  • 07/19/12: Moved to one less easy piece!
  • 06/15/12: Finally caught up on many many student fixes and such
  • 04/08/12: Updated file-journaling somewhat substantially
  • 03/20/12: More pictures in file-devices - a little more text too
  • 03/12/12: Yet again a few more typos in various chapters - see errata
  • 03/05/12: A few more typos in various chapters
  • 03/02/12: A few typos in various chapters
  • 02/14/12: Numerous typos
  • 02/10/12: Update of NFS chapter
  • 02/10/12: Update of TLB code example
  • 01/12/12: Minor fixes to many many chapters thanks to many students
  • 12/06/11: New Distributed Systems intro
  • 12/06/11: New Distributed Systems dialogue
  • 11/03/11: A number of fixes to devices and all early file system chapters
  • 10/11/11: Re-org of concurrency chapters
  • 07/25/11: Added new chapter on thread API
  • 07/25/11: Small update to thread intro
  • 07/05/11: Added new dialogue
  • 06/29/11: Added new simulator (lottery.py) and homework into this chapter
  • 06/29/11: Update of lottery scheduling
  • 06/26/11: Updated table of contents
  • 06/24/11: Added new simulator (paging-policy.py) and homework here
  • 06/24/11: Added new homework to this chapter
  • 06/24/11: Added new homework to this chapter
  • 06/23/11: Added new simulator (relocation.py) into this chapter
  • 06/23/11: Updated intro to address translation
  • 06/13/11: Slight update to intro chapter.
  • 06/08/11: Added new disk simulator (disk.py) and homework here.
  • 06/03/11: Added new RAID simulator (raid.py) and homework here.
  • 06/03/11: Started this page to track book updates