CS 167: Operating Systems. Operating Systems In Depth I 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

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

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

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

1: Welcome and Overview COM S 414. Last Modified: 9/2/ :04:21 PM

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

Introduction to Operating Systems

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

Introduction to Operating Systems. Jo, Heeseung

Overview of Unix / Linux operating systems

CS 416: Operating Systems Design February 2, 2015

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

CS 153 Design of Operating Systems

SMD149 - Operating Systems

Roland Parviainen Phone: Office:? Web:

Operating Systems CS3502 Spring 2018

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

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

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

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 Systems. I. Introduction. Eurecom

Systems Programming. The Unix/Linux Operating System

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

CSC 634: Networks Programming

CSC 453 Operating Systems

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

Basics of system administration on a Unix system

Introduction to Linux Overview and Some History

Contents. Today's Topic: Introduction to Operating Systems

Introduction to Operating System

computers to personal computers

LINUX System Administration. Perspectives, Practices and Expectations

Fundamental Concepts and History

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

I. Ch 5 System Software

Operating Systems History & Approaches. Computer Systems Laboratory Sungkyunkwan University

Types and Functions of Win Operating Systems

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

Operating System Concepts Rab Nawaz Khan Jadoon

CMPSC 311- Introduction to Systems Programming Module: UNIX/Operating Systems

Chapter 1. Historical Background

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

Introduction to System Programming

History And Modern Uses Of The Unix Operating System (including embedded devices and mobile phones).

Course and Unix Intro

OS concepts and structure. q OS components & interconnects q Structuring OSs q Next time: Processes

Downloaded from various sources on the NET

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

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

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc.

Welcome to CIS 90 Introduction to UNIX/Linux

NWI-IBC019: Operating systems. Nils Jansen and Bernard van Gastel

Introduction To Operating System

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

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

Operating Systems Course Overview

Lecture 01: welcome and intro what LSD and Unix have in common

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester

Basic Concepts & OS History

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

Welcome to CSE 4300! Spring 2018

Introduction to Linux

Chapter 14 Operating Systems

LANDesk and Lenovo ThinkVantage Technologies Bundle available for commercial, government, and education customers

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:

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

CS 326: Operating Systems. Lecture 1

OPERATING SYSTEMS OVERVIEW

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Introduction to Computer Systems

The First Operating System Was Human

Data Analysis in Geophysics ESCI Class 1. Bob Smalley. Basics of the Computer Environment

Chapter 8 Operating Systems and Utility Programs أ.أمل زهران

UNIX rewritten using C (Dennis Ritchie) UNIX (v7) released (ancestor of most UNIXs).

UNIX/Linux Fundamentals Lecture 1. Nick Stiffler Philip Conrad

Introduction to Computer Systems

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Introduction. Chapter Prof. Amr El-Kadi

EECS 678: Introduction to Operating Systems. Heechul Yun

Chapter 14 Operating Systems

Unix API Books. Linux Kernel Books. Assignments and Exams. Grading for CSC 256. Operating Systems 8/31/2018. CSC 256/456 Fall

Operating System Labs. Yuanbin Wu

CHAPTER 1: Computers and Systems

Chapter 2. Operating-System Structures

Computer chip: A very small pieces of silicon or other semi-conducting material onto which integrated circuits are embedded Circuit board: A thin

OS - Introduction Ezio Bartocci Institute for Computer Engineering

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

Chapter 8 Operating Systems and Utility Programs

COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

OPERATING SYSTEMS & UTILITY PROGRAMS

CMPSC 311- Introduction to Systems Programming Module: UNIX/Operating Systems

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1

ELEC 377 Operating Systems. Week 1 Class 2

Full file at

Unit 2 : Computer and Operating System Structure

CHAPTER 03: MULTIMEDIA & OPERATING SYSTEM. :: Operating System :: ~ What is OS?~ ~ OS Functions~ ~ OS Characteristics ~ ~ Type of OS~

What we saw. Desarrollo de Aplicaciones en Red. 1. OS Design. 2. Service description. 1.1 Operating System Service (1)

Principles of Operating Systems CS 446/646

TOPIC 1. Following are some of important functions of an operating System. Memory Management. Processor Management. Device Management.

Contents. * All rights reserved, Tei-Wei Kuo, National Taiwan University, 2003.

Transcription:

