Overview of Operating Systems Instructor: Dr. Tongping Liu



Similar documents
Chapter 3: Operating-System Structures. Common System Components

Operating System Components

Operating Systems 4 th Class

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Chapter 3 Operating-System Structures

Chapter 1: Introduction. What is an Operating System?

Chapter 2 System Structures

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

Operating System Structures

Operating system Dr. Shroouq J.

System Structures. Services Interface Structure

Types Of Operating Systems

OPERATING SYSTEM SERVICES

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Operating Systems Overview

Example of Standard API

3 - Introduction to Operating Systems

Overview and History of Operating Systems

Operating System Structures

Introduction. What is an Operating System?

Contents. Chapter 1. Introduction

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

Principles of Operating Systems CS 446/646

Common Operating-System Components

CS3600 SYSTEMS AND NETWORKS

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Operating System Tutorial

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Lecture 1 Operating System Overview

CS420: Operating Systems OS Services & System Calls

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

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

Introduction. System Calls

Components of a Computer System

ELEC 377. Operating Systems. Week 1 Class 3

Chapter 2: OS Overview

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Operating System Structure

CHAPTER 15: Operating Systems: An Overview

Chapter 1: Introduction. Chapter 1: Introduction. Operating System Concepts, 7th Edition. Objectives

Chapter 6, The Operating System Machine Level

Operating Systems Prof. Ashok K Agrawala

Operating System Overview. Otto J. Anshus

Operating Systems: Basic Concepts and History

Operating System Organization. Purpose of an OS

Operating Systems OS Architecture Models

Computer-System Architecture

Computers: Tools for an Information Age

CSC 2405: Computer Systems II

How To Understand The History Of An Operating System

Chapter 1 Computer System Overview

Operating System Components and Services

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Chapter 5: System Software: Operating Systems and Utility Programs

COS 318: Operating Systems

Chapter 3. Operating Systems

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Operating Systems. Lecture 03. February 11, 2013

Chapter 1: Introduction. Operating System Concepts 9 th Edit9on

How To Understand And Understand An Operating System In C Programming

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

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

Operating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first

Outline: Operating Systems

SYSTEM ecos Embedded Configurable Operating System

Operating Systems PART -A

Introduction to Virtual Machines

OS Concepts and structure

Operating Systems Introduction


Operating System Software

OPERATING SYSTEMS STRUCTURES

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Computer Organisation Operating Systems

This tutorial will take you through step by step approach while learning Operating System concepts.

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Security Overview of the Integrity Virtual Machines Architecture

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

How To Understand The Principles Of Operating Systems

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Have both hardware and software. Want to hide the details from the programmer (user).

INTRODUCTION TO OPERATING SYSTEMS

CPS221 Lecture: Operating System Structure; Virtual Machines

Chapter 11 I/O Management and Disk Scheduling

OPERATING SYSTEMS Software in the Background. Chapter 2

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

A single user ran a single program ran on a single computer there was no need for Page 1 of 6 Copyright Virtual University of Pakistan

Virtualization. Dr. Yingwu Zhu

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Operating- System Structures

Components of a Computing System. What is an Operating System? Resources. Abstract Resources. Goals of an OS. System Software

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Programming for GCSE Topic H: Operating Systems

Operating Systems. Rafael Ramirez (T, S)

Transcription:

Overview of Operating Systems Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. 1

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 2

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 3

Von Neumann Architecture This describes a design architecture: Before, computers have fixed uses A processing unit containing an ALU and processor registers A control unit containing an instruction register and program counter A memory to store both data and instructions (Stored-program computer) External mass storage, and input and output mechanisms. 4

First Computer: ENIAC in 1940s Big: 27 tons, 680 ft^2, and use 150kW Slow: tens instructions/s Limited functions: addition / multiplication Hard to use: Button switch or Punch card I/O 5

First Computer: ENIAC (cont.) Got problem with the program?! à you are in trouble J Process one job at a time Ø Human is slow Ø CPU time is precious Batch systems Ø Read in more jobs Ø Process one by one Ø I/O devices are still slow? Debug your program! 6

