Understand model of operation Easier to see how to use the system Enables you to write efficient...

Preview:

Citation preview

Understand 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

2

A computer system consists of hardware and software that are combined to provide a tool to solve specific problems Hardware includes CPU, memory, disks,

printers, screen, keyboard, mouse ... Software includes

System software A general environment to create specific

applications Application software

A tool to solve a specific problem

3

4

ApplicationSoftware

SystemSoftware

Hardware

(a) End UserView

(b) ApplicationProgrammer View

(c) OS ProgrammerView

ApplicationSoftware

ApplicationSoftware

SystemSoftware

SystemSoftware

Hardware Hardware

cutsave

printsend

malloc()fork()

open() read-disktrack-mouse

start-printer

Independent of applications, but common to all

Examples C library functions A window system A database management system Resource management functions

5

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”

6

7

Hardware Resources

OS

OS Resources (OS Interface)

Middleware

Abstract Resources (API)

Application

User Interface

Provides an abstract model of the operation of hardware components Like data abstraction in Object-Oriented

programming Interface functions Internal functions and status

Eliminates the tedious details that a programmer would otherwise have to handle

8

Processor: execute instructions Memory: store programs and data Input/output (I/O)controllers: transfer to

and from devices Disk devices: long-term storage Other devices: conversion between

internal and external data representations

9

10

Everything that a programmer needs to know in order to write programs that perform desired operation on the hardware Disk drive is an example

Disk interface provides functions to move disk head, transfer data

Monitor Monitor interface provides functions to move the

cursor, display characters/graphics

11

System software Provides a general programming environment

in which programmers can create specific applications

Application software Intended to solve a specific problem

12

13

LoaderLoader

OSOSDatabaseManagement

System

DatabaseManagement

System

WindowSystem

WindowSystem

ApplicationProgrammer

Sys

tem

Sof

twar

e

LibrariesLibraries

CompilerCompiler

Hardware

CommandLine

Interpreter

CommandLine

Interpreter

LibrariesLibrariesLibrariesLibraries

Software APISoftware API

The operating system is the part of the system software that manages the use of the hardware used by other system software and all application software It is the system program that acts between

the hardware and the user programs

14

It provides services to user programs Through system calls / message passing

File system services Memory services I/O services

It hides hardware from user programs When your program shows a message on the

monitor, it does not need to know the details When your program generates a new file, it

does not need to where the free space is on your hard drive

15

Major differences between OS and general system software General system software relies on the

abstractions provided by OS OS abstracts the hardware directly OS provides the fundamental trusted

mechanisms for resource sharing A general purpose OS is domain-independent

16

Resource manager manage hardware and software resources Resource abstraction and sharing

A nicer environment implement a virtual machine for processes to

run in A program in execution is called a process

a nicer environment than the bare hardware

17

Transform physical resources to logical resources Resource abstraction

Make the hardware resources easier to use

Multiplex one physical resource to several logical resources Create multiple, logical copies of resources

Schedule physical and logical resources Decide who gets to use the resources

18

Three interface functions load(block, length, device) seek(device, track) out(device, sector)

19

An abstract function for writing

write(char *block, int len, int device,

int track, int sector)

{

...

load(block, length, device);

seek(device, 236);

out(device, 9);

...

}

20

21

load(…);seek(…);out(…);

void write() { load(…); seek(…) out(…)}

int fprintf(…) { ... write(…) …}

(a) Direct Control (b) write() abstraction

(c) fprintf() abstraction

ApplicationProgrammer

OS Programmer

The dark side … While simplifying the way application

programmers can control hardware, abstraction can limit the flexibility by which specific hardware can be manipulated

Certain operations may be impossible to achieve using the abstraction

22

Concurrent execution Two or more processes appear to be (or

actually are) executing at the same time Parallel execution

Two or more processing actually executing simultaneously

Processes which are concurrent, or parallel, must share the computer

23

Two types of sharing Time multiplexed sharing

time-sharing schedule a serially-reusable resource among

several users Space multiplexed sharing

