History of Operating Systems

Download Report

Transcript History of Operating Systems

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 language
 No OS
 Usage done by the same people who built the
machine
Second Generation
Transistors & Batch (1955-1965)
 University,
government, & big-business
 Mainframes & operators in dedicated rooms
 Punch cards
 Deck readers
 Input/Output bins
 Batch processing onto tape
Third Generation

Integrated Circuits (1965-1980)
 Software-compatible
product lines
 Birth of the modern notion of the OS
 Multi-purpose machine w/ software (OS)
intermediary
 Multiprogramming (multiple programs/jobs
sharing resources)
 Spooling and Timesharing
 UNIX
Fourth Generation

Personal Computing (1980-present)
 LSI
chips (Large Scale Integration)
 Cheap memory, disk space, processing, etc.
 DOS, Windows, Mac OS & X
 Distributed computing
 PDA/embedded-devices
Computer Hardware Review
Monitor
Bus

Components of a simple personal
computer
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 Tradeoff
Speed vs. Capacity

Typical memory hierarchy
 numbers
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
memory
 Code
(typically static)
 Data (volatile)
Limit
Base
Limit
Base
Limit
Base
User 2 Data
User 1 Data
Program Code
OS
Multiple Processes in Memory
One base-limit pair and two base-limit pairs
Protection 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:
 Controller
 Device
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)
(a)
(b)
Steps in starting an I/O device and
getting interrupt
How the CPU is interrupted
(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 A
Has resource 1
Waiting on resource 2
Process B
Has 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
independent
 Device dependent (device drivers)
Files

System calls
 Create,

remove, read, write, etc.
Directories & subdirectories
 Create,
remove, rename, move, etc.
Security

Allocate permissions
 Directories
 Files

Example UNIX policies to consider:
 Read,
Write, Execute
 User, Group, World
System Calls
Services that the OS provides to the user
 Set of API that user-level programs may
invoke


Flavors of System Calls
 UNIX
 Win32
UNIX System Calls
pid = 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(…)
ExitProcess(…)
CreateFile(…)
CreateDirectory(…)
creates new process
terminates process
opens file
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 userlevel 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
1.1 – 1.5
 Sections 1.9 – 1.11
 Sections
Quiz on Chapter 1, above sections
 Homework #1 due on
Wed, Jan 17 11:30 pm
