Upload
herbert-edwards
View
215
Download
1
Embed Size (px)
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