Operating Systems - History of Operating System [Notes]


  1. Single user (no OS).
  2. Batch, uniprogrammed, run to completion.
    • The OS now must be protected from the user program so that it is capable of starting (and assisting) the next program in the batch).
  3. Multiprogrammed
    • The purpose was to overlap CPU and I/O
    • Multiple batches
      • IBM OS/MFT (Multiprogramming with a Fixed number of Tasks)
        • The (real) memory is partitioned and a batch is assigned to a fixed partition.
        • The memory assigned to a partition does not change
      • IBM OS/MVT (Multiprogramming with a Variable number of Tasks) (then other names)
        • Each job gets just the amount of memory it needs. That is, the partitioning of memory changes as jobs enter and leave
        • MVT is a more ``efficient'' user of resources but is more difficult.
        • When we study memory management, we will see that with varying size partitions questions like compaction and ``holes'' arise.
    • Time sharing
      • This is multiprogramming with rapid switching between jobs (processes). Deciding when to switch and which process to switch to is called scheduling.
      • We will study scheduling when we do processor management
  4. Multiple computers
    • Multiprocessors: Almost from the beginning of the computer age but now are not exotic.
    • Network OS: Make use of the multiple PCs/workstations on a LAN.
    • Distributed OS: A ``seamless'' version of above.
    • Not part of this course (but often in G22.2251).
  5. Real time systems
    • Often in embedded systems
    • Soft vs hard real time. In the latter missing a deadline is a fatal error--sometimes literally.
    • Very important commercially, but not covered much in this course.