Presentation is loading. Please wait.

Presentation is loading. Please wait.

EVOLUTION OF OPERATING SYSTEMS. Systems Today and The Future Principles of Operating Systems - Lecture 1 2.

Similar presentations


Presentation on theme: "EVOLUTION OF OPERATING SYSTEMS. Systems Today and The Future Principles of Operating Systems - Lecture 1 2."— Presentation transcript:

1 EVOLUTION OF OPERATING SYSTEMS

2 Systems Today and The Future Principles of Operating Systems - Lecture 1 2

3 History of Operating Systems Computers were using vacuum tube technology. ENIAC’s vacuum tubes

4 OS history In the very beginning… –OS was just a library of code that you linked into your program; programs were loaded in their entirety into memory, and executed –interfaces were literally switches and blinking lights And then came batch systems –OS was stored in a portion of primary memory –OS loaded the next job into memory from the card reader job gets executed output is printed, including a dump of memory repeat… –card readers and line printers were very slow so CPU was idle much of the time (wastes $$)

5 1.2 History of Operating Systems ENIAC’s backside

6 History of Operating Systems Programs were loaded into memory manually using switches, punched cards, or paper tapes. ENIAC : coding by cable connections

7 1.2 History of Operating Systems punch card

8 1.2 History of Operating Systems Paper tape

9 Early Systems - Bare Machine (1950s) Structure Large machines run from console Single user system –Programmer/User as operator Paper tape or punched cards Early software Assemblers, compilers, linkers, loaders, device drivers, libraries of common subroutines. Secure execution Inefficient use of expensive resources Low CPU utilization, high setup time.

10 Simple Batch Systems (1960’s) Reduce setup time by batching jobs with similar requirements. Add a card reader, Hire an operator –User is NOT the operator –Automatic job sequencing Forms a rudimentary OS. –Resident Monitor Holds initial control, control transfers to job and then back to monitor. –Problem Need to distinguish job from job and data from program.

11 Supervisor/Operator Control –Secure monitor that controls job processing Special cards indicate what to do. User program prevented from performing I/O –Separate user from computer User submits card deck cards put on tape tape processed by operator output written to tape tape printed on printer –Problems Long turnaround time - up to 2 DAYS!!! Low CPU utilization –I/O and CPU could not overlap; slow mechanical devices. IBM 7094

12 Batch Systems - Issues –Solutions to speed up I/O: –Offline Processing load jobs into memory from tapes, card reading and line printing are done offline. –Spooling Use disk (random access device) as large storage for reading as many input files as possible and storing output files until output devices are ready to accept them. Allows overlap - I/O of one job with computation of another. Introduces notion of a job pool that allows OS choose next job to run so as to increase CPU utilization.

13 Spooling Disks were much faster than card readers and printers Spool (Simultaneous Peripheral Operations On-Line) –while one job is executing, spool next job from card reader onto disk slow card reader I/O is overlapped with CPU –can even spool multiple programs onto disk/drum OS must choose which to run next job scheduling –but, CPU still idle when a program interacts with a peripheral during execution –buffering, double-buffering

14 Batch Systems – I/O completion How do we know that I/O is complete? –Polling: Device sets a flag when it is busy. Program tests the flag in a loop waiting for completion of I/O. –Interrupts: On completion of I/O, device forces CPU to jump to a specific instruction address that contains the interrupt service routine. After the interrupt has been processed, CPU returns to code it was executing prior to servicing the interrupt.

15 Multiprogramming Use interrupts to run multiple programs simultaneously When a program performs I/O, instead of polling, execute another program till interrupt is received. Requires secure memory, I/O for each program. Requires intervention if program loops indefinitely. Requires CPU scheduling to choose the next job to run.

16 Fig. Monoprogramming Fig. Multiprogramming

17

18

19

20

21

22 Timesharing Programs queued for execution in FIFO order. Like multiprogramming, but timer device interrupts after a quantum (timeslice). Interrupted program is returned to end of FIFO Next program is taken from head of FIFO Control card interpreter replaced by command language interpreter. Hardware – getting cheaper; Human – getting expensive

23 Timesharing (cont.) Interactive (action/response) –when OS finishes execution of one command, it seeks the next control statement from user. File systems online file system is required for users to access data and code. Virtual memory –Job is swapped in and out of memory to disk.

24 Personal Computing Systems Single user systems, portable. I/O devices - keyboards, mice, display screens, small printers. Laptops and palmtops, Smart cards, Wireless devices. Single user systems may not need advanced CPU utilization or protection features. Advantages: –user convenience, responsiveness, ubiquitous Hardware – cheap ; Human – expensive

