Technology and Operating Systems

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 is still 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.