History Where the idea for Operating systems came from Genealogy of - - PowerPoint PPT Presentation

history
SMART_READER_LITE
LIVE PREVIEW

History Where the idea for Operating systems came from Genealogy of - - PowerPoint PPT Presentation

BS1 WS19/20 topic-based slides History Where the idea for Operating systems came from Genealogy of Operating Systems Critical Innovations Hardware and Software Hardware Development Operating System Development Operating Systems


slide-1
SLIDE 1

BS1 WS19/20 – topic-based slides

History

  • Where the idea for Operating systems came from
  • Genealogy of Operating Systems
  • Critical Innovations
slide-2
SLIDE 2

Operating Systems 6

Hardware and Software

Hardware Development Operating System Development

slide-3
SLIDE 3

Operating Systems 8

First Computers

  • 1801: Power loom driven by wooden punch cards
  • 1822: Steam-

driven analytical engine by Charles Babbage

  • Mechanical decimal stored

‐program computer, programmable by punch cards, support for calculation and conditional statements

  • Remained unbuilt; Based on concepts, Ada Byron later invented

subroutines and loops as programming concepts

  • 1890: U.S. census supported by Hollerith desk - punch card reader,

counting units, wall of dial indicators

  • Built by Tabulating Machine Company, which eventually

became International Business Machines

  • Invented the idea of output punch cards independent from

Babbage

slide-4
SLIDE 4

Operating Systems 9

First Computers

  • 1944: Harvard Mark I developed in partnership between Harvard

and IBM (ballistic fjring tables)

  • First programmable digital computer made in the U.S.
  • Constructed of switches, relays, rotating shafts, clutches
  • Grace Hopper found the fjrst computer bug, invented

the predecessor of COBOL and the fjrst compiler

  • 1941: Konrad Zuse completed the work on the Z3
  • First programmable electromechanical computer
  • Punch fjlm for program and data (lack of paper)
  • Mapping of Boolean algebra to relays, developed independently

from original Shannon work

  • Plankalkül – programming language
slide-5
SLIDE 5

Operating Systems 10

Von Neumann Architecture

  • 1946: ENIAC as fjrst fully electronic computer in the U.S.
  • No program memory, re-wiring for each program
  • EDVAC: Revolutionary extension with a stored program computer concept by John von Neumann
  • Memory contains both the program and the data
  • Introduction of a general purpose computer concept
slide-6
SLIDE 6

Operating Systems 11

Serial Processing

  • Computers from 1940 to 1955 were able to perform serial processing
  • Programs for the machine (relays, vacuum tubes) written in assembly language
  • Console with display lights, switches, punch card reader / plugboard, printer
  • Re-wiring or punch card reading necessary for fjlling the program memory
  • Program had complete control of the machine

for the entire run-time

  • Manual reservation, user either fjnished early

(wasted time) or could not debug their problem

  • Long setup time -

Job may involve running the compiler program fjrst and feeding in the output again

slide-7
SLIDE 7

Operating Systems 13

1st Idea: Batch Processing

  • A job control language (JCL) operates the monitor

application

  • Instructions about the compiler to use, data to work on etc.

(Fortran prefjx $)

  • Early version of system calls
  • Monitor needed to switch between itself and the application
  • Resident monitor parts always in memory
  • Demands on hardware: memory protection, timer,

privileged instructions for I/O

  • User mode vs. monitor mode (system mode, kernel mode,

supervisor mode)

slide-8
SLIDE 8

Operating Systems 14

2nd Idea: Multiprogramming

  • Batch processing increases utilization, but jobs still need to wait

for I/O operations

  • Idea: Load multiple jobs into memory at the same time
  • While one is waiting for I/O results, switch to another one
  • Multiplexing of resources between a set of jobs became a basic

monitor / operating system task

  • > multi-programming or multi-tasking
  • Goal: Maximize CPU utilization
slide-9
SLIDE 9

Operating Systems 15

2nd Idea: Multiprogramming

slide-10
SLIDE 10

Operating Systems 16

2nd Idea: Multiprogramming

  • Multiprogramming begets interactivity
  • Idea: add dedicated job that is always loaded and processes

user input (“terminal”)

  • Time Sharing Option (TSO) on IBM Mainframe
  • Decouples the user from the processing
  • But: multiprogramming is cooperative

→ terminal is unresponsive while the machine is occupied

slide-11
SLIDE 11

Operating Systems 17

3rd Idea: Preemption / Time Sharing

  • Users started to demand interaction with their program,