25 Parallel Systems Multiprocessor systems with more than one CPU in close communication. Improved Throughput, economical, increased reliability. Kinds: –Vector and pipelined –Symmetric and asymmetric multiprocessing –Distributed memory vs. shared memory Programming models: –Tightly coupled vs. loosely coupled,message-based vs. shared variable

26 Parallel Computing Systems 26 Climate modeling, earthquake simulations, genome analysis, protein folding, nuclear fusion research, ….. ILLIAC 2 (UIllinois) Connection Machine (MIT) IBM Blue Gene Tianhe-1(China) K-computer(Japan)

27 Distributed Systems Distribute computation among many processors. Loosely coupled - –no shared memory, various communication lines client/server architectures Advantages: –resource sharing –computation speed-up –reliability –communication - e.g. email Applications - digital libraries, digital multimedia Hardware – very cheap ; Human – very expensive

28 Distributed Computing Systems Principles of Operating Systems - Lecture 128 Globus Grid Computing Toolkit Cloud Computing Offerings PlanetLab Gnutella P2P Network

29 Real-time systems Correct system function depends on timeliness Feedback/control loops Sensors and actuators Hard real-time systems - Failure if response time too long. Secondary storage is limited Soft real-time systems - Less accurate if response time is too long. Useful in applications such as multimedia, virtual reality.

30 Time Sharing - multiprogramming environment that's also interactive. Multiprocessing - Tightly coupled systems that communicate via shared memory. Used for scientific applications. Used for speed improvement by putting together a number of off-the-shelf processors. Distributed Systems - Loosely coupled systems that communicate via message passing. Advantages include resource sharing, speed up, reliability, communication. Real Time Systems - Rapid response time is main characteristic. Used in control of applications where rapid response to a stimulus is essential. OPERATING SYSTEM OVERVIEW Characteristics

31 Spooling Disks were much faster than card readers and printers Spool (Simultaneous Peripheral Operations On-Line) –while one job is executing, spool next job from card reader onto disk slow card reader I/O is overlapped with CPU –can even spool multiple programs onto disk/drum OS must choose which to run next job scheduling –but, CPU still idle when a program interacts with a peripheral during execution –buffering, double-buffering

32 Multiprogramming To increase system utilization, multiprogramming OSs were invented –keeps multiple runnable jobs loaded in memory at once –overlaps I/O of a job with computing of another while one job waits for I/O completion, OS runs instructions from another job –to benefit, need asynchronous I/O devices need some way to know when devices are done –interrupts –polling –goal: optimize system throughput perhaps at the cost of response time…

33 Timesharing To support interactive use, create a timesharing OS: –multiple terminals into one machine –each user has illusion of entire machine to him/herself –optimize response time, perhaps at the cost of throughput Timeslicing –divide CPU equally among the users –if job is truly interactive (e.g., editor), then can jump between programs and users faster than users can generate load –permits users to interactively view, edit, debug running programs (why does this matter?)

34 Timesharing MIT CTSS system (operational 1961) was among the first timesharing systems –only one user memory-resident at a time (32KB memory!) MIT Multics system (operational 1968) was the first large timeshared system –nearly all OS concepts can be traced back to Multics! –“second system syndrome”

35 Parallel systems Some applications can be written as multiple parallel threads or processes –can speed up the execution by running multiple threads/processes simultaneously on multiple CPUs [Burroughs D825, 1962] –need OS and language primitives for dividing program into multiple parallel activities –need OS primitives for fast communication among activities degree of speedup dictated by communication/computation ratio –many flavors of parallel computers today SMPs (symmetric multi-processors, multi-core) MPPs (massively parallel processors) NOWs (networks of workstations) computational grid (SETI @home)

36 Personal computing Primary goal was to enable new kinds of applications Bit mapped display [Xerox Alto,1973] –new classes of applications –new input device (the mouse) Move computing near the display –why? Window systems –the display as a managed resource Local area networks [Ethernet] –why? Effect on OS?

37 Distributed Systems Distributed systems to facilitate use of geographically distributed resources –workstations on a LAN –servers across the Internet Supports communications between programs –interprocess communication message passing, shared memory –networking stacks Sharing of distributed resources (hardware, software) –load balancing, authentication and access control, … Speedup isn’t the issue –access to diversity of resources is goal

38 Client/server computing Mail server/service File server/service Print server/service Compute server/service Game server/service Music server/service Web server/service etc.

39 Peer-to-peer (p2p) systems Napster Gnutella –example technical challenge: self- organizing overlay network –technical advantage of Gnutella? –legal advantage of Gnutella?

