250 likes | 268 Views
Chapter 0: Historical Overview. Chapter 1: Introduction & Historical Overview. What is an Operating System? Program library Environment Resource Manager Command Interpreter Government Control Program “Wizard” Purposes of an Operating System Ease of Use Efficiency
E N D
Chapter 1: Introduction & Historical Overview • What is an Operating System? • Program library • Environment • Resource Manager • Command Interpreter • Government • Control Program • “Wizard” • Purposes of an Operating System • Ease of Use • Efficiency • Historical Development • Phase 1 Computers are Expensive, People are Cheap • Phase 2 Computers are Cheap, People are Expensive
What is an Operating System ? • A program or series of programs that act as the intermediary between the user and the hardware • A program that provides an environment in which users can execute a program • A resource manager which provides ease of use and efficiency • A command interpreter, acting as a translator between the user and the machine
An OS can be viewed as: • A Government- providing an environment in which other programs can do work • A Resource Allocator - managing the resources of the system efficiently • A Control Program - managing user programs to prevent errors and improve efficiency • A “WIZARD” creating illusions
Purposes of an OS • Primary Goal: • convenience to the user • Secondary Goal: • efficient use of hardware
HISTORY "Operating System" is a hard term to define. • There were problems and operating systems arose to solve those problems. • We can understand operating systems through understanding their historical development.
HISTORY Part I (roughly 1950's to mid 1970's) Idea that drove operating systems: • Computers were expensive and people were cheap. • Goal: make more efficient use of the hardware and get users farther from the machine.
HISTORY • Early Systems 1) Bare Machine: In the beginning there was only hardware! • Programs were written, debugged and operated run from the main console of the computer. • (Everything had to be translated directly into binary.)
HISTORY • Bare machine • a) Hands-on and totally interactive: • Programmers were also computer operators. • Users work at console one user at a time. • A reservation system was set up to reserve time for using the machine.
HISTORY • b) Programs were loaded manually from memory (by setting switches, paper tape, punched cards, etc.) • c) Programs were started by loading the program counter with the address of the first instruction. • d) Operator monitored the execution by watching the console. If errors arose, he/she could halt the program, examine and debug right from the console. • I/O was controlled by the program
HISTORY Problems: • Low productivity for user and hardware. • 1) Single user • 2) Low utilization (no overlap of computation and I/O) (e.g. Suppose you sign up for 1 hr. and program runs in 35 minutes- machine is idle for rest of the hour. On the other hand- if you encounter a bug, you may not complete in an hour and have to pack up and start all over at another time.)
HISTORY 2. Development of Hardware and Software • Card readers, line printers and tape drives, assemblers, linkers, loaders and device drivers were designed to ease programming task. • Linkers -linked code with common library subroutines • Loaders- automated the process of loading the program into memory • Device drivers- (each different I/O device had its own set of instructions) code was written containing the settings for buffers, flags, registers, control bits, etc.
HISTORY • Compilers for different languages were developed • made programming easier, but computer operation more complex: 1) Compiler had to be loaded 2) Program compiled and its output assembled 3) Then it was linked with library routines and finally 4) Loaded into memory and executed.
HISTORY Problem: • This required more set-up time,since different compilers were needed for each language. • If an error occurred- had to start all over again.
HISTORY • I/O routines- used by most programs were eventually developed into a set of precompiled routines and libraries which the linker could combine with users code.
HISTORY • Batch Processing • Operator became distinct from user. • Manual set up wasted too much time and left very expensive computers idle too long (costly) • Aim - to increase utilization and productivity
HISTORY • Batch Processing (continued) a) Hired professional computer operators - start one job immediately after another - decrease idle time and set up time - debugging was more difficult: operator could not debug program; a memory dump was printed and given to programmer
HISTORY b) Jobs with similar needs were batched together (eg. FORTRAN,COBOL,FORTRAN... All Fortran programs run first, then reset to run COBOL) - eliminated unnecessary set-up. PROBLEM: • CPU still sat idle while operator analyzed why program stopped, dumped memory and restarted computer with next job.
HISTORY • Automated job sequencing • - procedure for automatically transferring control from one job to another • -beginnings of what is now called an operating system.
HISTORY Problems: - No idea of protection (programs and data could overwrite one another in memory). - Made better use of the hardware, but hard on user who needed to debug a program.
HISTORY 4)Off-Line Operation - allows the overlap of CPU and I/O operations by executing these two actions on two separate machines 5) Buffering and Spooling -Buffering overlaps the I/O of one job with its own computations - Spooling- (Simultaneous Peripheral Operation On-Line)
HISTORY Part II (roughly late 1970's to present) • IDEA: Hardware is cheap and people are expensive • 1950’s1990’s - 2000’s • Machine- $1 million Machine < $10,000 • Programmer- $10,000 Programmer- $100,000
HISTORY • Multiprogramming (shared cpu) - several jobs in memory at once. ( See lawyer analogy p 16.) • Interactive timesharing (multitasking) • Parallel Systems - (Multiprocessing) • contain multiple processors ( CPUs) • require code to be written modularly
HISTORY • Real-Time Systems - have well-defined time constraints - processing MUST be done within the time constraints or the system fails a) hard –guarantees tasks completed on time b) soft – critical task gets priority over another task - data stored in ROM, very limited secondary storage - virtual memory rarely included Examples?