Professional Documents
Culture Documents
Part I: Introduction
I think that there is a world market for five computers - Thomas J. Watson (1945)
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
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
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
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
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
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
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
Line printer
Tape Drive
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
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
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
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
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
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)
19
Handheld Systems
20
Resident Programs Programs which are critical to the operation of the system KERNEL
Non-resident Programs
21
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
free memory
(a)
(b)
23
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
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
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
26
Free space management Storage allocation Disk scheduling Transfer protocols Routing and connection strategies
Networking
27
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
28
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