CS 167: Operating Systems Operating Systems In Depth I 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Staff Head TA Kyle Laracey Grad TA Archita Agarwal UTAs Ian Boros Isaac Davis Egor Shakhnovskiy Di Yang Shi Operating Systems In Depth I 2 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Workload: 167 Warm-up for those who didn t take 33 shell (doesn t count towards your grade) Four moderate-to-difficult programs (50%) Uthreads: simple user-level threads package Mthreads: more sophisticated user-level threads package VFS: system calls and high-level file system S5FS: low-level file system Four homeworks (20%) Midterm exam (10%) Final exam (20%) Operating Systems In Depth I 3 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Workload: 169 One large program with five milestones, resulting in a working operating system Processes Drivers Virtual file system S5 file system Virtual memory Operating Systems In Depth I 4 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Skills Needed Ability to write and debug largish programs in C with POSIX threads CS 33 Basic computer architecture CS 33 Operating Systems In Depth I 5 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Textbook Operating Systems In Depth I 6 Copyright 2017 Thomas W. Doeppner. All rights reserved.

What are Operating Systems? Possible definitions: the code that {Microsoft, Apple, Linus, Google} provides the code that you didn t write the code that runs in privileged mode the code that makes things work the code that makes things crash etc. Operating Systems In Depth I 7 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Operating Systems Abstraction providing an appropriate interface for applications Concerns performance - time and space sharing and resource management failure tolerance security marketability Operating Systems In Depth I 8 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Hardware Network Memory Disk Disk Operating Systems In Depth I 9 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Abstractions Hardware disks memory processors network monitor keyboard mouse Operating system files programs threads of control communication windows, graphics input locator Operating Systems In Depth I 10 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Files Memory Disk Disk Operating Systems In Depth I 11 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Issues Naming Allocating space on disk (permanent storage) organized for fast access minimize waste Shuffling data between disk and memory (high-speed temporary storage) Coping with crashes Operating Systems In Depth I 12 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Programs Memory Data Code Disk Disk Operating Systems In Depth I 13 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Memory Sharing (1) Program 1 Program 2 Program 3 Operating System Memory Operating Systems In Depth I 14 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Program 1 Memory Sharing (2) Program 2 Program 3 Memory Operating Systems In Depth I 15 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Program 1 Virtual Memory Memory Program 2 Disk Disk Program 3 Operating Systems In Depth I 16 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Concurrency Operating Systems In Depth I 17 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Parallelism Operating Systems In Depth I 18 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1960s OS Issues Multiprogramming Time sharing Software complexity Security Operating Systems In Depth I 19 Copyright 2017 Thomas W. Doeppner. All rights reserved.

2010s OS Issues Multiprogramming not just one computer, but server farms Time sharing voice, video, sound, etc. Software complexity a much bigger problem than could possibly be imagined in the 60s Security ditto Operating Systems In Depth I 20 Copyright 2017 Thomas W. Doeppner. All rights reserved.

In the Beginning There was hardware processor storage card reader tape drive drum And not much else no operating system no libraries no compilers Operating Systems In Depth I 21 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1950s Commercial data processing Scientific computing Operating Systems In Depth I 22 Copyright 2017 Thomas W. Doeppner. All rights reserved.

IBM 701 OS: Initially, none Operating Systems In Depth I 23 Copyright 2017 Thomas W. Doeppner. All rights reserved.

IBM 650 OS: none Operating Systems In Depth I 24 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Programming Without an OS Assemble all software into a deck of punched cards Get 15-minute computer slot 1) pay $75 ($678.18 in 2017 dollars) 2) mount tapes containing data 3) read cards into computer 4) run program it probably crashes 5) output (possibly a dump) goes to printer Steps 1, 2, 3, and 5 take 10 minutes leaving 5 minutes for step 4! Operating Systems In Depth I 25 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Enter the OS Group jobs into batches Setup done for all collectively Software doing this called Input/Output System the first operating system Operating Systems In Depth I 26 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1960s Commercial data processing Scientific computing Time sharing Laboratory computing Operating Systems In Depth I 27 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Atlas Computer Operating Systems In Depth I 28 Copyright 2017 Thomas W. Doeppner. All rights reserved.

IBM 7094 OS: CTSS (among others) Operating Systems In Depth I 29 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The IBM Mainframe OS: OS/360 Operating Systems In Depth I 30 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Multics Operating Systems In Depth I 31 Copyright 2017 Thomas W. Doeppner. All rights reserved.

