Principles of Operating Systems CS 446/646

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

Introduction to Computer Systems and Operating Systems

Operating System Overview. Chapter 2

The First Operating System Was Human

Operating Systems: Overview and Introduction

OPERATING SYSTEMS OVERVIEW

5.b Principles of I/O Hardware CPU-I/O communication

Introduction. CS3026 Operating Systems Lecture 01

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

Computer System Overview

Operating System. Operating Systems Structure Chapter 2. Services Provided by the OS. Evolution of an Operating System

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

Objectives and Functions Convenience. William Stallings Computer Organization and Architecture 7 th Edition. Efficiency

Module 1: Introduction. What is an Operating System?

Chapter 1: Introduction

Four Components of a Computer System. Operating System Concepts 7 th Edition, Jan 12, 2005

Chapter 1: Introduction. Chapter 1: Introduction

Chapter 1: Introduction

CS420: Operating Systems

Module 1: Introduction

Operating System Support

Operating Systems Overview. Chapter 2

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

CS370 Operating Systems

Operating System Support

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

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

CS370 Operating Systems

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

1. Operating System Concepts

CS420: Operating Systems

Chapter 8. Operating System Support. Yonsei University

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

OPERATING SYSTEM SUPPORT (Part 1)

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

European University of Lefke. Instructor: Dr. Arif SARI

Chapter 1: Introduction. Operating System Concepts 8 th Edition,

Chapter 1: Introduction. Operating System Concepts 9 th Edit9on

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

7/20/2008. What Operating Systems Do Computer-System Organization

SRI VENKATESWARA COLLEGE OF ENGINEERING PENNALUR, SRIPERUMBUDUR TK

Unit 2 : Computer and Operating System Structure

Operating System Overview. Chapter 2

CSC Operating Systems Spring Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. January 17 th, 2007.

Announcements. Operating System Structure. Roadmap. Operating System Structure. Multitasking Example. Tevfik Ko!ar

Chapter 1: Introduction

Misc. Third Generation Batch Multiprogramming. Fourth Generation Time Sharing. Last Time Evolution of OSs

To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Computer Organization and Architecture. OS Objectives and Functions Convenience Making the computer easier to use

Chapter 1: Introduction. Operating System Concepts 9 th Edit9on

Operating Systems Overview. Chapter 2

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

Chapter 1: Introduction

OPERATING SYSTEMS. P. PRAVEEN Asst.Prof, CSE

Introduction to System Programming

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

OPERATING SYSTEMS: Lesson 1: Introduction to Operating Systems

OPERATING SYSTEMS UNIT - 1

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Lecture 1 Introduction (Chapter 1 of Textbook)

Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - II OS Structures. University at Buffalo. OS Design and Implementation

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

OS Design Approaches. Roadmap. System Calls. Tevfik Koşar. Operating System Design and Implementation. CSE 421/521 - Operating Systems Fall 2013

Four Components of a Computer System

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

Introduction to Operating Systems

Major OS Achievements. Chris Collins. 15 th October 2006

Introduction to Operating Systems

Chapter 1: Introduction. Operating System Concepts 8th Edition,

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

CS30002: Operating Systems. Arobinda Gupta Spring 2017

Introduction To Operating System

DM510 Operating Systems. Jacob Aae Mikkelsen

1.1 Introduction. Fig.1.1 Abstract view of the components of a computer system.

Roadmap. Tevfik Ko!ar. CSC Operating Systems Spring Lecture - III Processes. Louisiana State University. Virtual Machines Processes

Course Content. 07-Feb-17 Faculty of Computer Science & Engineering 1 BK TP.HCM

Chapter 2 Operating System Overview

Introduction to Operating Systems. Jo, Heeseung

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

Operating Systems Lecture 1: Introduction to Operating Systems

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

CSC 453 Operating Systems

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Fundamental Concepts and History

1. Introduction to Operating Systems