space-sharing divide a multiple-use resource up among several

users

24

25

- Called multiprogramming

26

- Resulted in concurrent execution or concurrency

27

Time

Using the processorI/O operation / paused

0 ti

Pi’s Total Execution Time, ti

(a) Pi’s Use of Machine Resources

Time

P1

P2

Pi

PN

(a) All Processes’ Use of Machine Resources

• Improves performance

28

29

30

Resource isolation and sharing Protection

Prevent unauthorized access of resources by one process when they are currently allocated to another

Sharing

Resource allocation Scheduling

31

Not always When resource abstraction or sharing is not

needed Some programs run “stand-alone” Early computers did not have a sophisticated

OS OS was evolved along the hardware

technology But they are very useful

Reusable functions Easier to use than the bare hardware

32

Several different strategies have been used Earliest computers were dedicated to a

single program and there was no multiprogramming and no OS

Batch systems Timesharing systems There are a few other recent strategies

Personal computers and workstations Embedded systems Small, communicating computers Network technology

33

Reduce setup time by batching similar jobs

Automatic job sequencing – automatically transfers control from one job to another. First rudimentary operating system.

Resident monitor initial control in monitor control transfers to job when job completes control transfers back to

monitor

34

35

Job 19

Input Spooler Output Spooler

Job 3

Input Spool Output Spool

36

Overlap I/O of one job with computation of another job. While executing one job, the OS Reads next job from card reader into a

storage area on the disk (job queue). Outputs printout of previous job from disk to

printer. Job pool – data structure that allows the

OS to select which job to run next in order to increase CPU utilization

37

38

Several jobs are kept in main memory at the same time, and the CPU is multiplexed among them.

I/O routine supplied by the system Memory management – the system must

allocate the memory to several jobs CPU scheduling – the system must

choose among several jobs ready to run Allocation of devices

39

The goal is to enable users to interact with the computer system Batch processing systems do not allow user

interactions On-line communication between the user

and the system is provided When the operating system finishes the execution

of one command, it seeks the next “control statement” not from a card reader, but rather from the user’s keyboard.

On-line system must be available for users to access data and code.

40

41

PhysicalMachine

AbstractMachines

Command

Command

Command

Result

Result

Result

Personal computers – computer system dedicated to a single user.

I/O devices – keyboards, mice, display screens, small printers.

User convenience and responsiveness. Can adopt technology developed for larger

operating system often individuals have sole use of computer and

do not need advanced CPU utilization of protection features.

42

43

Win32 APIWin32 API

Windows CE(Pocket PC)

Windows CE(Pocket PC)

Windows 95/98/MeWindows 95/98/Me

Windows NT/2000/XPWindows NT/2000/XP

Win32 API SubsetWin32 API Subset

Win32 API SubSetWin32 API SubSet

Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems.

Well-defined fixed-time constraints. Hard real-time system.

Secondary storage limited or absent, data stored in short-term memory, or read-only memory (ROM)

Conflicts with time-sharing systems, not supported by general-purpose operating systems.

Soft real-time system Limited utility in industrial control or robotics Useful in applications (multimedia, virtual reality)

requiring advanced operating-system features.

44

Multiprocessor systems with more than one CPU in close communication.

Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory.

Advantages of parallel system: Increased throughput Economical Increased reliability

graceful degradation fail-soft systems

45

Distribute the computation among several physical processors

Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines

Advantages of distributed systems Resources Sharing Computation speed up – load sharing Reliability Communications

46

Network operating system provides file sharing provides communication scheme runs independently from other computers on

the network Distributed operating system

less autonomy between computers gives the impression there is a single

operating system controlling the network.

47

48

49

Modern OS

Batch

Timesharing

PC & Wkstation

Network OS

Real-TimeMemory Mgmt

Protection

Scheduling

Files

Devices

Memory Mgmt

Protection

Scheduling

System software

Human-Computer Interface

Client-Server Model

Protocols

Scheduling

Small Computer

Network storage,Resource management

Recommended