CS 153 Design of Operating Systems

Similar documents
CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Fall 18

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

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

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

CSC 453 Operating Systems

Fundamental Concepts and History

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

Chapter 2: Operating-System Structures

learning objectives understand the role of an operating system understand the role of interpreters and compilers

Operating Systems. I. Introduction. Eurecom

LECTURE/ STUDY NOTES ON C

Basic Concepts & 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?

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

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

Chapter 2: Operating-System Structures

Spring It takes a really bad school to ruin a good student and a really fantastic school to rescue a bad student. Dennis J.

Introduction to Linux

Operating Systems. Pablo Prieto Torralbo. 1. Introduction DEPARTMENT OF COMPUTER ENGINEERING

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

COS 318: Operating Systems. Overview. Jaswinder Pal Singh Computer Science Department Princeton University

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

David DeFlyer Class notes CS162 January 26 th, 2009

Introduction to Operating Systems

Introduction to Computer Systems and Operating Systems

Chapter 2: Operating-System Structures

Chapter 2. Operating-System Structures

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

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

Introduction to Operating Systems. Jo, Heeseung

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

Chapter 2: Operating-System Structures

Introduction to OS. Introduction MOS Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

Main Frame Dial Up (1960 s)

SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION SECTION -A

Operating Systems CS3502 Spring 2018

W4118: OS Overview. Junfeng Yang

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

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

Chapter 2: Operating-System

Overview of Unix / Linux operating systems

Operating-System Structures

Computer Software. c 2016 by David W. Gerbing. School of Business Administration Portland State University

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

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

Underlying computer system = hardware + software

Chapter 2: Operating-System Structures

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1

Chapter 2: System Structures

Introduction to System Programming

Principles of Operating Systems CS 446/646

UNIT 2. OPERATING SYSTEM STRUCTURES

Lecture 1: January 23

Kernels & Processes The Structure of the Operating System

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

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

Operating System Study Material

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

Operating System Concepts Rab Nawaz Khan Jadoon

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

Chapter 3: Operating-System Structures

CS 113: Introduction to

Operating System Labs. Yuanbin Wu

Computer Science 32 Object-Oriented Oriented Design and Implementation (in C++ on Linux)

Introduction to Linux Overview and Some History

17655: Discussion: The New z/os Interface for the Touch Generation

Brief Linux Presentation. July 10th, 2006 Elan Borenstein

CS108 Software Systems: UNIX. Fall 2011

Networks and Operating Systems Chapter 11: Introduction to Operating Systems

Operating Systems Concepts. CMPUT 379, Winter 2014 Section B1

CS307: Operating Systems

Chapter 2 Operating-System Structures

Advanced Operating Systems (CS 202)

Cute Tricks with Virtual Memory

CS Computer Architecture

Contents. Today's Topic: Introduction to Operating Systems

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

EECS 678: Introduction to Operating Systems. Heechul Yun

CS 550 Operating Systems Spring Operating Systems Overview

Those taking 169 do the 167 Uthreads and Mthreads assignments, but not the others.

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Lecture 1: January 22

Systems Programming. The Unix/Linux Operating System

Types and Functions of Win Operating Systems

1. Operating System Concepts

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

Four Components of a Computer System

Logistics. 1: Welcome and Overview. Topics. What is an operating system? Benefits of Operating Systems (1) Hardware Resources

Introduction to Operating System. Dr. Aarti Singh Professor MMICT&BM MMU

CSCI 8530 Advanced Operating Systems

History of Unix, Linux and the Open Source

Operating System Kernels

v.m.g.rajasekaran ramani sri sarada sakthi mat. Hr. sec. school

CSE 4/521 Introduction to Operating Systems

Introduction To Operating System

Chapter 3: Operating-System Structures

Performance Measurement

Computer Principles and Components 1

Transcription:

CS 153 Design of Operating Systems Winter 19 Lecture 2: Historical perspective Instructor: Nael Abu-Ghazaleh

Last time What is an OS? What roles does it play? Today: Historic evolution of Operating Systems (and computing!) 2

Some Questions to Ponder What is part of an OS? What is not? Is the windowing system part of an OS? Java? Apache server? Compiler? Firmware? Popular OS s today include Windows, Linux, and OS X How different/similar do you think these OSes are? Somewhat surprisingly, OSes change all of the time Consider the series of releases of Windows, Linux, OS X What are the drivers of OS change? What are the most compelling issues facing OSes today? 3

