Opera.ng Systems History and Overview

Similar documents
CSE 306: Opera.ng Systems Opera.ng Systems History and Overview

Basic Concepts & OS History

Fundamental Concepts and History

Opera&ng Systems: Principles and Prac&ce. Tom Anderson

Introduction to Computer Systems and Operating Systems

OS History and OS Structures

Single and mul,threaded processes

CSE Opera*ng System Principles

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://

Chapter 2. Operating-System Structures

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Chapter 2: Operating-System Structures

Operating systems Architecture

CS 153 Design of Operating Systems

Background. IBM sold expensive mainframes to large organiza<ons. Monitor sits between one or more OSes and HW

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Topics. Operating System I. What is an Operating System? Let s Get Started! What is an Operating System? OS History.

Topics. Operating System. What is an Operating System? Let s Get Started! What is an Operating System? Where in the Book are we?

Introduction to System Programming

Opera&ng Systems ECE344

Computer Science 4500 Operating Systems. Welcome! In This Module. Module 1 Introduction, Overview and History

Principles of Operating Systems CS 446/646

Background. IBM sold expensive mainframes to large organiza<ons. Monitor sits between one or more OSes and HW

Andrew S. Tanenbaum, Operating Systems, Design and Implementation, (Second Edition), Prentice Hall.

Virtualization. Introduction. Why we interested? 11/28/15. Virtualiza5on provide an abstract environment to run applica5ons.

CS 152 Computer Architecture and Engineering CS252 Graduate Computer Architecture. Lecture 9 Virtual Memory

Chapter 2: Operating-System Structures

OPERATING SYSTEMS. Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

Welcome to CS 449: Introduc3on to System So6ware. Instructor: Wonsun Ahn

Chapter 2 Operating-System Structures

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Agenda. General Organiza/on and architecture Structural/func/onal view of a computer Evolu/on/brief history of computer.

The Kernel Abstrac/on

CSE 4/521 Introduction to Operating Systems

Lecture 2: Processes. CSE 120: Principles of Opera9ng Systems. UC San Diego: Summer Session I, 2009 Frank Uyeda

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

CSE Opera+ng System Principles

CS64 Computer Organization

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input.

Today s Objec4ves. Data Center. Virtualiza4on Cloud Compu4ng Amazon Web Services. What did you think? 10/23/17. Oct 23, 2017 Sprenkle - CSCI325

Four Components of a Computer System

16 Sharing Main Memory Segmentation and Paging

CSE Opera,ng System Principles

Lecture 8: Memory Management

W4118: OS Overview. Junfeng Yang

Chapter 2: System Structures

David DeFlyer Class notes CS162 January 26 th, 2009

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating-System Structures

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Operating System Structure

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Chapter 2: Operating-System Structures

Operating Systems Concepts

1. Operating System Concepts

Networks and Opera/ng Systems Chapter 13: Scheduling

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Operating System Structure

Operating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group

CS370 Operating Systems

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures

Alterna(ve Architectures

Operating System Structure

Operating Systems Overview. Chapter 2

Chapter 2: Operating-System

Preview. The Thread Model Motivation of Threads Benefits of Threads Implementation of Thread

CS 300 Leftovers. CS460 Pacific University 1

Chapter 2: Operating-System Structures

Introduction to Operating Systems

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Operating Systems Overview. Chapter 2

15 Sharing Main Memory Segmentation and Paging

Kernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023

Operating System Architecture. CS3026 Operating Systems Lecture 03

Introduction To Operating System

Networks and Opera/ng Systems Chapter 19: I/O Subsystems

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

Operating System Structure

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

OS Structures. ICS332 Operating Systems

Introduction to computing, architecture and the UNIX OS. HORT Lecture 1 Instructor: Kranthi Varala

CS Operating Systems (OS) Introduction. Lecture 2 Sept 12, 2018

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar

What does an Operating System do?

Module 1 Introduction/OS Overview

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Introduc)on to Compu)ng. Heng Sovannarith

Threads. COMP 401 Fall 2017 Lecture 22

Lecture 4: Memory Management & The Programming Interface

SMD149 - Operating Systems

Transcription:

Opera.ng Systems History and Overview So what is an OS? Por*ons of this material courtesy Profs. Wong and Stark 2-2 One view of an OS Another simple view of an OS OS 2-3 2-4 A less happy view of an OS They all are So which one is right? 2-5 2-6 1