e.g. for retry on errors

  • Perform multi-tasking, but act like the machine is exclusively used
  • Advent of time-sharing / preemptive multi-tasking systems
  • Goal: Minimize single user response time
  • Extension of multi-programming to multiple interactive (non-batch) jobs
  • Preemptive multi-tasking became a single user demand in modern times
  • Leave one application running while starting another one
  • Pure batch processing systems still exist: TPM, SAP R/3, HPC
slide-12
SLIDE 12

Operating Systems 18

Time Sharing – CTSS & MULTICS

  • Compatible Time-Sharing System (CTSS)
  • Operating system developed at MIT, fjrst for the IBM 7094 in 1961

(32.768 36bit words memory)

  • Program always loaded to start at the location of the 5000th word
  • System clock generated interrupts roughly every 0.2 seconds
  • At each clock interrupt, the system regained control and assigned the processor to another

user - time slicing

  • Parts of the active program that would be overwritten are written to disk
  • Other parts remained inactive in the system memory
  • Direct successor MULTICS pioneered many modern operating system concepts
slide-13
SLIDE 13

Operating Systems 19

Time Sharing – CTSS & MULTICS

Source Code:

  • https://gitlab.hpi.de/osm-teaching/opsys19labs/multics
  • https://gitlab.hpi.de/osm-teaching/opsys19labs/ctss

… and more

slide-14
SLIDE 14

Operating Systems 20

Genealogy of Operating Systems

55 60 65 70 75 80 85 90 95 00 03 IOCS DOS/360 DOS/VSE VSE VSE/ESA OS/360 MVS/370 MVS/XA MVS/ESA TSO IBSYS CTSS CP/CM5 VM/370 VM/XA VM/ESA SYSTEM III SYSTEM V SYSTEM V.4 MULTICS UNIX UNIXV.7 AIX/370 AIX SUN OS POSIX SOLARIS 2 4.1BSD 4.2BSD 4.3BSD 4.4BSD MACH OSF/1 AIX/ESA XENIX MS-DOS 1.0 CP/M DR/DOS OS/2 WIN 3.0 WIN NT WIN 2000 WIN 9X WIN XP GNU/LINUX RSX-11M VMS 1.0 VMS 5.4 VMS 7.3 WIN 3.1 SOLARIS 10 RT-11 GNU/LINUX 2.6 WIN Server 2003 OS/390 z/OS z/VSE z/VM

https://www.tele-task.de/lecture/video/7083/ from 49:50

slide-15
SLIDE 15

Operating Systems 21

Genealogy of Unix (simplifjed)

OpenServer 6.x UnixWare 7.x (System V R5) HP-UX 11i+ 1969 1971 to 1973 1974 to 1975 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 to 2004 2006 to 2007 2008 2005 2009 2010 2011 2012 to 2015 2016 2017 Open source Mixed/shared source Closed source HP-UX 1.0 to 1.2 OpenSolaris & derivatives (illumos, etc.) System III System V R1 to R2 OpenServer 5.0.5 to 5.0.7 OpenServer 5.0 to 5.04 SCO UNIX 3.2.4 SCO Xenix V/386 SCO Xenix V/386 SCO Xenix V/286 SCO Xenix Xenix 3.0 Xenix 1.0 to 2.3 PWB/Unix AIX 1.0 AIX 3.0-7.2 OpenBSD 2.3-6.1 OpenBSD 1.0 to 2.2 SunOS 1.2 to 3.0 SunOS 1 to 1.1 Unix/32V Unix Version 1 to 4 Unix Version 5 to 6 Unix Version 7 Unnamed PDP-7 operating system BSD 1.0 to 2.0 BSD 3.0 to 4.1 BSD 4.2 Unix Version 8 Unix 9 and 10 (last versions from Bell Labs) NexTSTEP/ OPENSTEP 1.0 to 4.0 Mac OS X Server Mac OS X, OS X, macOS 10.0 to 10.12 (Darwin 1.2.1 to 17) Minix 1.x Minix 2.x Minix 3.1.0-3.4.0 Linux 2.x Linux 0.95 to 1.2.x Linux 0.0.1 BSD 4.4-Lite & Lite Release 2 NetBSD 0.8 to 1.0 NetBSD 1.1 to 1.2 NetBSD 1.3 NetBSD 1.3-7.1 FreeBSD 1.0 to 2.2.x 386BSD BSD Net/2 Solaris 10 Solaris 11.0-11.3 System V R4 Solaris 2.1 to 9 BSD 4.3 SunOS 4 HP-UX 2.0 to 3.0 HP-UX 6 to 11 System V R3 UnixWare 1.x to 2.x (System V R4.2) BSD 4.3 Tahoe BSD 4.3 Reno FreeBSD 3.0 to 3.2 FreeBSD 3.3-11.x Linux 3.x Linux 4.x OpenServer 1969 1971 to 1973 1974 to 1975 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 to 2004 2006 to 2007 2008 2005 2009 2010 2011 2012 to 2015 2016 2017 DragonFly BSD 1.0 to 4.8 BSD Net/1 Unix-like systems

