Basic Concepts & OS History

Similar documents
Opera.ng Systems History and Overview

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

Fundamental Concepts and History

Introduction to Computer Systems and Operating Systems

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

Principles of Operating Systems CS 446/646

CS 153 Design of Operating Systems

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

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

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

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

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

Introduction to Operating Systems

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

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

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

1. Operating System Concepts

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

Operating Systems CS3502 Spring 2018

W4118: OS Overview. Junfeng Yang

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

Operating systems Architecture

Introduction to Operating Systems. Jo, Heeseung

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

EECS 678: Introduction to Operating Systems. Heechul Yun

Chapter 2: Operating-System Structures

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

Operating Systems Introduction. Mathieu Delalandre (PhD) University of Tours, Tours city, France

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

16 Sharing Main Memory Segmentation and Paging

ECE 598 Advanced Operating Systems Lecture 22

4 Lecture: Operating System Structures

Lecture 4: Memory Management & The Programming Interface

Chapter 1: Introduction

Lecture 12 2/19/04 13:43. Lecture 12. Operating Systems (S&G, 6.4) 2/19/04 CS Lecture Read S&G ch. 7, 7.1

15 Sharing Main Memory Segmentation and Paging

The First Operating System Was Human

Operating System Services

Operating Systems Concepts. CMPUT 379, Winter 2014 Section B1

Contents. Today's Topic: Introduction to Operating Systems

Types and Functions of Win Operating Systems

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

Chapter 2. Operating-System Structures

Operating Systems. Antônio Augusto Fröhlich LISHA/UFSC. December 20, 2008

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

Today s agenda. Course overview. CS 537: Operating Systems Fall Course Introduction. Mike Swift

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

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications

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

Four Components of a Computer System

CS162 Operating Systems and Systems Programming Lecture 3. Concurrency: Processes, Threads, and Address Spaces. Review: History of OS

CSC 453 Operating Systems

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

OPERATING SYSTEMS OVERVIEW

COS 318: Operating Systems. Introduction

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

Chapter 2: Operating-System Structures

Midterm 1. Administrivia. Virtualizing Resources. CS162 Operating Systems and Systems Programming Lecture 12. Address Translation

CS Computer Architecture

Introduction To Operating System

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

CS370 Operating Systems

Distributed Systems Operation System Support

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

Operating Systems Lecture 1: Introduction to Operating Systems

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

Introduction. Operating Systems. Introduction. Introduction. Introduction

OPERATING SYSTEM. PREPARED BY : DHAVAL R. PATEL Page 1. Q.1 Explain Memory

What is an Operating System? A Whirlwind Tour of Operating Systems. How did OS evolve? How did OS evolve?

Memory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources

Disciplina Sistemas de Computação

Spring 2017 :: CSE 506. Device Programming. Nima Honarmand

Operating Systems. I. Introduction. Eurecom

Lecture 2 Fundamental OS Concepts. Bo 2018, Spring

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

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

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

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.

Operating Systems Overview. Chapter 2

TYPES OF OPERATING SYSTEMS. Dimple Juneja

UNIT 2. OPERATING SYSTEM STRUCTURES

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

Operating Systemss and Multicore Programming (1DT089)

What does an Operating System do?

THREADS & CONCURRENCY

Operating System Concepts Rab Nawaz Khan Jadoon

NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss

Chapter 2: Operating-System

CS162 Operating Systems and Systems Programming Lecture 12. Address Translation. Page 1

Chapter 2: Operating-System Structures

UNIT 1 JAGANNATH UNIVERSITY UNIT 2. Define Operating system and its functions. Explain different types of Operating System

Chapter 2: System Structures

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

UNIT I OPERATING SYSTEMS OVERVIEW

Chapter 2: Operating-System Structures

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

Spring 2017 :: CSE 506. Introduction. Nima Honarmand

Transcription:

Basic Concepts & OS History Nima Honarmand

Administrivia TA: Babak Amin Azad Office hours: Monday & Wednesday, 5:30-7:00 PM Location: 2217 old CS building VMs ready; SSH Keys will be emailed today Lab1 released Due date: 09/24 (11:59 PM) Send me your group composition (if working as a pair) by the lab deadline

Background CPUs have 2 modes: user and supervisor Sometimes more (4 in Intel) but 2 is all we need Supervisor mode: Issue commands to hardware devices Power off, Reboot, Suspend Launch missiles, Do awesome stuff User mode: Run other code, hardware tattles if you try anything reserved for the supervisor

A Simple View of an OS App App App App OS Hardware

OS Architecture App App App App Libraries Kernel User Supervisor Hardware

OS Architecture Win32 API App App App Libraries Libraries Libraries User Kernel Supervisor Hardware

Famous libraries, anyone? Windows: ntdll.dll, kernel32.dll, user32.dll, gdi32.dll Linux/Unix: libc.so, ld.so, libpthread.so, libm.so

Caveat 1 Libraries include a lot of code for common functions Why bother re-implementing sqrt? They also give high-level abstractions of hardware Files, printer, etc. How does this work?

System Call Special instruction to switch from user to supervisor mode Transfers CPU control to the kernel One of a small-ish number of well-defined functions How many system calls does Windows or Linux have? Windows ~1200 Linux ~350