An OS serves three masters 1. Give users a desktop environment 2. Give applica*ons a more usable abstrac*on of the hardware 3. Give hardware manufacturers an abstrac*on of the applica*ons Background (1) CPUs have 2 modes: user and supervisor Some*mes more, but whatevs mode: Issue commands to hardware devices Power off, Reboot, Suspend Launch missiles, Do awesome stuff mode: Run other code, hardware taxles if you try anything reserved for the supervisor 2-7 2-8 OS 2-9 2-10 Master #2: lica*ons lica*on Programming Interface (API) Win32 (Windows) POSIX (Unix/Linux) Cocoa/Cocoa Touch (Mac OS/iOS) lica*on-facing func*ons provided by libraries Injected by the OS into each applica*on 2-11 2-12 2

Famous libraries, anyone? Windows: ntdll.dll, kernel32.dll, user32.dll, gdi32.dll Linux/Unix: libc.so, ld.so, libpthread.so, libm.so Win32 API 2-13 2-14 Caveat 1 include a lot of code for common func*ons Why bother reimplemen*ng sqrt? They also give high-level abstrac*ons of hardware Files, printer, dancing Homer Simpson USB doll How does this work? System Call Special instruc*on to switch from user to supervisor mode Transfers CPU control to the kernel One of a small-ish number of well-defined func*ons How many system calls does Windows or Linux have? Windows ~1200 Linux ~350 2-15 2-16 Open file hw1.txt Ok, here s handle 4 System Call Table (350 1200) Caveat 2 Some libraries also call special apps provided by the OS, called a daemon (or service) Communicate through kernel-provided API Example: Print spooler sends pdf to spooler Spooler checks quotas, etc. Turns pdf into printer-specific format Sends reformaxed document to device via OS kernel 2-17 2-18 3

System Call Table (350 1200) Daemon 2-19 Master 3: OS kernels are programmed at a higher low level of abstrac*on Disk blocks vs. specific types of disks For most types of hardware, the kernel has a lowest common denominator interface E.g., Disks, video cards, network cards, keyboard Think Java abstract class Some*mes called a hardware abstrac*on layer (HAL) Each specific device (Nvidia GeForce 600) needs to implement the abstract class Each implementa*on is called a device driver 2-20 System Call Table (350 1200) Daemon What about Master 1 What is the desktop? Really just a special daemon that interacts closely with keyboard, mouse, and display drivers Launches programs when you double click, etc. Some program libraries call desktop daemon to render content, etc. HAL Driver Driver Driver 2-21 2-22 An OS serves three masters 1. Give users a desktop environment Desktop, or window manager, or GUI 2. Give applica*ons a more usable abstrac*on of the hardware (+ system calls and daemons) 3. Give hardware manufacturers an abstrac*on of the applica*ons Device Driver API (or HAL) Mul*plexing Resources Many applica*ons may need to share the hardware Different strategies based on the device: Time sharing: CPUs, disk arm Each app gets the resource for a while and passes it on Space sharing: RAM, disk space Each app gets part of the resource all the *me Exclusive use: mouse, keyboard, video card One app has exclusive use for an indefinite period 2-23 4

So what is Linux? Really just an OS kernel Including lots of device drivers Conflated with environment consis*ng of: Linux kernel Gnu libc X window manager daemon CUPS printer manager Etc. So what is Ubuntu? Centos? A distribu.on: bundles all of that stuff together Pick versions that are tested to work together Usually also includes a sonware update system 2-25 2-26 OSX vs ios? Same basic kernel (a few different compile op*ons) Different window manager and libraries What is Unix? A very old OS (1970s), innova*ve, s*ll in use Innova*ons: wrixen in C (first one not in assembly) Co-designed C language with Unix Several nice API abstrac*ons Fork, pipes, everything a file Several implementa*ons: *BSDs, Solaris, etc. Linux is a Unix-like kernel 2-27 2-28 What is POSIX? A standard for Unix compa*bility Even Windows is POSIX compliant! History of Opera*ng Systems Two ways to look at history: Evolu*on of the Theory Evolu*on of the Machine/ 2-29 5