Today: Computer System Overview (Stallings, chapter ) Next: Operating System Overview (Stallings, chapter ,

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

Operating Systems. I. Introduction. Eurecom

Operating Systems CS3502 Spring 2018

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:

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

Introduction. TDDI04, K. Arvidsson, IDA, Linköpings universitet Contents. What is an Operating System (OS)?

Contents. Today's Topic: Introduction to Operating Systems

GENERAL I ARTICLE. Operating Systems. 1. Objectives and Evolution. operating systems, and then we trace the evolution of operating

Chapter 2. OS Overview

Basic Concepts & OS History

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

OS - Introduction Ezio Bartocci Institute for Computer Engineering

Transcription:

Principles of Operating Systems CS 446/646 1. Introduction to Operating Systems a. Role of an O/S b. O/S History and Features Serial processing Simple batch systems Multiprogrammed batch systems Time-sharing systems Personal Computers c. Types of O/S d. Major O/S Components e. System Calls f. O/S Software Architecture g. Examples of O/S 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 27

Note: This section is not a history of computer models or a year-by-year chronology of the origins of specific operating systems, like UNIX or Windows. Our purpose is to highlight the generic features of operating systems through major periods in their evolution. 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 28

Serial processing First generation: 1945 55 room full of armoires: mechanical relays, then vacuum tubes http://ftp.arl.mil/ftp/historic-computers/ The ENIAC (Electronic Numerical Integrator And Computer) 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 29

Serial processing Human operator-programmer-user the machine was run from a console that had display lights, toggle switches, a plugboard or punched cards, a printer the programmer also operated the machine as she/he interacted directly with the bare hardware at first the computer was programmed by physically re-wiring it; later, through stored programs ( von Neumann architecture ) Operating systems were unheard of programs were entirely written in assembly language one running program had complete control of the entire computer 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 30

Serial processing Programs directly access the hardware, one at a time program program program program time 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 31

Serial processing Problems? 1: scheduling users had access to the computer one by one in series machine time was reserved in blocks of half hours with a hardcopy sign-up sheet either the user was finished early and computer processing time was wasted or, more frequently, the user could not finish debugging her/his program during the allotted time Problem 2: duplication of programming efforts user were writing again and again the same I/O device routines no concept of libraries 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 32

Simple batch systems Second generation: 1955 65 advent of transistors and printed circuits http://www.columbia.edu/acis/history/1965.html The IBM 7094 at Columbia University 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 33

Simple batch systems Separation between operators and programmers first commercially viable machines the programmer prepares her/his job off-line on punched cards, brings the card deck to the machine room and waits for results the human operator runs the job and delivers a printed output Problem? Problem: still basically serial processing one single job at a time huge setup time for each job: loading the compiler, the source program, saving the compiled program, loading, linking, etc. also mounting and dismounting tapes, handling card decks, etc. a lot of time was wasted manipulating things and walking around 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 34

Simple batch systems Solution? Solution: batch the jobs together 1. the human operator pre-reads a tray full of jobs onto a magnetic tape 2. the human operator loads a special program, the monitor, that will automatically read the jobs from the tape and run them sequentially 3. the effect of the monitor program is to write the output of each job on a second magnetic tape 4. finally, the human operator brings the full output tape for offline printing 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 35

Simple batch systems Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition). a) programmer brings cards to IBM 1401 b) 1401 reads batch of jobs onto tape c) operator carries input tape to IBM 7094 d) 7094 does computing e) operator carries output tape to 1401 f) 1401 prints output An early IBM batch system 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 36

Simple batch systems The monitor program automates some of the human operator s tasks and is the ancestor of modern O/S the monitor is a special program that controls the sequence of events it always resides in main memory it reads in jobs one at a time, places a job in the user program area of the memory, and passes control to it upon completion, the user program branches back to the monitor, which immediately loads and executes the next job therefore, the processor alternates between fetching/executing instructions from the monitor program and fetching/executing instructions from the user programs 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 37

Simple batch systems Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Memory layout for a resident monitor 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 38