slide-16
SLIDE 16

Operating Systems 22

Unix History

https://www.tuhs.org/

slide-17
SLIDE 17

Operating Systems 23

Genealogy of Linux

https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

(too large for this slide)

slide-18
SLIDE 18

Operating Systems 24

Genealogy of Operating Systems

55 60 65 70 75 80 85 90 95 00 03 IOCS DOS/360 DOS/VSE VSE VSE/ESA OS/360 MVS/370 MVS/XA MVS/ESA TSO IBSYS CTSS CP/CM5 VM/370 VM/XA VM/ESA SYSTEM III SYSTEM V SYSTEM V.4 MULTICS UNIX UNIXV.7 AIX/370 AIX SUN OS POSIX SOLARIS 2 4.1BSD 4.2BSD 4.3BSD 4.4BSD MACH OSF/1 AIX/ESA XENIX MS-DOS 1.0 CP/M DR/DOS OS/2 WIN 3.0 WIN NT WIN 2000 WIN 9X WIN XP GNU/LINUX RSX-11M VMS 1.0 VMS 5.4 VMS 7.3 WIN 3.1 SOLARIS 10 RT-11 GNU/LINUX 2.6 WIN Server 2003 OS/390 z/OS z/VSE z/VM

https://www.tele-task.de/lecture/video/7083/ from 49:50

slide-19
SLIDE 19

Operating Systems 25

POSIX

  • family of standards for maintaining compatibility between
  • perating systems
  • on source code level
  • on system tools level
  • Specifjcation follows existing UNIX implementations
  • committee does not invent functionality
slide-20
SLIDE 20

Operating Systems 26

Summary

Operating System Development intricately tied to:

  • Utilization: Cost of Labour vs, Cost of Machine
  • Use case – commercial / military / government

– still relevant today

  • Hardware Development

– Operating Systems features required implementation in

hardware for effjciency

– Hardware advancements required adaption of Operating

Systems (e.g. mobile, NVRAM, ...)

slide-21
SLIDE 21

Operating Systems 27

Critical Innovations

  • Batch Job Processing
  • Linkage of library routines to programs
  • Management of fjles, I/O devices, secondary storage
  • Multiprogramming
  • Resource management and sharing for multiple programs
  • Quasi-simultaneous program execution
  • Single user
slide-22
SLIDE 22

Operating Systems 28

Critical Innovations

  • Multiuser/Timesharing Systems
  • Management of multiple simultaneous users interconnected

via terminals

  • Resource management: CPU scheduling, spooling, mutual

exclusion

  • Real-Time Systems (process control systems)
  • Management of time-critical processes
  • High requirements with respect to reliability and availability
slide-23
SLIDE 23

Operating Systems 29

Genealogy of Operating Systems

55 60 65 70 75 80 85 90 95 00 03 IOCS DOS/360 DOS/VSE VSE VSE/ESA OS/360 MVS/370 MVS/XA MVS/ESA TSO IBSYS CTSS CP/CM5 VM/370 VM/XA VM/ESA SYSTEM III SYSTEM V SYSTEM V.4 MULTICS UNIX UNIXV.7 AIX/370 AIX SUN OS POSIX SOLARIS 2 4.1BSD 4.2BSD 4.3BSD 4.4BSD MACH OSF/1 AIX/ESA XENIX MS-DOS 1.0 CP/M DR/DOS OS/2 WIN 3.0 WIN NT WIN 2000 WIN 9X WIN XP GNU/LINUX RSX-11M VMS 1.0 VMS 5.4 VMS 7.3 WIN 3.1 SOLARIS 10 RT-11 GNU/LINUX 2.6 WIN Server 2003 OS/390 z/OS z/VSE z/VM

https://www.tele-task.de/lecture/video/7083/ from 49:50