Presentation is loading. Please wait.

Presentation is loading. Please wait.

The UNIX Time-Sharing System

Similar presentations


Presentation on theme: "The UNIX Time-Sharing System"— Presentation transcript:

1 The UNIX Time-Sharing System
Mosharaf Chowdhury 9/12/16 EECS 582 – F16

2 A Memorandum “This memorandum is based on the assumption that MIT will be given a transistorized IBM 709 about July l960. I want to propose an operating system for it that will substantially reduce the time required to get a problem solved on the machine. Any guess as to how much of a reduction would be achieved is just a guess, but a factor of five seems conservative. …” “The proposal requires a complete revision in the way the machine is used, …” “… I think the proposal points to the way all computers will be operated in the future, and we have a chance to pioneer a big step forward in the way computers are used. …” “…The ideas expressed in the following sections are not especially new, but they have formerly been considered impractical with the computers previously available. …” 9/12/16 EECS 582 – F16

3 A Memorandum on Time Sharing
Divide a shared resource between multiple programs and users John McCarthy wrote the memorandum in 1959 As opposed to batch processing Submit jobs to queues to be processed one at a time Non-interactive Early examples of time-sharing OSes include MIT CTSS (Compatible Time-Sharing System) Berkeley Timesharing System Dartmouth Time-Sharing System (DTSS) Most of the OSes were machine-specific. 9/12/16 EECS 582 – F16

4 Multics Multiplexed Information and Computing Service
Started in 1964 at MIT; led by Fernando Corbató w/ GE and Bell Labs Time-sharing operating system Developed initially for GE-645 mainframe, a 36-bit machine w/ support for virtual memory Hierarchical file system Protection ring-based security Access Control Lists (ACL) Bell Labs pulled out in 1969 Honeywell maintained it until 2000 9/12/16 EECS 582 – F16

5 UNIX Started by Ken Thompson and Dennis Ritchie in 1969
“UNIX was never a ‘‘project;’’ it was not designed to meet any specific need except that felt by its major author, Ken Thompson, and soon after its origin by the author of this paper, for a pleasant environment in which to write and use programs.” - Dennis Ritchie, “The UNIX Time-sharing System – A Retrospective” 9/12/16 EECS 582 – F16

6 UNIX First version on DEC PDP-7 and PDP-9 (circa 1969-70)
Second version on unprotected DEC PDP-11/20 Third version w/ multiprogramming on PDP-11/40, 45 etc. Described in today’s paper February, 1971: PDP-11 Unix first operational PDP = Programmed Data Processor 16-bit precursor to 32-bit VAX (Virtual Address eXtension) 9/12/16 EECS 582 – F16

7 PDP-11/40 16-bit word (8-bit byte) 144K bytes core memory Storage
UNIX took 42K bytes Minimal system 50K bytes Storage 1M byte fixed-head disk 4X 2.5M byte moving-head disk cartridge 1X 40M byte moving-head disk pack 14 variable speed communication interfaces Many other attached devices 9/12/16 EECS 582 – F16

8 Simplicity Simple abstractions Simple file system design
Everything is a file Simple file system design Hierarchical for programming simplicity Simple connectors Pipes that look like files Simple maintenance Self-maintained “It is hoped, however, the users of UNIX will find that the most important characteristics of the system are its simplicity, elegance, and ease of use.” - DR & KT, “The UNIX Time-Sharing System” 9/12/16 EECS 582 – F16

9 Influences Berkeley Timesharing System
Process forks Multics I/O system calls Multics and TENEX Shell and related CTSS “…in essence a modern implementation of MIT’s CTSS system…” – D. Ritchie “The success of UNIX lies not so much in new inventions but rather in the full exploitation of a carefully selected set of fertile ideas, and especially in showing that they can be keys to the implementation of a small yet powerful operating system.” - DR & KT, “The UNIX Time-Sharing System” 9/12/16 EECS 582 – F16

10 Key Concepts Names and namespaces Process management User interface
Directories, paths, and links Root, home, and current directory Rooted tree and mounting sub-trees on leaves Special files and access control Process management System calls, address space, signals/interrupts User interface Shell, I/O redirection, and pipes 9/12/16 EECS 582 – F16

11 Hierarchical Namespace
Easy to traverse Easy to modify/add/delete Access control is simpler Hierarchical as well Can be arbitrarily increased Mount new drives! 9/12/16 EECS 582 – F16

12 Everything is a File Regular files Special files Directories Devices
Networks Directories Same as files, except when not Keeps track of pointers to files, not actual content Simplifies linking! 9/12/16 EECS 582 – F16

13 I/O Calls Inspired by Multics Primary functions
open, close, read, write, seek Interface that has passed the test of time: haven’t effectively changed yet! BSD socket API is similar open, close, send, recv 9/12/16 EECS 582 – F16

14 File System Implementation
Thompson and Ritchie took special pride in their design of the file system My opinion from the reading Given the long-term impact, I think it’s justified! We’ll skip the details, and wait for next week when we discuss file systems 9/12/16 EECS 582 – F16

15 Execution Image is an execution environment
Container is the current parallel Process is the execution of the image Program text is write-protected and shared between all running processes of the same program Created using fork Inspired by Berkeley Timesharing System 9/12/16 EECS 582 – F16

16 Processes and the Kernel
Separate virtual address space Only one thread! Kernel Mediator for accessing shared resources and kernel services P1 P2 P3 Kernel Interactions via system calls and signals/interrupts 9/12/16 EECS 582 – F16

17 Worse is Better Simplicity Ease of Use and Maintenance
Consistency Across Interfaces Completeness of Design Correctness of Specification and Implementation Placement of Functionality 9/12/16 EECS 582 – F16

18 Next Class… System R 9/12/16 EECS 582 – F16


Download ppt "The UNIX Time-Sharing System"

Similar presentations


Ads by Google