Pondering Cont d How many lines of code in an OS? Windows 10: 50M» Vista (2006): 50M (XP + 10M)» What is largest kernel component? OS X (2006): 86M Linux: 25 million (grew 250K in 2018!) What does this mean (for you)? OSes are useful for learning about software complexity» The mythical man month» KDE (X11): 4M» Browser : 2M+, If you become a developer, you will face complexity» Including lots of legacy code 4

Questions for today Why do we need operating systems course? Why do we need operating systems? What does an operating system need to do? Looking back, looking forward. 5

A brief history Phase 0 In the beginning, OS is just runtime libraries A piece of code used/sharable by many programs Abstraction: reuse magic to talk to physical devices Avoid bugs User scheduled an exclusive time where they would use the machine User interface was switches and lights, eventually punched cards and tape An interesting side effect: less bugs 6

Phase 1: Batch systems (1955-1970) Computers expensive; people cheap Use computers efficiently move people away from machine OS in this period became a program loader» Loads a job, runs it, then moves on to next» More efficient use of hardware but increasingly difficult to debug Still less bugs J 7

Advances in OS in this period SPOOLING/Multiprogramming Simultaneous Peripheral Operation On-Line (SPOOL)» Non-blocking tasks» Copy document to printer buffer so printer can work while CPU moves on to something else Hardware provided memory support (protection and relocation) Scheduling: let short jobs run first OS must manage interactions between concurrent things OS/360 from IBM first OS designed to run on a family of machines from small to large 8

Phase 1, problems Utilization is low (one job at a time) No protection between jobs But one job at a time, so? Short jobs wait behind long jobs Coordinating concurrent activities People time is still being wasted Operating Systems didn t really work Birth of software engineering 9

Phase 2: 1970s Computers and people are expensive Help people be more productive Interactive time sharing: let many people use the same machine at the same time Emergence of minicomputers Terminals are cheap Persistence: Keep data online on fancy file systems 10

Unix appears Ken Thompson, who worked on MULTICS, wanted to use an old PDP-7 laying around in Bell labs He and Dennis Richie built a system designed by programmers for programmers Originally in assembly. Rewritten in C In their paper describing unix, they defend this decision! However, this is a new and important advance: portable operating systems! Shared code with everyone (particularly universities) 11

Unix (cont d) Berkeley added support for virtual memory for the VAX Unix BSD DARPA selected Unix as its networking platform in arpanet Unix became commercial which eventually lead Linus Torvald to develop Linux 12

Phase 3: 1980s Computers are cheap, people expensive Put a computer in each terminal CP/M from DEC first personal computer OS (for 8080/85) processors IBM needed software for their PCs, but CP/M was behind schedule Approached Bill Gates to see if he can build one Gates approached Seattle computer products, bought 86-DOS and created MS-DOS Goal: finish quickly and run existing CP/M software OS becomes subroutine library and command executive 13

Phase 4: Networked/distributed systems--1990s to now? Its all about connectivity Enables parallelism but performance is not goal Goal is communication/sharing Requires high speed communication We want to share data not hardware Networked applications drive everything Web, email, messaging, social networks, 14

New problems Large scale Google file system, mapreduce, Parallelism on the desktop (multicores) Heterogeneous systems, IoT Real-time; energy efficiency Security and Privacy 15

Phase 5 New generation? Computing evolving beyond networked systems Cloud computing, IoT, Drones, Cyber-physical systems, computing everywhere But what is it? and what problems will it bring? 16

Where are we headed next? How is the OS structured? Is it a special program? Or something else? How do other programs interact with it? How does it protect the system? What does the architecture/hardware need to do to support it? 17

Why Start With Architecture? Recall: Key roles of an OS are 1) Wizard: isolation and resource virtualization 2) Referee: efficiency, fairness and security Architectural support can greatly simplify or complicate OS tasks Easier for OS to implement a feature if supported by hardware OS needs to implement everything hardware doesn t OS evolution accompanies architecture evolution New software requirements motivate new hardware New hardware features enable new software

Some questions to get you thinking What is the OS? Software? Is the OS always executing? If not, how do we make sure it gets to run? How do we prevent user programs from directly manipulating hardware?

Sleeping Beauty Model Answer: Sleeping beauty model Technically known as Controlled direct execution OS runs in response to events ; we support the switch in hardware Most of the time the OS is sleeping Good! Less overhead Good! Applications are running directly on the hardware 20