OS Architecture Open file hw1.txt App Ok, here s handle App 4 App Libraries Libraries Libraries User System Call Table (350 1200) Supervisor Kernel Hardware

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 App sends pdf to spooler Spooler checks quotas, etc. Turns pdf into printer-specific format Sends reformatted document to device via OS kernel

OS Architecture App App Daemon Libraries Libraries Libraries User System Call Table (350 1200) Supervisor Kernel Hardware OS = Kernel + System Libraries + System Daemons

In-Kernel Hardware Abstractions Kernels are programmed at a higher level of abstraction Block devices (in-kernel abstraction) vs. specific types of disks (real hardware) 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 Each specific device (Nvidia GeForce 600) needs to implement the abstract class Each implementation is called a device driver

OS Architecture App App Daemon Libraries Libraries Libraries User System Call Table (350 1200) Supervisor Kernel In-Kernel Hardware Abstraction Driver Driver Driver Hardware

So what is Linux? Really just an OS kernel Including lots of device drivers Conflated with environment consisting of: Linux kernel Gnu libc X window manager daemon CUPS printer manager Etc.

So what is Ubuntu? Centos? A distribution: bundles all of that stuff together Pick versions that are tested to work together Usually also includes a software update system

OSX vs ios? Same basic kernel (a few different compile options) Different window manager and libraries

What is Unix? A very old OS (1970s), innovative, still in use Innovations: Kernel written in C (first one not in assembly) Co-designed C language with Unix Several nice API abstractions Fork, pipes, everything a file Several implementations: *BSDs, Solaris, etc. Linux is a Unix-like kernel

What is POSIX? A standard for Unix compatibility Even Windows is POSIX compliant!

OS History

1940 s First Computers One user/programmer at a time Program loaded manually using switches Debug using the console lights ENIAC 1 st gen purpose machine Calculations for Army Each panel had specific function 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 calculations Pros: Interactive immediate response on lights Programmers were women Cons: Lots of Idle time Expensive computation Error-prone/tedious Each program needs all driver code

1950 s Batch Processing Deck of cards to describe job Jobs submitted by multiple users are sequenced automatically by a resident monitor Resident monitor was a basic O/S S/W controls sequence of events Command processor Protection from bugs (eventually) Device drivers

Monitor s Perspective Monitor controls the sequence of events Resident Monitor is software always in memory Monitor reads in job and gives control Job returns control to monitor

1950 s Batch Processing Pros: CPU kept busy, less idle time Monitor could provide I/O services Cons: IBM 7090 No longer interactive longer turnaround time Debugging more difficult CPU still idle for I/O-bound jobs Buggy jobs could require operator intervention

Multiprogrammed Batch Systems CPU is often idle Even with automatic job sequencing. I/O devices are slow compared to processor

Uniprogramming Processor must wait for I/O instruction to complete before preceding

Multiprogramming When one job needs to wait for I/O, the processor can switch to the other job

Multiprogramming

1960 s Multiprogramming (time-sharing) CPU and I/O devices are multiplexed (shared) between a number of jobs While one job is waiting for I/O another can use the CPU SPOOLing: Simultaneous Peripheral Operation OnLine 1 st and simplest multiprogramming system Monitor (resembles O/S) Starts job, spools operations, I/O, switch jobs, protection between memory

1960 s Multiprogramming (time-sharing) Pros: Paging and swapping (RAM) IBM System 360 Cons: H/W more complex Interactiveness Output available at completion O/S complexity? CPU kept busy, less idle time

1970 s - Minicomputers and Microprocessors Trend toward many small personal computers or workstations, 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, Apple, Windows Networking: Decentralization of computing required communication Not cost-effective for every user to have printer, full copy of software, etc. Rise of cheap, local area networks (Ethernet), and access to wide area networks (Arpanet)

1980 s Personal Computers & Networking OS issues: Communication protocols, client/server paradigm Data security, encryption, protection Reliability, consistency, availability of distributed data Heterogeneity Reducing Complexity Ex: Byte Ordering

1990 s Global Computing Dawn of the Internet Global computing system Powerful CPUs cheap! Multicore systems High speed links Standard protocols (HTTP, FTP, HTML, XML, etc) OS Issues: Communication costs dominate CPU/RAM/disk speed mismatch Send data to program vs. sending program to data QoS (Quality of Service) guarantees Security

2000 s Embedded and Ubiquitous Computing Mobile and wearable computers Networked household devices Absorption of telephony, entertainment functions into computing systems OS issues: Security, privacy Mobility, ad-hoc networks, power management Reliability, service guarantees

2000 s Embedded and Ubiquitous Computing Real-time computing Guaranteed upper bound on task completion Dedicated computers/embedded systems Application specific, designed to complete particular tasks Distributed systems Redundant resources, transparent to user

Multi-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 advanced multi-threaded programming in the labs

OS History Summary OS s began with big expensive computers used interactively by one user at a time. Batch systems sequences jobs to keep computer busier. Interactivity sacrificed. Multiprogramming developed to make more efficient use of expensive hardware and restore interactivity. Cheap CPU/memory/storage make communication the dominant cost. Multiprogramming still central for handling concurrent interaction with environment.