DEC PDP-8 OS: many: ranging from primitive to interesting (a multi-user timesharing system; a virtual-machine system) Operating Systems In Depth I 32 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Unix Operating Systems In Depth I 33 Copyright 2017 Thomas W. Doeppner. All rights reserved.

History of Concurrency Multiprogramming 1961, 1962: Atlas, B5000 1965: OS/360 MFT, MVT Timesharing 1961: CTSS (developed by MIT for IBM 7094); BBN time-sharing system for DEC PDP-1 mid 60s - Dartmouth Timesharing System (DTSS) - TOPS-10 (DEC) late 60s - Multics (MIT, GE, Bell Labs) - Unix (Bell Labs) Operating Systems In Depth I 34 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Apple s Multitasking Announcement With Preemptive Multitasking, Everything Happens at Once In today s fast-paced world, you rarely get to do one thing at a time. Even in the middle of transforming, say, a Photoshop file, you may need to find a crucial piece of information on the web while you compose an urgent reply to a customer. What you need is a computer that can handle several different tasks at once, giving priority to your primary application, but still crunching away at other jobs in the background. Darwin makes this possible by incorporating a powerful concept called preemptive multitasking. Apple website, September 2000 Operating Systems In Depth I 35 Copyright 2017 Thomas W. Doeppner. All rights reserved.

History of Virtual Memory 1961: Atlas computer, University of Manchester, UK 1962: Burroughs B5000 1972: IBM OS/370 1979: 3 BSD Unix, UC Berkeley 1993: Microsoft Windows NT 3.1 2000: Apple Macintosh OS X Operating Systems In Depth I 36 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Apple s VM Announcement Welcome to the Brave New World of Crash-Resistant Computing Let s start with the notion of protected memory, and why it s so important. One of the ways an operating system ensures reliability is by protecting applications through a mechanism called protected memory (essentially walling off applications from each other). Along with the protected memory mechanism, Darwin provides a super-efficient virtual memory manager to handle that protected memory space. So you no longer have to worry about how much memory an application like Photoshop needs to open large files. Apple website, September 2000 Operating Systems In Depth I 37 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1970s Commercial data processing Scientific computing Time sharing Laboratory computing Personal computing Hobbyist computing Operating Systems In Depth I 38 Copyright 2017 Thomas W. Doeppner. All rights reserved.

IBM s Dominance Continues OS: OS/370 Operating Systems In Depth I 39 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Scientific Computing OS: COS: single job at a time Operating Systems In Depth I 40 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Xerox Alto OS: single-user, singlecomputation Operating Systems In Depth I 41 Copyright 2017 Thomas W. Doeppner. All rights reserved.

MITS ALTAIR 8800 OS: none Operating Systems In Depth I 42 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CP/M Control Program for Microcomputers 1974 first hobbyist OS supported Intel 8080 and other systems - clear separation of architecture-dependent code no multiprogramming no protection Operating Systems In Depth I 43 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Apple II OS: none later: similar functionality as CP/M (not much) Operating Systems In Depth I 44 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Microsoft Enters the OS Business: Late 1970s It s called Xenix - a version of Unix predominant version of Unix in the 1980s used by MS internally into the 1990s Operating Systems In Depth I 45 Copyright 2017 Thomas W. Doeppner. All rights reserved.

VAX-11/780 OS: VMS Unix Both: time sharing virtual memory access protection concurrency Operating Systems In Depth I 46 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1980s Commercial data processing Scientific computing Time sharing Laboratory computing Personal Professional computing Hobbyist Personal computing Operating Systems In Depth I 47 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Two OSes Take Off Unix MS-DOS Operating Systems In Depth I 48 Copyright 2017 Thomas W. Doeppner. All rights reserved.

IBM PC OS: PC-DOS (aka MS-DOS) (remarkably like CP/M) Operating Systems In Depth I 49 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The Computer Workstation OS: Aegis supported: virtual memory distributed file system access protection concurrency Operating Systems In Depth I 50 Copyright 2017 Thomas W. Doeppner. All rights reserved.

