* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download History of Operating Systems
		                    
		                    
								Survey							
                            
		                
		                
                            
                            
								Document related concepts							
                        
                        
                    
						
						
							Transcript						
					
					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