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