Desktop Systems: 1980s Personal computers dedicated to a single user; Objective: User convenience and responsiveness. Ø Individuals have sole use of computers Ø A single user may not need advanced features of mainframe OS (maximize utilization, protection). I/O devices display, keyboard, mouse and printers Today, may run several different types of operating systems (Windows, MacOS, Linux) 7

Parallel High-Performance Systems Goals: Ø Increased performance/throughput Ø Increased reliability: fault tolerance Multiprocessor systems: more than one CPUs Ø Tightly coupled system processors share memory, bus, IO, and a clock; communication usually takes place through the shared memory Symmetric multiprocessing (SMP) vs. asymmetric Ø SMP: each processor runs an identical copy of the operating system; all processors are peers Ø Asymmetric: master-slave 8

Modern Computer Hardware Organization I/O devices von Neumann Architecture: store and computation 9

Big Picture of Computer Systems User 1! User 2! User 3!...! User n! Compiler! Email app.! Text editor! Database system! System and Application Programs! Operating System! Hardware (CPU, MEM)! 10

Operating Systems: Why do you need it? + OS (Windows) Do I have to?! $300 $200 Yes: you have to have an OS to use a modern computer Ø Otherwise, a set of silicon circuits doing nothing good for you! OS provides user friendly interface for using computers Ø Copy/Edit documents Ø Play audio/video etc. 11

Operating Systems: Definitions A program that acts as an intermediary between the user/programs of computer and computer hardware. From system view Ø Kernel the program running at all times (all else being application programs) Ø Control program controls the execution of user programs and operations of I/O devices Ø Resource allocator manages and allocates resources Goals of Operating system Ø Convenience: Make the computer convenient to use. Ø Efficiency: Manage system resources in an efficient manner 12

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 13

Multiprogrammed Systems Several jobs run concurrently Ø Job: computing à input à computing à à output Ø Take turns to use CPU and I/O devices A single program cannot keep busy for CPU and IO, thus wasting resources But which job uses what and when? Ø Need a manager/supervisor à OS How to use the hardware (e.g., I/O devices)? Ø Resource manager/interface à OS Traditionally, multiprogrammed system do not provide for user interaction with the computer system (too long for switch) 14

Time Sharing Systems Extension to multi-programmed systems Multiple interactive users Ø Allow on-line interaction with users; Ø Response time for each user should be short CPU is multiplexed among several jobs of several users that are kept in memory Ø CPU is allocated to jobs in Round-Robin manner Ø All active users must have a fair share of the CPU time: e.g. with 10 ms time quantum Example systems: IBM 704 and 7090 15

Distributed Systems Loosely coupled system each processor has its own local memory; processors communicate with one another through various communications lines Advantages of distributed systems. Ø Resource Sharing Ø Computation speed up load sharing Ø Reliability Ø Communications 16

Peer-to-Peer Computing Systems Another model of distributed system" P2P does not distinguish clients and servers" Ø Instead all nodes are considered peers" Ø May each act as client, server or both" Ø Node must join P2P network" ü Registers its service with central lookup service on network, or" ü Broadcast request for service and respond to requests for service via discovery protocol! Ø Examples include Napster and Gnutella!

Special Purpose Systems A real-time system is used when strict time requirements have been placed on the operation of a processor or the flow of data Ø Hard real-time: critical tasks must be completed on time Ø Soft real-time: no absolute timing guarantees (e.g. besteffort scheduling ); multimedia applications; An embedded system is a component of a more complex system Ø Control of a nuclear plant or Missile guidance Ø Control of home and car appliances (microwave oven, DVD players, car engines, ) Example: VxWorks and ecos; Android and ios 18

OS Interface: APIs and System Calls For application programmers Application programming interface (API) Ø The run-time support system (run-time libraries) provides a system-call interface, that intercepts function calls in the API and invokes the necessary system call within the operating system System calls provide the interface between a running program and the operating system. Ø Generally available in routines written in C and C++ Ø Certain low-level tasks may have to be written using assembly language 19

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 20

