A Brief History of Operating Systems, Part I
Objectives
Notes
- This is based on The Evolution of Operating Systems by Per Brinch Hansen
- This is a local copy for my students only.
- This is an amusing article by someone who apparently lived it.
- Hansen looks at papers covering each of these systems.
- He classifies OS history into seven phases
- Open Shop
- In the beginning there were a few systems.
- New technology
- There were probably no compilers (until 1952)
- There were few programmers, but many more than computers!
- There was certainly no OS.
- Typically users would be give a time slice, like 15 min
- They would physically enter the room with the computer (Open Shop)
- They would spend time setting up the program.
- They would run the program.
-
Each user was allocated a minimum 15-minute slot, of which time he usually spent 10 minutes in setting up the equipment to do his computation ... By the time he got his calculation going, he may have had only 5 minutes or less of actual computation completedwasting two thirds of his time slot.
- Batch Scheduling
- Big OS Idea: Remove the user from scheduling
- Card Readers, Paper Tape, ....
- Programs were submitted programs to a human called the operator.
- They used small computers to read these and arrange programs to run in a batch.
- Turn around time was hours to days
- Scheduling was a line (queue for CS and British people), first come first served.
- Think about it, submit your job, wait days, get back an error due to a malformed statement.
- It was still first come first served,
- The entire program run until completion.
- There was no interruption of the programmer unless the operator intervened
- System software consisted mostly of simple tools as well as libraries to use with your program.
- Multiprogramming
- As we will soon discuss, I/O is always magnitudes of time slower then the CPU
- Remember, we were punching holes in tapes, moving levers to strike a page, ...
- Since ALL useful programs must perform I/O
- Until program is compile
- Program runs
- I/O request, program stalls waiting for that to happen.
- I/O is finished
- Program Resumes
- Multiprogramming: A OS scheme where multiple programs are loaded into memory
- Each program is run in turn until an I/O stall occurs
- Then the next program in the queue is allowed to run
- This is not modern time-sharing.
- This is just another way to make efficient use of the hardware.
- Hansen says the idea of priority scheduling came into existence here.
- IE, jobs can be given an priority
- Useful to note, supercomputers are often scheduled by batch priority to maintain efficiency.
- The OS was controlled program selection and suspension, as well as I/O
- The ATLAS Supervisor
- 1960's, University of Manchester
- Demand Paging
- Main memory (16K) to Drum Storage (96K) words.
- 512K word pages could be transferred to and from the drum
- Placement of the page on the drum was controlled by the supervisor.
- It did this via supervisor calls, or early software interrupts.
- Hansen says that this was the "First recognizable modern operating system"
- The B5000 Master Control Program
- Paper published in 1964
- Used ALGOL to implement the OS, as opposed to Machine/Assembly
- True virtual memory, no programmer intervention
- multiprocessing : running multiple programs on multiple CPUs at the same time, the Burroughs B5000 had multiple processors.
- Case Western Reserve University (Cleveland) wrote Exec II
- This was back to the open shop idea
- It foreshadowed timesharing
-
85% of the jobs required less than a minute of computer time. A student was often able to run a small job, repunch a few cards, and run the job again in less than five minutes. The system typically ran 800 jobs a day with a processor utilization of 90%. Less than 5% of the jobs used magnetic tapes. Users were also responsible for mounting and identifying their own tapes.
- In general it appears that making I/O and job loading were priorities in this era
- Describing the Egdon System, about 1966
-
The system combined traditional tape batching with spooling of tape input/output. The system automatically switched between two input tapes. Jobs were copied from a card reader onto one of the tapes. When that tape was full, the system rewound it and executed one job at a time. At the same time, the system started filling the second input tape. In a slightly more complicated way, the system switched between a third tape that received output from the running program and a fourth one that was being printed.
- Timesharing
- Timesharing is an OS concept where multiple users can use the machine, which switches between their jobs.
-
By a time-sharing computer system I shall mean one that interacts with many simultaneous users through a number of remote consoles. Such a system will look to each user like a large private computer...When the user wants service, he simply starts typing in a message requesting the service. The computer is always ready to pay attention to any key that he may strike.
John McCarthy 1962
- A prototype was demonstrated in the early 60's at MIT
- CTSS
- Fully operational by 1965
- MULTICS
- A project at MIT, included Bell Labs, GE and others.
- Multiple user timesharing
- Fully operational by 69,
- Shut down in 2000
- Available as free software apparently, with a update in 2023
- Introduced a hierarchical file system
- Titan File System
- Cambridge University
- 26 simultaneous terminals
- 128 Mb (byte) disk, 10,000 files belonging to 700 users.
- Permissions
- Automatic backup to magnetic tape.
- File systems are a problem for multi-user timesharing systems.
- UNIX
- When AT&T pulled out of MULTIX, Ritchie and Thompson worked on this alternative.
- By 71 they could support 3 simultaneous users.
- The kernel was written in C,
- C was written to implement the kernel
- I like this quote:
Most of Unix was not new, but rather what Ritchie calls âa good engineering application of ideas that had been around in some form and [were now] made convenient to use.â
- By the 80's this had become the dominate timesharing system
In the commercial world there are 100,000 Unix systems in operation ... Virtually every major university throughout the world now uses the Unix system.
(Aho, 1984)