Operating Systems: History, Hardware & Concepts Ch 1.3 -1.5 Tuesday, January 16, 2007

Preview:

Citation preview

Operating Systems:History, Hardware & Concepts

Ch 1.3 -1.5

Tuesday, January 16, 2007

Today’s Schedule

Sec 1.2 - Complete History Pages Sec 1.4 - Hardware Review Sec 1.5 - O/S Concepts

History of Operating Systems

Machine-centric Human-centric

1st Generation – Vacuum Tubes (1945-1955)All programming done in machine languageNo OSUsage done by the same people who built the

machine

Second Generation

Transistors & Batch (1955-1965)University, government, & big-businessMainframes & operators in dedicated roomsPunch cardsDeck readers Input/Output binsBatch processing onto tape

Third Generation

Integrated Circuits (1965-1980)Software-compatible product linesBirth of the modern notion of the OSMulti-purpose machine w/ software (OS)

intermediaryMultiprogramming (multiple programs/jobs sharing

resources)Spooling and TimesharingUNIX

Fourth Generation

Personal Computing (1980-present)LSI chips (Large Scale Integration)Cheap memory, disk space, processing, etc.DOS, Windows, Mac OS & XDistributed computingPDA/embedded-devices

Computer Hardware Review

Components of a simple personal computer

Monitor

Bus

Computer Hardware Review

(a) A three-stage pipeline(b) A superscalar CPU

Processors

Brain of the computer Fetch, decode, execute cycle Registers Program Counter (PC) Stack Pointer (SP) Pipelining improves performance, but complexities

of “rolling back” appear Kernel vs. User Mode (enables establishing

limitations of instruction set available)

Memory TradeoffSpeed vs. Capacity

Typical memory hierarchynumbers shown are rough approximations

Computer Memory

•The CPU is often referred to as the brain of the computer. This is where all the actual computing is done.

•The chipset supports the CPU. It usually contains several "controllers" which govern how information travels between the processor and other components in the system. Some systems have more than one chipset.

Computer Memory

•The memory controller is part of the chipset, and this controller establishes the information flow between memory and the CPU.

•A bus is a data path in a computer, consisting of various parallel wires to which the CPU, memory, and all input/output devices are connected.

•The memory bus runs from the memory controller to the computer's memory sockets

Computer Memory•Memory speed is sometimes measured in Megahertz (MHz), or in terms of access time - the actual time required to deliver data - measured in nanoseconds (ns).

•A computer's system clock resides on the motherboard. It sends out a signal to all other computer components in rhythm, like a metronome.

•Cache memory is a relatively small amount (normally less than 1MB) of high speed memory that resides very close to the CPU. Cache memory is designed to supply the CPU with the most frequently requested data and instructions.

Memory Allocation

We need a protective and fair way of allocating and resizing memory blocks for processes/jobs

Two sections of memoryCode (typically static)Data (volatile)

OS

Program Code

User 1 Data

User 2 Data

Limit

Base

Limit

Base

Limit

Base

Multiple Processes in Memory

One base-limit pair and two base-limit pairsProtection and Relocation problems solved!

Memory Management Unit (MMU)

Device that checks and maps memory addresses

Virtual Address – address generated by the program

Physical Address – address actually used in memory

I/O Devices

Typically consist of two parts:ControllerDevice

Controller manages & presents the API of the device to the OS

The software that “talks” to the controller is called a device driver

Invoking Device Actions

Busy wait – execute a kernel-level system call and wait (ties up the processor )

Ask the device to generate an interrupt (signal that it’s done or failed) Doesn’t tie up the processor Adds complexity

DMA – Direct Memory Access Bypasses the use of the processor Allows the device to write directly to memory once the

“rules of the road” are established

I/O Devices

(a) Steps in starting an I/O device and getting interrupt

(b) How the CPU is interrupted

(a) (b)

Bus

Communication “highway” for all data to travel upon Multiple buses exist in modern machines

Cache (fastest) Local (on mainboard –other busses connect to it) Memory PCI (successor of ISA - high-speed I/O) SCSI (high-speed scanners & disks) USB (slow peripherals) IDE (disks, etc.) ISA (slowest – legacy)

Buses in PC

Structure of a large Pentium system

OS Concepts

Processes Deadlock Memory Management I/O Files Security

                        

Processes

Defined as a “program in execution” AKA a “job” Contain

Instructions (code segment) SP, PC, registers, file handles Data segment

Processes can spawn subprocesses & threads The OS must ensure fairness & protection,

timeslicing & managing multiple processes at a time

Deadlock

Two or more processes “stalemated” because they can’t make progress

Process AHas resource 1

Waiting on resource 2

Process BHas resource 2

Waiting on resource 1

Memory Management

Providing protection of one process’ memory section from another process (security)

Providing a fair allocation of memory to multiple processes

Swapping memory to disk as needed

Input/Output

All OS must manage I/O devices

Two categories:Device independentDevice dependent (device drivers)

Files

System callsCreate, remove, read, write, etc.

Directories & subdirectoriesCreate, remove, rename, move, etc.

Security

Allocate permissionsDirectoriesFiles

Example UNIX policies to consider:Read, Write, ExecuteUser, Group, World

System Calls

Services that the OS provides to the user Set of API that user-level programs may

invoke

Flavors of System CallsUNIXWin32

UNIX System Callspid = fork() creates child process

exit() terminates process

fd = open(file, …) opens file

s = mkdir(name, mode) creates directory

s = chmod(name, mode) sets file/dir permissions

s = kill(pid, signal) sends signal to process

Win32 System Calls

CreateProcess(…) creates new process

ExitProcess(…) terminates process

CreateFile(…) opens file

CreateDirectory(…) creates directory

Approaches to OS

Monolithic

Virtual Machines

Client-Server (microkernel)

Monolithic OS Architecture

OS written as a set of procedures

Each procedure has well-defined interface (parameters)

Very little structure or information hiding

Virtual Machine OS Architecture

Replicate the hardware within software

Trap OS calls and translate/handle them Breaks down if you make direct I/O calls Slow

Other approach: JVM (define an alternate instruction set and translate to various OS)

Client-Server OS Architecture

Implement as much as possible in user-level modules

The OS is as small as possible It only serves to translate and message

pass OS-level calls to service processes

Thursday, January 18

Complete Reading Chapter 1 Sections 1.1 – 1.5Sections 1.9 – 1.11

Quiz on Chapter 1, above sections Homework #1 due on

Wed, Jan 17 11:30 pm

Recommended