Technology and Operating Systems

Lecture Notes for CS 140
Spring 2020
John Ousterhout

  • Many of the basic ideas in operating systems were developed 30-50 years ago, when technology was very different. Are these ideas still relevant today and in the future?
  • Technology changes over the last 30 years (see slide)
  • The role of paging (see slide):
    • When originally proposed (1960's):
      • Disk speed: 80ms latency, 250 KBytes/sec transfer
      • Memory size: 256 KBytes (64 pages)
      • Time to replace all of memory:
        • 6.4 sec (individual page faults)
        • 1 sec (sequential)
    • Today:
      • Disk speed: 10ms latency, 150 MBytes/sec transfer
      • Memory size: 64 GB (16,000,000 pages)
      • Time to replace all of memory:
        • 44 hours (individual page faults)
        • 320 sec (sequential)
    • Can't afford to page something out unless it's going to be idle for a long time.
    • Does paging make sense anymore?
      • Mechanism for incremental loading of processes?
        • Why not just read the entire binary at once?
        • 15 MB of binary takes .1 sec.
      • Safety valve for temporary emergencies?
        • Perhaps, but not much space between "system not paging at all" and "system totally unusable".
      • Maybe NVMs will make it practical again?
    • Virtual memory still be useful:
      • Simplifies physical memory management
      • Allows controlled sharing
      • Sparse allocation (e.g. thread stacks)
      • Memory-mapped files
      • Virtual machines
    • Page size is way too small:
      • Random accesses for replacement too expensive.
      • Not enough TLB coverage.
  • Disks (see slide):
    • Capacity has increased faster than access time.
    • Can't actually access all the information you can store on disk!
    • Frequently accessed information must move elsewhere
  • Storage latency:
    • Disks: 10 ms
    • Flash: 100 microseconds
    • New nonvolatile memories (Intel 3D XPoint): 100-300ns
    • Current software stacks totally unsuitable for nonvolatile memories
    • Will the file abstraction make sense in the future?
  • Current hot area for OS development: the datacenter
    • Coordinating thousands of machines working together
    • Managing millions of virtual machines
    • Potential for very low-latency communication.