OS: An Introduction

11
1 1 Overview of Operating Systems Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. 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 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. Von Neumann Architecture 4 This describes a design architecture: § A processing unit containing an ALU and processor registers § A control unit containing an instruction register or program counter § A memory to store both data and instructions (Stored-program computer) § External mass storage, and input and output mechanisms. Before, computers have fixed uses 5 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 6 First Computer: ENIAC (cont.) Got problem with the program?! à you are in trouble J Debug your program! 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?

Transcript of OS: An Introduction

Page 1: OS: An Introduction

1

1

Overview of Operating Systems

Instructor: Dr. Tongping Liu

Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides.

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

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.

Von Neumann Architecture

4

This describes a design architecture:§  A processing unit containing an ALU and processor registers§  A control unit containing an instruction register or program counter§  A memory to store both data and instructions (Stored-program

computer) §  External mass storage, and input and output mechanisms.

Before, computers have fixed uses

5

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

6

First Computer: ENIAC (cont.)

❚  Got problem with the program?! à you are in trouble J

Debug your�program!

❚  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?

Page 2: OS: An Introduction

2

7

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)

8

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

9

Modern Computer Hardware Organization

Von Neumann Architecture: store and computation

I/O devices

10

Operating Systems: Why do you need it?

❚  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

$300

OS (Windows)+

$200

Do I have to?!

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

Big Picture of Computer Systems

System and Application Programs!

Compiler! Email app.! Text editor! Database system!

User 1! User 2! User 3! User n!. . . !

Operating System!

Hardware (CPU, MEM)!

Page 3: OS: An Introduction

3

13

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.

14

Multiprogrammed Systems

❚  Several jobs run “concurrently” Ø Job: computing à input à computing à … à output Ø Take turns to use CPU and I/O devices

❚  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

A single program cannot keep busy for CPU and IO, thus wasting resources

15

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

16

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

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!

18

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. “best-

effort 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

Page 4: OS: An Introduction

4

19

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

20

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.

21

Example: System-Call Processing 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""

.

24

Examples: Major System Calls in Unix

Page 5: OS: An Introduction

5

Examples of Windows and Unix System Calls

26

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.

kernel! user!

Interrupt!

set user mode!

Privileged instructions can be issued only in kernel mode. !

System call control flow - Linux

•  Userapplica+oncallsauser-levellibraryrou+ne(gettimeofday(),read(),exec(),etc.)•  Invokessystemcallthroughstub,whichspecifiesthesystemcallnumber.Fromunistd.h:#define __NR_getpid 172

__SYSCALL(__NR_getpid, sys_getpid)

•  Thisgenerallycausesaninterrupt,trappingtokernel•  Kernellooksupsystemcallnumberinsyscalltable,callsappropriatefunc+on•  Func+onexecutesandreturnstointerrupthandler,whichreturnstheresulttotheuserspaceprocess

27 4/5/2012

System call control flow - Linux

28 4/5/2012

Theideaiss+llthesame,althoughcodeisdifferent

Interrupt

❚  An interrupt automatically puts the CPU into some elevated privilege level, and then passes control to the kernel, which determines whether the calling program should be granted the requested service

❚  If the service is granted, the kernel executes a specific set of instructions over which the calling program has no direct control, returns the privilege level to that of the calling program, and then returns

29

Definition of Interrupt

❚  During normal execution of a computer program, there could be events that can cause the CPU to temporarily halt. Events like this are called interrupts. Ø  Hardware interrupts, called as interrupts Ø  Software interrupts, called as exceptions or traps

30

Page 6: OS: An Introduction

6

System calls vs. (Hardware) Interrupts

❚  System call is a call to a subroutine built in to the system, while Interrupt is an event, which causes the processor to temporarily hold the current execution. Ø  system calls are synchronous, while interrupts are not Ø Unlike a system call, an interrupt usually does not have

anything to do with the current program. Ø When ever a system call occurs the processor only has to

remember where to return to, but in the event of an interrupt, the processor has to remember both the place to return to and the state of the system.

31 32

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.

33

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

What if another interrupt occurs during interrupt processing?

Nesting Interrupts

❚  Only some systems support nesting interrupts, some do not.

❚  If nesting interrupt is allowed, but with restrictions. The common notion is that a high priority device can interrupt a low priority device, but not vice versa. Ø Programmers may provide the ability to enable and

disable these interruptions at different times during program execution.

Ø If interruption is disabled, the CPU does not respond to an interrupt signal.

Ø After completion of the high-priority devices interrupt service routine, the processor will meet the demand of low priority interrupt devices 34

35

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

36

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.

Page 7: OS: An Introduction

7

37

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

I/O

38

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/signal) Ø Process communication and synchronization Ø Deadlock handling

39

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 becomes

available Ø Allocate and de-allocate memory space as needed

40

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

41

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

42

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

Page 8: OS: An Introduction

8

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"

"

45

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 devices46

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)

Bourne Shell Command Interpreter The Mac OS X GUI

Page 9: OS: An Introduction

9

49

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.

50

Operating System Design Approaches

❚  Simple Structure Ø MS-DOS and original Unix

❚  Layered Approach ❚  Microkernels ❚  Modular Approach ❚  Virtual Machines

51

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.

52

MS-DOS Structure

Problem: applications are able to access drivers

53

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.

54

Original UNIX System Structure

Page 10: OS: An Introduction

10

55

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? Problems?

Layered debugging: up from layer 0 How to define layers? Less efficient

56

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;

❚  Advantage: flexibility and extensibility Ø services can be added, modified and debugged Ø small kernel à fewer bugs Ø protection of services and resources is still maintained

57

Microkernel Approach (cont.)

Problems with microkernel approach?Performance decrease due to system function overhead

58

Modular Approach

❚  Modular kernel Ø The kernel has a set of core components Ø Dynamically links in additional services either during boot-

time or during run-time Ø Common in modern implementations of Unix such as

Linux and Solaris

59

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

60

Virtual Machines (Cont.)

Linux XP OS X

Page 11: OS: An Introduction

11

61

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

62

For next lecture

❚  Process management Ø SGG Chapters 3 and 5