Simple batch systems A Job Control Language (JCL) operates the monitor primitive programming language: $JOB, $FTN, $LOAD, $RUN gives instructions to the monitor about what compiler to use, what data to work on, etc. JCL instructions were the early system calls Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition). Structure of a typical Fortran Monitor System (FMS) job s card deck 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 39

Simple batch systems A batch system monitor is a special program that cohabitates in memory with the job being executed the monitor must alternate between seize and relinquish control the monitor must switch among various portions of memory Hardware features needed to support batch? memory protection timer privileged instructions interrupts this led to the concept of modes of operation 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 40

Simple batch systems Memory protection jobs must not alter the memory area containing the monitor Timer a time limit prevents jobs from monopolizing the system Privileged instructions certain machine level instructions can only be executed by the monitor, for example I/O access instructions Interrupts make it easier to relinquish control to, and regain control from user programs (early computers did not have this capability) 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 41

Simple batch systems This led to the concept of modes of operation user programs execute in user mode: certain instructions may not be executed monitor executes in monitor mode (or system mode, control mode, kernel mode, privileged mode, supervisor mode, etc.) in monitor mode, privileged instructions can be executed, protected areas of memory and I/O devices may be accessed user/monitor mode is generally flagged by a bit in the Program Status Word (PSW) register of the CPU 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 42

Note: The history of computer systems reveals the problems faced by the early designers and operators, and the key ideas and solutions still around today. Computer science is fundamentally an empiric science: features have mainly evolved from needs. 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 43

Multiprogrammed batch systems Third generation: 1965-80 first major use of small-scale Integrated Circuits (ICs) http://www.thocp.net/hardware/pictures/ The IBM 360 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 44

Multiprogrammed batch systems Problem? Problem: despite batching,. a. lot. of CPU time is still wasted waiting for I/O instructions to complete I/O devices much slower than processor (especially tapes!) 15µs 1µs 15µs Time Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Example of system utilization with uniprogramming 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 45

Multiprogrammed batch systems Solution? Solution: load two jobs in memory while one job is waiting for I/O, the processor could switch to the other job Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Multiprogramming with two programs 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 46

Multiprogrammed batch systems Expand to three, four or more jobs jobs are kept in main memory at the same time and the CPU is multiplexed among them, or multiprogrammed multiprogramming ( multitasking ) is a central O/S theme Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Multiprogramming with three programs 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 47

Multiprogrammed batch systems Example of multiprogramming with three jobs Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Example of program execution attributes 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 48

Multiprogrammed batch systems Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). (a) uniprogramming Utilization histograms (b) multiprogramming 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 49

Multiprogrammed batch systems Multiprogramming results in more efficient resource utilization Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Effects of multiprogramming on resource utilization 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 50

Multiprogrammed batch systems Summary: serial, batched uni-, and multiprogramming user job resident monitor operating system user job user job 1 user job 2 (a) serial uniprogramming (b) batched uniprogramming Evolution of memory management user job 3 (c) multiprogramming 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 51

Multiprogrammed batch systems job 1 job 2 job 3 (a) serial uniprogramming job 1 job 2 job 3 human overhead (b) batch uniprogramming job 1 I/O job 1 job 2 I/O job 2 I/O job 3 (b ) batch uniprogramming showing actual CPU usage and I/O wait...... job 1 I/O (c) multiprogramming job 3 job 1 job 2 I/O job 2 I/O Evolution of CPU utilization... time human operator s setup (mount tape, etc.) human operator s takedown (unmount) spooling 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 52

Multiprogrammed batch systems A multiprogramming O/S is fairly sophisticated compared to a uniprogramming O/S it requires. memory.. management: the system must allocate the memory to several jobs it requires CPU scheduling: the system must choose among several jobs ready to run Multiprogramming also relies on I/O hardware features? I/O interrupts Direct Memory Access (DMA) 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 53