Evolu*on of OS Theory 1. Centralized opera*ng system Resource management and mul*programming, Virtuality 2. Network opera*ng system Resource sharing to achieve Interoperability 3. Distributed opera*ng system Singe computer view of a mul*ple computer system for Transparency 4. Coopera*ve autonomous system Coopera*ve work with Autonomicity Evolu*on of OS Machine/ 1940 s First Computers One user/programmer at a *me (serial Program loaded manually using switches Debug using the console lights ENIAC 1 st gen purpose machine Calcula*ons for Army Each panel had specific func*on ENIAC (Electronic Number Integrator and Computer) 1940 s First Computers Vacuum Tubes and Plugboards Single group of people designed, built, programmed, operated and maintained each machine No Programming language, only absolute machine language (101010) O/S? What is an O/S? All programs basically did numerical calcula*ons Pros: Interac*ve immediate response on lights Programmers were women J Cons: Lots of Idle *me Expensive computa*on Error-prone/tedious Each program needs all driver code 1950 s Batch Processing Deck of cards to describe job Jobs submixed by mul*ple users are sequenced automa*cally by a resident monitor Resident monitor was a basic O/S S/W controls sequence of events Command processor Protec*on from bugs (eventually) Device drivers Monitor s Perspec*ve Monitor controls the sequence of events Resident Monitor is sonware always in memory Monitor reads in job and gives control Job returns control to monitor 6

1950 s Batch Processing Mul*programmed Batch Systems CPU is onen idle Even with automa*c job sequencing. I/O devices are slow compared to processor Pros: CPU kept busy, less idle *me Monitor could provide I/O services Cons: IBM 7090 No longer interac*ve longer turnaround *me Debugging more difficult CPU s*ll idle for I/O-bound jobs Buggy jobs could require operator interven*on Uniprogramming Processor must wait for I/O instruc*on to complete before preceding Mul*programming When one job needs to wait for I/O, the processor can switch to the other job Mul*programming 1960 s Mul*programming (*me-sharing) CPU and I/O devices are mul*plexed (shared) between a number of jobs While one job is wai*ng for I/O another can use the CPU SPOOLing: Simultaneous Peripheral Opera*on OnLine 1 st and simplest mul*programming system Monitor (resembles O/S) Starts job, spools opera*ons, I/O, switch jobs, protec*on between memory 7

Pros: 1960 s Mul*programming (*me-sharing) Paging and swapping (RAM) Interac*veness Output available at comple*on CPU kept busy, less idle *me IBM System 360 Cons: H/W more complex O/S complexity? 1970 s - Minicomputers and Microprocessors Trend toward many small personal computers or worksta*ons, rather than a single mainframe. Advancement of Integrated circuits Timesharing Each user has a terminal and shares a single machine (Unix) 1980 s Personal Computers & Networking Microcomputers = PC (size and $) MS-DOS, GUI, le, Windows Networking: Decentraliza*on of compu*ng required communica*on Not cost-effec*ve for every user to have printer, full copy of sonware, etc. Rise of cheap, local area networks (Ethernet), and access to wide area networks (Arpanet). 1980 s Personal Computers & Networking OS issues: Communica*on protocols, client/server paradigm Data security, encryp*on, protec*on Reliability, consistency, availability of distributed data Heterogeneity Reducing Complexity Ex: Byte Ordering 1990 s Global Compu*ng Dawn of the Internet Global compu*ng system Powerful CPUs cheap! Mul*core systems High speed links Standard protocols (HTTP, FTP, HTML, XML, etc) OS Issues: Communica*on costs dominate CPU/RAM/disk speed mismatch Send data to program vs. sending program to data QoS gurantees Security In the year 2000 8

2000 s Embedded and Ubiquitous Compu*ng Mobile and wearable computers Networked household devices Absorp*on of telephony, entertainment func*ons into compu*ng systems OS issues: Security, privacy Mobility, ad-hoc networks, power management Reliability, service guarantees 2000 s Embedded and Ubiquitous Compu*ng Real-*me compu*ng Guaranteed upper bound on task comple*on Dedicated computers/embedded systems lica*on specific, designed to complete par*cular tasks Distributed systems Redundant resources, transparent to user Mul*-core New hotness in CPU design. Not going away. Why? Being able to program with threads and concurrent algorithms will be a crucial job skill going forward Don t leave SBU without mastering these skills We will do some thread programming in Lab 3 Editorial Some textbooks imply modern OSes are microkernels This is false Windows NT and OSX were designed as microkernels Then reverted to essen*ally monolithic designs in prac*ce Linux was never a microkernel Google the famous Torvalds Tanenbaum debate Similarly, Distributed OSes are mostly abandoned Object orienta*on Objects are a key feature of the Windows NT kernel design IMO a good idea Linux actually has its own bizarre version of object orienta*on using C structs and func*on pointers In Unix, everything is a file How did they pull this off? Poor-man s object inheritance Summary OS s began with big expensive computers used interac*vely by one user at a *me. Batch systems sequences jobs to keep computer busier. Interac*vity sacrificed. Mul*programming developed to make more efficient use of expensive hardware and restore interac*veness. Cheap CPU/memory/storage make communica*on the dominant cost. Mul*programming s*ll central for handling concurrent interac*on with environment. 9

Understand what an OS is Three masters Nomenclature Ques*ons? Summary (2) 2-55 10