40 Embedded/mobile/pervasive computing Pervasive computing –cheap processors embedded everywhere –how many are on your body now? in your car? –cell phones, PDAs, network computers, … Typically very constrained hardware resources –slow processors –very small amount of memory (e.g., 8 MB) –no disk –typically only one dedicated application –limited power But this is changing rapidly!

41 Understanding Operating Systems 41 Brief History of Operating Systems Development 1940 1955 1965 1980 1990 First Generation Vacuum tube, single user, early operating systems Second Generation Job scheduling, JCL, faster I/O, spooling, batch, files Third Generation Shared processing, multiprogramming, virtual memory, DBMS Recent Developments Distributed computing, personal computers, high- speed communication, multi-media

42 Hardware Complexity Increases Principles of Operating Systems - Lecture 142 Moore’s Law: 2X transistors/Chip Every 1.5 years Moore’s Law From Berkeley OS course From Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 4th edition, Sept. 15, 2006 Intel Multicore Chipsets

43 Software Complexity Increases

44 People-to-Computer Ratio Over Time

45 The Amoeba Distributed Operating System Amoeba is a powerful microkernel-based system that turns a collection of workstations or single-board computers into a transparent distributed system. It has been in use in academia, industry, and government for about 5 years. It runs on the SPARC (Sun4c and Sun4m), the 386/486, 68030, and Sun 3/50 and Sun 3/60. At the Vrije Universiteit, Amoeba runs on a collection of 80 single- board SPARC computers connected by an Ethernet, forming a powerful processor pool. This equipment is pictured below. It is used for research in distributed and parallel operating systems, runtime systems, languages, and applications. April 1996 amoeba-support@cs.vu.nl The V8-SPARC processor pool at the VU.

46 Multics (Multiplexed Information and Computing Service) was a mainframe timesharing operating system begun in 1965 and used until 2000. Multics began as a research project and was an important influence on operating system development. The system became a commercial product sold by Honeywell to education, government, and industry. Multics was a prototype of a Computer Utility, providing secure computing to remote users at their terminals. Multicians still miss the elegant, consistent, and powerful programming environment; some Multics features are only now being added to contemporary systems. April 1996 amoeba-support@cs.vu.nl A project to create a software simulator for the Multics CPU has been started by Harry Reed. Volunteers are most welcome.a software simulator for the Multics CPU RESEARCH

47 47 Famous Remark “There is no reason anyone would want a computer in their home.“ –Ken Olson, president, chairman and founder of Digital Equipment Corp. - 1977

48 48 History of Operating Systems Bill Gates suggested IBM that they should look at CP/M (one of the the most successful OS for microcomputers at that time, by Gary Kildall) The biggest mistake of all: –Kildall refused to sign a non-disclosure agreement IBM went back to Bill Gates and signed a contract with him to write an OS for their new home computer MS-DOS was based on QDOS, the "Quick and Dirty Operating System" written by Tim Paterson of Seattle Computer Products, QDOS was based on Gary Kildall's CP/M Microsoft bought the rights to QDOS for $50,000

49 49 Famous Remark "I think there is a world market for maybe five computers." – Thomas Watson, chairman of IBM - 1943

50 50 History of Operating Systems Early MS-DOS was very primitive but later versions included advanced features taken from UNIX The early OS for microcomputers were based on users typing in commands from the keyboard Doug Engelbart from SRI invented the Graphical User Interface (GUI) with windows, icons, menus, and mouse.

51 51 Yet another Famous Remarks! "640K ought to be enough for anybody." –Bill Gates, 1981

52 52 History of Operating Systems Steve Jobs saw the value of GUI in a PC and developed the Apple computer with GUI (Apple Macintosh) in his garage. He is also the co-founder of Pixar which has created very successful animated films: Toy Story ; A Bug's Life; Toy Story 2; Finding Nemo; Monsters.

53 53 History of Operating Systems Microsoft developed a GUI-based system called Windows which originally ran on top of MS-DOS (just as a GUI to DOS) Windows 95 and 98 were real GUI based operating systems still based on 16 bit Intel assembly language Windows NT is 32-bit rewrite from scratch version of Windows 98. Windows 2000 (Windows NT version 5.0), Windows Me.

54 54 History of Computing http://www.computerhistory.org/ Hewlett Packard was founded in 1939 by David Packard and Bill Hewlett, Their first product, the HP 200A Audio Oscillator Walt Disney Pictures ordered eight of the 200B model to use during the creation of the movie “Fantasia.”


Download ppt "EVOLUTION OF OPERATING SYSTEMS. Systems Today and The Future Principles of Operating Systems - Lecture 1 2."

Similar presentations


Ads by Google