Two Directions: – Practical. • Linux+ Guide to Linux Certification and Lab Manual.
• Lab Experience. – Theoretical. • Operating Systems (3rd Edition Gary Nutt).
Slide 1-1
Computer Systems II Gordon College
Operating System Overview
Class Intro
Slide 1-2
• Operating System Class • Two Directions: – Practical • Linux+ Guide to Linux Certification and Lab Manual • Lab Experience
– Theoretical • Operating Systems (3rd Edition Gary Nutt) • Lecture and Projects
1
Why Study Operating Systems?
Slide 1-3
• Understand the model of operation – Easier to see how to use the system – Enables you to write efficient code
• Learn to design an OS • Even so, OS is pure overhead of real work • Application programs have the real value to person who buys the computer
Perspectives of the Computer print cut send save
open() malloc() fork()
read-disk
start-printer track-mouse
Application Software System Software
Application Software System Software
Application Software System Software
Hardware
Hardware
Hardware
(b) Application Programmer View
(c) OS Programmer View
(a) End User View
Slide 1-4
2
System Software
Slide 1-5
•Independent of individual applications, but common to all of them •Examples –C library functions –A window system –A database management system –Resource management functions –The OS
Using the System Software
Slide 1-6
Application Programmer
System Software
Software API Command Line Interpreter Compiler
Loader Libraries Libraries Libraries
Database Management System
Window System
OS
Hardware
3
Application Software, System Software, and the OS
Slide 1-7
Human-Computer Interface Application Software API System Software (More Abstract Resources) OS Interface Trusted OS (Abstract Resources) Software-Hardware Interface Hardware Resources
The OS as Resource Manager
Slide 1-8
•Process: An executing program •Resource: Anything that is needed for a process to run –Memory –Space on a disk –The CPU
•“An OS creates resource abstractions” •“An OS manages resource sharing”
4
Resource Abstraction
Slide 1-9
load(block, length, device); seek(device, 236); out(device, 9) write(char *block, int len, int device, int track, int sector) { ... load(block, length, device); seek(device, 236); out(device, 9); ... } write(char *block, int len, int device,int addr); fprintf(fileID, “%d”, datum);
Disk Abstractions
Slide 1-10
Application Programmer OS Programmer
load(…); seek(…); out(…);
(a) Direct Control
void write() { load(…); seek(…) out(…) }
(b) write() abstraction
int fprintf(…) { ... write(…) … }
(c) fprintf() abstraction
5
Abstract Resources
Slide 1-11
User Interface Application Abstract Resources (API) Middleware OS Resources (OS Interface) OS Hardware Resources
Abstract Machines
Slide 1-12
Abstract Machines
Idea Program
Physical Machine
Result
Idea
Program
…
Result
…
Idea
…
Program
Result
6
Resource Sharing
Slide 1-13
• Space- vs time-multiplexed sharing • To control sharing, must be able to isolate resources • OS usually provides mechanism to isolate, then selectively allows sharing – How to isolate resources – How to be sure that sharing is acceptable
• Concurrency
The OS as a Conductor
Slide 1-14
The OS coordinates the sharing and use of all the components in the computer
7
Multiprogramming Abstract Machine Pi
Abstract Machine Pj
Slide 1-15
Abstract Machine Pk
… OS Resource Sharing
Pi Memory Pk Memory
…
Time-multiplexed Physical Processor
Pj Memory
Space-multiplexed Physical Memory
Slide 1-16
Multiprogramming(2) • Technique for sharing the CPU among runnable processes – Process may be blocked on I/O – Process may be blocked waiting for other resource, including the CPU
• While one process is blocked, another might be able to run • Multiprogramming OS accomplishes CPU sharing “automatically” – scheduling • Reduces time to run all processes
8
How Multiprogramming Works
Slide 1-17
Process 1 Process 2 Process 3
Time-multiplexed CPU Process 4
Space-multiplexed Memory
Speeding Up the Car Wash Vacuum Inside
Wash
Slide 1-18
Dry
(a) The Sequential Car Wash
Vacuum Inside Wash
Dry
(b) The Parallel Car Wash
9
Slide 1-19
Multiprogramming Performance Pi’s Total Execution Time, ti 0
ti
Time
(a) Pi’s Use of Machine Resources P1 P2
…
Pi
…
PN
Time
(a) All Processes’ Use of Machine Resources Using the processor I/O operation
OS Strategies • • • • • • •
Slide 1-20
Batch processing Timesharing Personal computer & workstations Process control & real-time Network Distributed Small computers
10
Slide 1-21
Batch Processing
Job 3
Job 19
Input Spooler
Output Spooler
Input Spool
Batch Processing(2) • • • • • • •
Output Spool
Slide 1-22
Uses multiprogramming Job (file of OS commands) prepared offline Batch of jobs given to OS at one time OS processes jobs one-after-the-other No human-computer interaction OS optimizes resource utilization Batch processing (as an option) still used today
11
A Shell Script Batch File
Slide 1-23
cc -g -c menu.c cc -g -o driver driver.c menu.o driver < test_data > test_out lpr -PthePrinter test_out tar cvf driver_test.tar menu.c driver.c test_data test_out uuencode driver_test.tar driver_test.tar >driver_test.encode
Timesharing Systems
Slide 1-24
Abstract Machines Result Physical Machine
Command
Result
…
Command
Result Command
12
Timesharing Systems(2)
Slide 1-25
Computer Research Corp ‘67
• Uses multiprogramming • Support interactive computing model (Illusion of multiple consoles) • Different scheduling & memory allocation strategies than batch • Tends to propagate processes • Considerable attention to resource isolation (security & protection) • Tend to optimize response time
Personal Computers
Slide 1-26
• CPU sharing among one person’s processes • Power of computing for personal tasks – Graphics – Multimedia
• Trend toward very small OS • OS focus on resource abstraction • Rapidly evolved to “personal multitasking” systems
13
Process Control & Real-Time
Slide 1-27
• Computer is dedicated to a single purpose • Classic embedded system • Must respond to external stimuli in fixed time • Continuous media popularizing real-time techniques • An area of growing interest
Networks
Slide 1-28
• LAN (Local Area Network) evolution • 3Mbps (1975) → 10 Mbps (1980) → 100 Mbps (1990) → 1 Gbps (2000) • High speed communication means new way to do computing – – – –
Shared files Shared memory Shared procedures/objects ???
14
Distributed OS
Slide 1-29
• Wave of the future App App
App
App App
App
Distributed OS
Multiple Computers connected by a Network
Small Computers
Slide 1-30
• PDAs, STBs, embedded systems became commercially significant • Have an OS, but – Not general purpose – Limited hardware resources – Different kinds of devices • Touch screen, no keyboard • Graffiti
– Evolving & leading to new class of Oses
• PalmOS, Pocket PC (WinCE), VxWorks, …
15
Evolution of Modern OS Timesharing Memory Mgmt Scheduling Batch Protection Memory Mgmt Protection Scheduling Files Devices
Slide 1-31
Network OS PC & Wkstation System software
Client-Server Model Protocols
Real-Time
Human-Computer Interface
Scheduling
Small Computer Modern OS
Network storage, Resource management
Examples of Modern OS
Slide 1-32
• UNIX variants (e.g. Linux) -- have evolved since 1970 • Windows NT/2K -- has evolved since 1989 (much more modern than UNIX – Win2K = WinNT, V5
• Research OSes – still evolving … • Small computer OSes – still evolving …
16
The Microsoft OS Family
Slide 1-33
Win32 API Win32 API Subset Win32 API SubSet Windows CE (Pocket PC) Windows 95/98/Me
Windows NT/2000/XP
Summary
Slide 1-34
An Operating System must be able to: • provide functionality to apps • provide abstraction of hardware to users and apps • provide the sharing of resources to processes • provide security and protection • be as transparent as possible • be as light as possible
17