Example: System-Call Processing 21

. Standard C Library Example C program invoking printf() library call, which calls write() system call"

. Types of System Calls Process control" File management" Device management" Information maintenance" Communications" Protection" "

Examples: Major System Calls in Unix 24

Examples of Windows and Unix System Calls

Operation Modes Hardware support (mode bit) to differentiate between at least two modes of operations Ø User mode execution done on behalf of a user Ø Kernel mode (also monitor mode or system mode or privileged mode) executing on behalf of operating system E.g., interrupts: à switches to monitor mode. Interrupt! Privileged instructions can be issued only in kernel mode.! kernel! set user mode! user! 26

System call control flow - Linux User applica+on calls a user- level library rou+ne (gettimeofday(), read(), exec(), etc.) Invokes system call through stub, which specifies the system call number. From unistd.h: #define NR_getpid 172 SYSCALL( NR_getpid, sys_getpid) This generally causes an interrupt, trapping to kernel Kernel looks up system call number in syscall table, calls appropriate func+on Func+on executes and returns to interrupt handler, which returns the result to the userspace process 27 4/5/2012

System call control flow - Linux The idea is s+ll the same, although code is different 28 4/5/2012

Interrupt Mechanisms Save the current process state Interrupt transfers control to the interrupt service routine (ISR) generally through interrupt vector containing the addresses of all the service routines. ISR: Separate segments of code determine what action should be taken for each type of interrupt. Once the interrupt has been serviced by the ISR, the control is returned to the interrupted program. 29

Basic Interrupt Processing 1. The interrupt is issued 2. Processor finishes execution of current instruction 3. Processor signals acknowledgement of interrupt 4. Processor pushes PSW(Program Status Word) and PC to control stack 5. Processor loads new PC value through the interrupt vector 6. ISR saves remainder of the process state information 7. ISR executes 8. ISR restores process state information 9. Old PSW and PC values are restored from the control stack 30

Classes of Interrupts I/O Interrupts: Generated by an I/O controller, to signal normal completion of an operation or to signal a variety of error conditions Timer Interrupts: Generated by a timer within the processor. This allows the operating system to perform certain functions on a regular basis, like scheduling Hardware Failure Interrupts: Generated by a failure (e.g. power failure or memory parity error). Traps (Software Interrupts): Generated by some condition that occurs as a result of an instruction execution Ø User request for an operating system service (e.g., system calls) Ø Runtime errors 31

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 32

Components in Operating System Process/thread Management Ø CPU (processors): most precious resource Memory Management Ø Main memory File Management à data /program Secondary-Storage Management à disk I/O System Management à I/O devices Protection and Security à access management I/O devices 33

Process Management A process is a program in execution (active), Ø Dynamic concept, represented by process control block A process needs resources: execution environment Ø including CPU time, registers, memory, files, and I/O devices to accomplish its task OS provides mechanism to Ø Create/delete processes Ø Run/Suspend/resume processes (scheduling) Ø Process communication and synchronization Ø Deadlock handling 34

Main Memory Management The main memory is Ø a large array of words/bytes, each with its own address Ø a volatile storage device: content lost when power off The operating system will Ø Keep track of which parts of memory are currently being used and by whom Ø Decide which processes to load when memory space becomes available Ø Allocate and de-allocate memory space as needed 35

File Management A file is a collection of related information (logic unit) Ø Format is defined by its creator. Represent programs (source/object forms) and data Operating system responsibilities Ø File creation and deletion Ø Directory creation and deletion Ø Support of primitives for manipulating files and directories Ø Mapping files onto secondary storage Ø File backup on stable (non-volatile) storage media 36

Secondary-Storage Management The secondary storage backs up main memory and provides additional storage. Most common secondary storage type: disks The operating system is responsible for Ø Free space management Ø Storage allocation Ø Disk scheduling 37