1990s Commercial data processing Scientific computing High-end personal computing Low-end personal computing Operating Systems In Depth I 51 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Toy Operating Systems 1987: Andrew Tanenbaum of Vrije Universiteit, Amsterdam, publishes Operating Systems: Design and Implementation included is source code for a complete, though toy, operating system: Minix, sort of based on Unix 1991: Linus Torvalds buys an Intel 386 PC MS-DOS doesn t support all its features (e.g., memory protection, multi-tasking) soups up Minix to support all this January 1992: Torvalds releases Linux 0.12 January 1992: Tanenbaum declares Linux obsolete Operating Systems In Depth I 52 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Late 80s/Early 90s 1988: Most major Unix vendors get together and form OSF to produce a common Unix: OSF/1, based on IBM s AIX 1989: Microsoft begins work on NT 1990: OSF abandons AIX, restarts with Mach 1991: OSF releases OSF/1 1992: Sun releases Solaris 2 many SunOS (Solaris 1) programs are broken 1993: All major players but DEC have abandoned OSF/1 1993: Microsoft releases Windows NT 3.1 1994: Linux 1.0 released Operating Systems In Depth I 53 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Late 90s IBM has three different versions of Unix, all called AIX 1996: DEC renames its OSF/1 Digital Unix 1996: Microsoft releases Windows NT 4 1996: Linux 2.0 released 1998: DEC is purchased by Compaq; Digital Unix is renamed Tru64 Unix 1999: Sun s follow-on to Solaris 2.6 is called Solaris 7 Operating Systems In Depth I 54 Copyright 2017 Thomas W. Doeppner. All rights reserved.

2000s Commercial data processing Scientific computing Personal computing Gadgets Operating Systems In Depth I 55 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The 00s Part 1 2000: Microsoft releases Windows 2000 and Windows Me 2000: Linux 2.2 is released 2000: IBM commits to Linux (on servers) 2001: Apple releases Mac OS X, based on Unix 2001: Linux 2.4 is released 2001: Microsoft releases Windows XP 2002: Compaq is purchased by HP 2003: SCO claims their code is in Linux, sues IBM; IBM countersues August 10, 2007: judge rules that SCO is not the rightful owner of the Unix copyright, Novell is Novell says there is no Unix in Linux September 2007: SCO files for Chapter 11 bankruptcy protection Operating Systems In Depth I 56 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The 00s Part 2 2004: Linux 2.6 is released 2005: IBM sells PC business to Lenovo July 2005: Microsoft announces Windows Vista January 2007: Microsoft releases Windows Vista Later in 2007: Microsoft starts hinting at Windows 7 April 2009: Oracle announces purchase of Sun Microsystems July 2009: Google announces Chrome OS October 2009: Microsoft releases Windows 7 Operating Systems In Depth I 57 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The 10s Part 1 January 2011: Microsoft announces Windows 8 June 2011: first products shipped running Chrome OS April 2011: Linux 3.0 released July 2011: Apple drops Mac prefix for its OS: it s now OS X one million copies of OS X Lion sold on first day of release October 2011: deaths of both Dennis Ritchie and Steve Jobs Dennis Ritchie: The Shoulders Steve Jobs Stood On - Wired Magazine, 10/13/2011 October 2012: Microsoft releases Windows 8 October 2013: Microsoft releases Windows 8.1 Operating Systems In Depth I 58 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The 10s Part 2 September 2014: Microsoft Announces Windows 10 Windows 9 skipped because it might be confused with Windows 95 October 2014: Apple releases OS X 10.10 Yosemite doesn t work with Brown University wi-fi November 2014 release of 10.10.1 doesn t fix it... April 2015: Linux 4.0 released July 2015: Microsoft Releases Windows 10 Brown s CIS says don t switch yet August 2015: Brown s card-access system switched to Windows 10 August 2015: Brown s card access fails university-wide September 2015: Apple releases OS X 10.11 El Capitan Brown s CIS says don t switch yet Operating Systems In Depth I 59 Copyright 2017 Thomas W. Doeppner. All rights reserved.

The 10s Part 3 September 2016: Apple releases OS X 10.12 Sierra Brown CIS says don t switch Brown CS tstaff says printing is broken December 2016: Apple releases OS X 10.12.2 twd switches his D-Link router no longer supports printing his Logitech mouse s scroll wheel scrolls window in random directions Operating Systems In Depth I 60 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Friday Implementing threads now is a good time to review POSIX threads Operating Systems In Depth I 61 Copyright 2017 Thomas W. Doeppner. All rights reserved.