Multiprogrammed batch systems Forward Note: Three I/O Techniques? (see 5.) Programmed I/O ( busy waiting ): the CPU is blocked and must poll the device to check if the I/O request completed Interrupt-driven I/O: the CPU can switch to other tasks and is (frequently) interrupted by the I/O device Direct Memory Access (DMA): the CPU is involved only at the start and the end of the whole transfer; it delegates control to an independent I/O controller that accesses memory directly without bothering the CPU needed for multiprogramming 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 54

Multiprogrammed batch systems Spooling (Simultaneous Peripheral Operation On-Line) is an important I/O feature for multiprogramming instead of preparing a batch of jobs on tape, new jobs are continuously and directly read in from cards onto disk as soon as they are brought to the computer room producer/consumer scheme: spooling decouples job loading from job execution through a buffer (on disk or in memory) useful because I/O devices access (read, write) data at different rates; the buffer provides a waiting station where data can rest while the slower device catches up same in the output direction (printers) 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 55

Multiprogrammed batch systems Reminder: The Memory Hierarchy? 1. registers inboard memory outboard offline 2. cache 3. main memory 4. disk 5. tape cost per bit capacity frequency of access access time 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 56

Multiprogrammed batch systems Forward Note: Types of Scheduling Long-term scheduling: which jobs (stored on disk) will be considered for execution Medium-term scheduling ( swapping ): which jobs are actually loaded into memory Short-term (CPU) scheduling ( dispatching ): which job available in memory is run next 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 57

Time-sharing systems Batch multiprogramming was not fully satisfactory why? multiprogramming alone does not give any guarantee that a program will run in a timely manner users had a growing need to control more closely the execution of their jobs and intervene (fix, retry, etc.) There was a need for multiple-user... interactivity each user wants to see their program running as if it was the only program in the computer but without reverting back to single-user signup sheets therefore the advent of time-sharing or preemptive multitasking systems 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 58

Time-sharing systems In the original multiprogramming systems tasks kept running until they performed an operation that required waiting for an external event such as I/O multiprogramming was designed to maximize CPU usage In time-sharing systems running tasks are required to relinquish the CPU on a regular basis through hardware interrupts time-sharing is designed to minimize response time and allow several programs to execute apparently simultaneously time sharing is a logical extension of multiprogramming for handling multiple interactive jobs among multiple users birth of Unix in the 1960 s: CTSS MULTICS UNIX 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 59

Personal Computers Fourth generation: 1980-Present Large Scale Integration (LSI) makes personal computing real http://www.it.unr.edu/facilities/cordlab.asp E. L. Cord computer lab at UNR 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 60

Personal Computers So From what s multiple happening users back now? to a single user preemptive multitasking was developed in the 1960 s to share big and costly mainframe computers among multiple users since then, single-user interactive computing has become possible on dedicated personal computers (PCs) Resource sharing not critical anymore, yet multitasking still a central feature of modern PC operating systems a single-tasking environment is tedious: one must close the drawing application before opening the word processor, etc. multitasking makes it possible for a single user to run multiple applications at the same time (or background processes) while retaining control of the computer 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 61

Personal Computers Other mainframe system features have been integrated into PC systems, for example: file protection in multi-user systems, file protection was critical in single-user PCs, it was not considered necessary at first, but reappeared with the advent of networking PC systems emphasize user convenience the primary goal of the mainframe multiprogrammed systems was to maximize CPU utilization as in time-sharing systems, the primary goal of PC systems is rather to maximize user convenience and responsiveness 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 62

Personal Computers Ontogeny recapitulates phylogeny Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition). Migration of operating system concepts and features 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 63

Principles of Operating Systems CS 446/646 1. Introduction to Operating Systems a. Role of an O/S b. O/S History and Features Serial processing Simple batch systems Multiprogrammed batch systems Time-sharing systems Personal computers c. Types of O/S d. Major O/S Components e. System Calls f. O/S Software Architecture g. Examples of O/S 9/1/2005 CS 446/646 - Principles of Operating Systems - 1. Introduction 64