Operating Systems WT 2019/20

Operating Systems WT 2019/20

Operating Systems WT 2019/20 Abridged History of Operating Systems 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 2 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 5 Hardware and Software Hardware Development Operating System Development Operating Systems 6 The First Computer Q: What was the first computer? Operating Systems 7 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 8 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 9 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 10 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 11 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 13 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 14 2nd Idea: Multiprogramming Operating Systems 15 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 16 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 17 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 18 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 19 Genealogy of Operating Systems 55 IOCS IBSYS https://www.tele-task.de/lecture/video/7083/ 60 CTSS from 49:50 65 DOS/360 OS/360 MULTICS CP/CM5 RSX#!!M 70 TSO UNIX RT#!! CP/M 75 DOS/VSE MVS/370 VM/370 UNIXV.7 VMS !.0 4.1BSD XENIX MS-DOS 1.0 SYSTEM III DR/DOS 80 SUN OS VSE MVS/XA VM/XA SYSTEM V 4.2BSD AIX POSIX MACH "IN 3.0 OS/2 85 AIX/370 OSF/! 4.3BSD VMS 5.4 "IN 3.! SYSTEM V.4 VSE/ESA MVS/ESA VM/ESA 90 AIX/ESA SOLARIS 2 GNU/LINUX 4.4BSD "IN NT OS/390 "IN 9X 95 z/VSE z/VM VMS 7.3 "IN 2000 z/OS 00 GNU/LINUX 2.6 SOLARIS !0 "IN XP WIN Server 200 03 Operating Systems 20 1969 Unnamed PDP-7 operating system 1969 Open source 1971 to 1973 Unix 1971 to 1973 Version 1 to 4 Mixed/shared source 1974 to 1975 Unix Closed source 1974 to 1975 Version 5 to 6 PWB/Unix Genealogy1978 of Unix (simplified) 1978 BSD 1.0 to 2.0 Unix 1979 Version 7 1979 Unix/32V 1980 1980 BSD 3.0 to 4.1 Xenix System III 1981 1.0 to 2.3 1981 1982 1982 Xenix 3.0 1983 BSD 4.2 SunOS 1983 1 to 1.1 System V R1 to R2 1984 SCO Xenix 1984 Unix 1985 Version 8 SCO Xenix 1985 AIX V/286 System V 1986 Unix-like systems BSD 4.3 1.0 R3 HP-UX 1986 SunOS 1.0 to 1.2 Unix 1.2 to 3.0 SCO Xenix 1987 9 and 10 V/386 1987 (last versions HP-UX 1988 BSD 4.3 System V 2.0 to 3.0 1988 from Tahoe R4 1989 Bell Labs) SCO Xenix 1989 BSD Net/1 V/386 BSD 4.3 1990 Reno 1990 BSD Net/2 1991 Linux 0.0.1 1991 SunOS 4 Minix 386BSD 1.x NexTSTEP/ 1992 OPENSTEP HP-UX 1992 1.0 to 4.0 NetBSD 6 to 11 Linux BSD 0.8 to 1.0 1993 SCO UNIX UnixWare 1993 0.95 to 1.2.x 4.4-Lite 3.2.4 1.x to 2.x & 1994 FreeBSD (System V 1994 1.0 to Lite Release 2 R4.2) 1995 2.2.x NetBSD 1995 OpenBSD OpenServer 1.1 to 1.2 1.0 to 2.2 Solaris 1996 5.0 to 5.04 2.1 to 9 1996 1997 1997 NetBSD 1.3 1998 FreeBSD 1998 3.0 to 3.2 Minix OpenServer 1999 Mac OS X AIX 5.0.5 to 5.0.7 1999 2.x Server 2000 3.0-7.2 2000 2001 to 2004 2001 to 2004 Linux 2005 2.x UnixWare 2005 7.x 2006 to 2007 (System V 2006 to 2007 OpenBSD R5) 2.3-6.1 Solaris 2008 Mac OS X, 2008 FreeBSD NetBSD 10 OS X, 3.3-11.x 1.3-7.1 OpenServer HP-UX 2009 macOS 6.x 11i+ 2009 10.0 to 10.12 DragonFly Minix BSD 2010 3.1.0-3.4.0 (Darwin 2010 1.2.1 to 17) 1.0 to 4.8 OpenSolaris 2011 & derivatives 2011 Linux Operating Systems (illumos, etc.) 21 2012 to 2015 2012 to 2015 3.x Solaris 11.0-11.3 2016 Linux 2016 4.x OpenServer 2017 10.x 2017 Unix History https://www.tuhs.org/ Operating Systems 22 Genealogy of Linux https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg (too large for this slide) Operating Systems 23 Genealogy of Operating Systems 55 IOCS IBSYS https://www.tele-task.de/lecture/video/7083/ 60 CTSS from 49:50 65 DOS/360 OS/360 MULTICS CP/CM5 RSX#!!M 70 TSO UNIX RT#!! CP/M 75 DOS/VSE MVS/370 VM/370 UNIXV.7 VMS !.0 4.1BSD XENIX MS-DOS 1.0 SYSTEM III DR/DOS 80 SUN OS VSE MVS/XA VM/XA SYSTEM V 4.2BSD AIX POSIX MACH "IN 3.0 OS/2 85 AIX/370 OSF/! 4.3BSD VMS 5.4 "IN 3.! SYSTEM V.4 VSE/ESA MVS/ESA VM/ESA 90 AIX/ESA SOLARIS 2 GNU/LINUX 4.4BSD "IN NT OS/390 "IN 9X 95 z/VSE z/VM VMS 7.3 "IN 2000 z/OS 00 GNU/LINUX 2.6 SOLARIS !0 "IN XP WIN Server 200 03 Operating Systems 24 POSIX ● family of standards for maintaining compatibility between operating systems ● on source code level ● on system tools level ● Specification follows existing UNIX implementations ● committee does not invent functionality Operating Systems 25 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 efficiency – Hardware advancements required adaption of Operating Systems (e.g.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    26 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us