OS Overview - Gordon College

18 downloads 149 Views 1MB Size Report
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