You are on page 1of 33

Operating Systems

Part I: Introduction

I think that there is a world market for five computers - Thomas J. Watson (1945)

Why Study Operating Systems?




We want to have an efficient O/S because it


consumes more resources than any other program. is the most complex program. is necessary for any use of the computer. is used by many users. Functionality Performance: Time and Utilization Convenience and Cost

Efficiency is measured through


Goals of This Course


  

Understand what an operating system is Understand the key components of an operating system Have a deeper understanding of common operating systems in the market (e.g. Windows, Unix, MS-DOS) and the issues associated with them To be able to use performance measures

What is an O/S?

A layer of abstraction between the HW and SW A resource coordinator Virtual machine Reactive system

Operating Systems: A Definition


A collection of programs that integrate the hardware resources of the computer and make those resources available to the user in a productive, timely, and efficient manner

Operating Systems Ease the Pain




 

 

Performs the interface task with the hardware (file operations, memory paging, etc.) which should have been done by the user if the OS did not exist High-level interface (GUI, command line a.k.a. CUI) The O/Ss capability for multiuser and multitasking utilize the hardware efficiently Makes visible the virtual component of the system Allows program interaction

Why are Operating Systems Difficult to Create and Maintain?




Size

Too big for one person; current systems have millions of lines of code and involve 10-100 man years to build Operating systems remain longer than the programmers who originally wrote them. Code is written and rewritten and original intent is forgotten (Unix designed to be cute, small system - now several volumes thick!)

Lifetime

Why are Operating Systems Difficult to Create and Maintain?




Complexity

The system must do difficult things -- deal with ugly I/O devices, multiplexing/juggling act, handle errors Must do several things at once.

Multitasking

General purpose

A Brief History: Early 1950s, Mainframes Rule!




Early systems

No O/S! Programmer is also operator Large machines run from a console; programs loaded through switches and card readers Setup time was a problem -> hire an operator Operator ran related jobs together O/S was a simple program stored in one part of memory
 

Simple batch systems were the first real OS


Loads a single job from card reader into memory Transfers control from one job to the next

10

Offline Processing
Allowed jobs to be read ahead of time onto tape
Card Reader

CPU On-line processing

Line printer

Card Reader Tape Drive

Tape Drive

CPU Off-line processing

Tape Drive

Line printer

Tape Drive

11

History: Spooling
 

Allowed jobs to be read ahead onto disk Spool (Simultaneous Peripheral Operation OnLine)
disk

Card Reader

CPU

Line printer

12

Multiprogrammed Systems


Multiprogrammed batch systems provided increased utilization


Keeps several jobs in memory simultaneously I/O processing of one job overlaps with computation of another Analogy: Lawyer working on several cases; while waiting to go to trial on one, can work on another Needs CPU scheduling

13

Timesharing/Multitasking Systems


Timesharing supported interactive use

Each user feels as if he/she has the entire machine Tries to optimize response time Based on time-slicing; divide CPU equally among others

14

Desktop Systems
 

First appeared in the 1970s More popularly known as personal computers (PCs) Breakthroughs in hardware allowed downsizing from expensive mainframes

15

Multiprocessor Systems
 

Also known as parallel systems or tightly-coupled systems Three main advantages


Increased throughput (more CPUs = more work in less time) Economy of scale (saves money, CPUs share peripherals) Increased reliability (provides redundancy and fault tolerance)

 

Symmetric multiprocessing (SMP): All CPUs do the same thing Asymmetric multiprocessing: each CPU has specific role (usually master-slave)

16

Distributed (Loosely-Coupled) Systems


   

Facilitates use of geographically distributed computing resources Supports communications between parts of a job or different jobs Supports sharing of distributed resources, both hardware and software Client-server systems vs. Peer-to-peer systems

17

Clustered Systems


Makes several CPUs work together to accomplish computational task Most likely share storage and linked through a local area network (LAN) Possible clustering schemes:

Symmetric mode (two or more hosts running applications and monitoring each other) Asymmetric clustering (one is in hot standby mode while another is running applications; switches to backup if active fails)

18

Real Time Systems


   

Used for specialized applications: subway systems, flight-control, factories, power plants Basic idea: O/S guarantees response to physical events will occur within a fixed amount of time Problem faced : Schedule activities so as to meet all time constraints Hard real time system

Deadline is critical Typically used to control a device Deadline is important but not critical Example : Video applications (Use in PC environment)

Soft real time system


19

Handheld Systems
 

Used in PDAs and cellular phones Common concerns:


Limited main memory Processor speed Small display screens

20

General Structure of an O/S




Resident Programs Programs which are critical to the operation of the system KERNEL

Non-resident Programs

Loaded into memory only when needed

21

An Example: MS-DOS Structure




Memory resident components

Command interface shell (eg. ver, dir, date, time) : COMMAND.COM Set of I/O routines which control each I/O devices (drivers) -- e.g. BIOS : IO.SYS File Management System : MSDOS.SYS FORMAT.COM, XCOPY.EXE, LABEL.EXE, etc.

Non-resident components

22

How MS-DOS Programs are Loaded in Main Memory


At System Start-up Running a Program

free memory

free memory process

command interpreter kernel

command interpreter kernel

(a)

(b)

23

Operating System Components




Process Management

Process: a program in execution Keeps track of each process and its state Create, delete, suspend, resume processes; synchronize process communications, handle deadlocks Possibly support threads (executable parts of a process)

24

Operating System Components




Main Memory Management


Keep track of which parts of memory are in use Allocates and deallocates memory as needed Decides which processes must be loaded in main memory when space becomes available

25

Operating System Components




File Management

Keeps tracks of available space on the system Maintains directory structure and hierarchy Supports file manipulation commands Keeps track of file information (inode, name, timestamp) Allows for a standard methodology for access of each device Use of device drivers for modularity

I/O System Management


26

Operating System Components




Secondary Storage Management


Free space management Storage allocation Disk scheduling Transfer protocols Routing and connection strategies

Networking

27

Operating System Components




Protection System

Provide mechanism for controlling access to programs, processes, or users Essential in multitasking and multiuser systems GUI vs. Command Line Interface Redirection, Piping, and Parameter Passing

Command Interpreter System


28

Operating Systems Architectures


   

Monolithic Layered Virtual Machine Microkernel

29

Monolithic
 

Easy to implement The Big Mess virtually no structure! Kernel is one large structure Each procedure is visible to every other procedure Not used anymore

30

Layered


Not easy to implement because some functionalities are mutually dependent. Inefficient because it requires a high number of traversals of interfaces

31

Virtual Machine
Non-virtual Machine Virtual Machine
processes processes processes processes


programming interface kernel hardware kernel kernel virtual machine hardware kernel

Each user has a virtual machine and he can choose which OS to run on that machine Elegant, but does not deal with questions of resource management and responsiveness

(a)

(b)

32

Microkernel
 

Used in Mac/OSF/NT Takes out as much functionality as possible from kernel -- allows modularity and portability across platforms Interactions between processes involve the kernel, thereby requiring high efficiency in transfer

33

You might also like