I/O System Management The Operating System will hide the peculiarities of specific I/O hardware from the user. In Unix, the I/O subsystem consists of: Ø A buffering, caching and spooling system Ø A general device-driver interface Ø Drivers for specific hardware devices Interrupt handlers and device drivers are crucial in the design of efficient I/O subsystems 38

Storage Hierarchy Storage systems organized in hierarchy" Ø Speed" Ø Cost" Ø Volatility" Caching copying information into faster storage system; main memory can be viewed as a last cache for secondary storage

Caching Important principle, performed at many levels in a computer (in hardware, operating system, software)" Information in use copied from slower to faster storage temporarily" Faster storage (cache) checked first to determine if information is there" Ø If it is, information used directly from the cache (fast)" Ø If not, data copied to cache and used there" Cache smaller than storage being cached" " Ø Cache management important design problem" Ø Cache size and replacement policy"

Components in Operating System Process/thread Management Ø CPU (processors): most precious resource Memory Management Ø Main memory File Management à data /program Secondary-Storage Management à disk I/O System Management à I/O devices Protection and Security à access management I/O devices 41

OS Interface: Shell and GUI For both programmers and end-users Two main approaches for both Ø Command-line interpreter (or shell) Ø Graphical User Interfaces (GUI) The shell Ø allows users to directly enter commands that are to be performed by the operating system Ø Is usually a system program (not part of the kernel) GUI allows a mouse-based window-and-menu system: click-and-play Some systems allow both (e.g. X-Windows in Unix) 42

Bourne Shell Command Interpreter

The Mac OS X GUI

Lecture Outline Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded OS etc. OS as a resource manager Ø How does OS provide service? interrupt/system calls OS Structures and basic components Ø Process/memory/IO device managers Basic design approaches Ø Monolithic/layered/microkernel/virtual machine etc. 45

Operating System Design Approaches Simple Structure Ø MS-DOS and original Unix Layered Approach Microkernels Modular Approach Virtual Machines 46

Simple System Structure Some operating systems do not have well-defined structures. Often, they started as simple systems and grew beyond their original scope. MS-DOS written to provide the most functionality in the least space Ø not divided into modules Ø Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated. 47

MS-DOS Structure Problem: applications are able to access drivers 48

Original UNIX System Structure UNIX limited by hardware functionality, the original UNIX operating system had limited structure. The UNIX OS consists of two separable parts: Ø Application programs Ø The kernel (everything below the system-call interface and above the physical hardware) ü Provides the file system, CPU scheduling, memory management, and other operating-system functions ü A large number of functions for one level. 49

Original UNIX System Structure 50

Layered Approach OS functions is divided into a number of layers (levels) Ø The bottom layer (layer 0) is the hardware; Ø the highest (layer N) is the user interface. Ø Functions at one layer only uses functions and services of lower-level layers. Simplifies debugging and system verification? Layered debugging: up from layer 0 Problems? How to define layers? Less efficient 51

Microkernel Approach Keep the minimal services in kernel (process, memory, communication etc.); moves as much as possible from the kernel into the user space Communication takes place between user modules using message passing (e.g. Mach OS); Advantage: flexibility and extensibility Ø services can be added, modified and debugged Ø small kernel à fewer bugs Ø protection of services and resources is still maintained 52

Microkernel Approach (cont.) Problems with microkernel approach? Performance decrease due to system function overhead 53

Modular Approach Modular kernel Ø The kernel has a set of core components Ø Dynamically links in additional services either during boottime or during run-time Ø Common in modern implementations of Unix such as Linux and Solaris 54

Virtual Machines Takes the layered approach to its logical conclusion. A virtual machine provides an interface identical to the underlying bare hardware Each user is given its own virtual machine The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory Become more popular with multicore systems 55

Virtual Machines (Cont.) Linux XP OS X 56

Virtual Machines (Evaluation) The virtual-machine concept provides complete protection (because of complete isolation). This isolation, however, permits no direct sharing of resources. A virtual-machine system is a perfect vehicle for operating-systems research and development. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate of the underlying machine 57

For next lecture Process management Ø SGG Chapters 3 and 5 58