Click here to load reader

Operating Systems WT 2019/20 - dcl.hpi.uni- · PDF fileAbridged History of Operating Systems. Operating Systems 2 Something to Ponder What is an Operating System? try to come up with

  • View
    6

  • Download
    0

Embed Size (px)

Text of Operating Systems WT 2019/20 - dcl.hpi.uni- · PDF fileAbridged History of Operating Systems....

  • Operating Systems WT 2019/20 Abridged History of Operating Systems

  • Operating Systems 2

    Something to Ponder

    What is an Operating System? try to come up with a definition of what the term operating system means.

    Discuss your findings amongst yourselves.

  • Operating Systems 5

    Operating System Definition

    My attempt: An operating system is a program that runs and orchestrates other programs, based on a set of optimization criteria.

  • Operating Systems 6

    Hardware and Software

    Hardware Development

    Operating System Development

  • Operating Systems 7

    The First Computer

    Q: What was the first computer?

  • 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

  • Operating Systems 9

    First Computers ● 1944: Harvard Mark I developed in partnership between Harvard

    and IBM (ballistic firing tables)

    ● First programmable digital computer made in the U.S.

    ● Constructed of switches, relays, rotating shafts, clutches

    ● Grace Hopper found the first computer bug, invented the predecessor of COBOL and the first compiler

    ● 1941: Konrad Zuse completed the work on the Z3

    ● First programmable electromechanical computer

    ● Punch film for program and data (lack of paper)

    ● Mapping of Boolean algebra to relays, developed independently from original Shannon work

    ● Plankalkül – programming language

  • Operating Systems 10

    Von Neumann Architecture ● 1946: ENIAC as first 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

  • 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 filling the program memory ● Program had complete control of the machine

    for the entire run-time ● Manual reservation, user either finished early

    (wasted time) or could not debug their problem ● Long setup time -

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

  • 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 prefix $) ● 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)

  • 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

  • Operating Systems 15

    2nd Idea: Multiprogramming

  • 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

  • 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

  • Operating Systems 18

    Time Sharing – CTSS & MULTICS ● Compatible Time-Sharing System (CTSS) ● Operating system developed at MIT, first 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

  • 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

  • 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/2WIN 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

  • Operating Systems 21

    Genealogy of Unix (simplified)

    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)

Search related