Full Transcript

Reference Books 1. Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System Concepts. Sixth edition. Addison-Wesley (2003). 2. Andrew Tanenbaum, Modern Operating Systems, Prentice Hall. 3. William Stallings, Operating Systems, Prentice Hall. 4. Harvey M. Deitel, An introducti...

Reference Books 1. Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System Concepts. Sixth edition. Addison-Wesley (2003). 2. Andrew Tanenbaum, Modern Operating Systems, Prentice Hall. 3. William Stallings, Operating Systems, Prentice Hall. 4. Harvey M. Deitel, An introduction to operating systems. Addison-Wesley. 5. Andrew Tanenbaum & Albert Woodhull, Operating Systems: Design and Implementation. 6. Prentice-Hall. 7. Douglas Comer, Operating System Design - The XINU Approach. Prentice-Hall. 8. A.M. Lister, Fundamentals of Operating Systems. Macmillan (1979). 7/26/2024 1 Evolution of OS Operating Systems have been evolving through the years. Generations of computers to see what their Operating Systems were like. Generations Year Electronic devices Types of OS and used devices First 1945-55 Plug Boards Second 1955-65 Batch Systems Third 1965-1980 Multiprogramming Fourth Since 1980 Personal Computers 7/26/2024 2 Evolution of OS Operating Systems have been evolving through the years. Generations of computers to see what their Operating Systems were like. Generations Year Electronic devices Types of OS and used devices First 1945-55 Vacuum Tubes Plug Boards Second 1955-65 Transistors Batch Systems Third 1965-1980 ICs Multiprogramming Fourth Since 1980 LSI Personal Computers 7/26/2024 3 Zeroth Generation First Digital Computer was designed by _____________(1792-1871) called__________. Design was purely mechanical (wheels, gears, cogs etc) Due to Unreliable design did not get popular. It did not have any Operating System. 7/26/2024 4 Zeroth Generation First Digital Computer was designed by Charles Babbage(1792-1871) called Analytical Engine. Design was purely mechanical (wheels, gears, cogs etc) Due to Unreliable design did not get popular. It did not have any Operating System. 7/26/2024 5 First Generation (1945-55) Vacuum Tubes & Plug boards Around 1940’s John Von Neumann and others developed Calculating Engine. Initially they used mechanical Relays but was very slow. Replaced by vacuum tubes. Machines were enormous, Entire Room Sized, With Tens of thousands of vacuum tubes. Still millions times slower than today’s cheapest PC. Programming was done in machine language. Often by wiring up the plug boards to control the machine’s basic functions. Programming languages were unknown. Operating systems were unheard of. 7/26/2024 6 First Generation Cont….. Programmers have to sign up for a block of time Come down to the machine room Insert his or her plug board into the computer. Spend the next few hours hoping that none of the thousands of vacuum tubes would burn out during the programs run. Just numerical calculations were performed. In 1950 punch cards were Introduced instead of plug boards. 7/26/2024 7 Second Generation (1955-65) Transistors and Batch Systems In 1950s Transistors were introduced. Computers were reliable enough to be manufactured and sold. Machines were called Mainframes, locked in a special air conditioned room with the professional operators to operate them. Only big companies or major govt. agencies or universities could afford the multimillion dollar price equipment. To run a job Write program on paper (FORTRAN or Assembler) then punch it on punch cards. Bring card deck to the computer room and hand it over to the operator. (Wait for Output) When Job gets finished, operator takes print out and brings to the output room and then programmer can collect it. 7/26/2024 8 Second Generation Cont…. During the Job if FORTRAN compiler needed then? Perform Next Job. Much Computer Time was wasted while Operators were moving around the machine room. High Cost Equipment, How to reduce the Wasted Time? Solution was Batch System. 7/26/2024 9 Batch System Idea was to collect a tray full of jobs in the Input room. Read Jobs onto a magnetic tape using a small inexpensive computer IBM 1401, was very good at reading cards, copying tapes & printing output. (was not good at numerical calculations) Other much more expensive machines, IBM 7904, were used for real computing. 7/26/2024 10 Batch System After about an hour of collecting a batch of Jobs, the tape was rewound and brought into the machine room, where it was mounted on a tape drive. The operator then loads special program (Ancestor’s of an OS (from the system tape)) which reads the first Job from tape & run it. O/P was written to second tape. OS automatically reads the next Job from the tape. When the Whole Batch was done, the operator removed the I/P & O/P tapes, replaced by next batch of I/P tape. Brought the O/P tape to a 1401 for printing. 7/26/2024 11 Batch Systems (1) Figure 1- An early batch system. (a) Programmers bring cards to 1401. (b)1401 reads batch of jobs onto tape. (c) Operator carries input tape to 7094. 7/26/2024 12 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Batch Systems (2) Figure 1-1. (d) 7094 does computing. (e) Operator carries output tape to 1401. (f) 1401 prints output. 7/26/2024 13 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Batch Systems (3) Figure 1-2. Structure of a typical FMS job. 7/26/2024 14 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Batch System It starts with $JOB card, specifying the max run time in minutes, the account number to be charged, and programmer’s name. $FORTRAN card, telling the OS to load the FORTRAN compiler from the system tape. Followed card is the program to be compiled. $LOAD card, directing the OS to load the object program just compiled (saved on a scratch card) $RUN card, telling the OS run the program with the data following it. Finally the $END card marked the end of Job. This generation largely used for Scientific and Engineering Calculations. Programming languages were FORTRAN and Assembly Language. Typical Operating Systems were FMS(FORTRAN MONITOR SYSTEM) and IBSYS(IBM’s Operating Systems for 7094). 7/26/2024 15 Third Generation (1965-80) ICs & Multiprogramming Around 1960’s Manufacturer had two distinct products in the market i.e. 7094( for numerical calculations) and 1401(for tape sorting & printing). Developing and Maintaining two diff. products was not possible for manufacturers. Customers were needed small machines but then they wanted a bigger machine which runs all programs but faster. IBM solved the problem by introducing OS/360. 360 was a series of S/W compatible machines ranging from 1401-sized to powerful 7094. They differed in Price and performance. All machines had the same architecture & Instruction set so programs written for one machine could run on all the others (Portability) 360 was designed to handle both Scientific and commercial computing. 7/26/2024 16 Third Generation Cont….. Single family had satisfied all the need of customers. IBM had came out with Successors of 360  370, 4300, 3080 & 3090 Series. 360 was the first computer to use the Integrated Circuits (ICs) Improving Price and Performance both compare to 2nd Generation. Descendants of these machines are still in used today at many computer centers Often used for managing huge databases (Airline Reservation Systems) , As servers for World Wide Web Sites( must process thousands of requests per second) Greatest strength was also the Greatest weakness. 7/26/2024 17 Third Generation Cont….. OS/360 had to work on all models. It had to run from small systems to large systems (replaced by 1401- 7904) It had to be good for few peripherals systems to many peripherals system. Had to work in commercial & scientific environments. Above all it had to be efficient for users. IBM could not make a s/w to meet all these requirements Result, was enormous and extraordinary complex OS Still OS/360 had satisfied customers need. Important feature or key technique was multiprogramming 7/26/2024 18 Multiprogramming Main Disadvantage of 2nd Generation , on 7094, when current Job paused to wait for a tape or other I/O devices operation to complete CPU simply set Idle until the I/O finished. To save Idle CPU time solution evolved was to partition memory into several pieces, with diff Jobs in each Partition. Figure 1-3 A multiprogramming system with three jobs in memory. 7/26/2024 19 Multiprogramming While One Job was Waiting for I/O to complete, another Job could be using the CPU. If enough Jobs could be held in Memory at once, CPU could be kept busy nearly 100% Multiple Jobs in Memory also require special H/W to protect each Job. 360 and others were equipped with this H/W. Though multiple Jobs in memory, it still has the problem. Still some problem Mechanical I/O is slower than Electronic Device CPU) In order to overcome the speed mismatch problem a technique called SPOOLING (Simultaneous Peripherals Operations Online) was Introduced. 7/26/2024 20 SPOOLING After sometimes, improvement in technology & Introduction of disks resulted in faster I/O devices. At the same time CPU speed was also increased to a greater extent due to change in their technology. Due to advent of Disk technology it allowed OS to keep all jobs on a disk rather than on a serial card reader. Whenever a running Job finished, the OS could load a new Job from the disk into the now-empty partition and run it. This technique is called Spooling and was also used for output. Card Reader I/P O/P Spool Spool Printer Reader Process Application Program Writer Process 7/26/2024 21 SPOOLING If several Jobs are ready to be brought into memory, and there is no enough room for all of them, then system must choose among them. Job Scheduling is required. Once Job is selected & loaded in memory, then having several program in memory at the same time requires having some form of Memory Management. If several Jobs are ready in memory then CPU Scheduling is required. 7/26/2024 22 Multiprogramming Advantages Multi-programmed batch systems provide an environment where the various System resources are utilized effectively.  CPU can be kept almost 100% busy, Memory management, I/O etc. Problems User cannot Interact with Job while it is executing.  User has to set up the control cards to handle all possible outcomes.  In a multi-step Job, subsequent steps may depend on the result of earlier ones.  The running of a program may depend on successful compilation.  Diff to define what to do in all cases. A Programmer can not modify a program as it executes.  A single comma mistake could cause a compilation to fail and programmer has to waste half a day in experimentation. Turnaround time was long. Solution is a Time-Sharing Systems. 7/26/2024 23 Time-Sharing Systems Time Sharing is a logical extension of Multiprogramming. Multiple Jobs are executed by the CPU switching between them, but the switches occur so frequently that the users may interact with each program while it is running. An interactive system provides online communication between user and the system. User gives instruction to OS or program & receives response directly. K/B is I/P and CRT is O/P OS finishes execution of one command & seeks next from K/B, user gives I/P & waits for response & decides the next command based on the previous result. User can easily experiment and can see results immediately. 7/26/2024 24 Time-Sharing Systems FEATURES Multiple users interacting with the system. CPU bound is divided into different time slots depending upon the no. of users. CPU switching is so fast that user feels that he is only working on the system. Multitasking System with the CPU scheduling and Multiprogramming to provide each user with a small portion of a time-shared system. Issues Due to complexity Memory mgmt is required. It must provide Job Synchronization and communication. It must ensure that Deadlock will not occur. 7/26/2024 25 Time-Sharing Systems First Time-Sharing System was CTSS (Compatible Time Sharing System) (1962). Then MULTICS (Multiplexed Information & Computing Services), to support hundreds of simultaneous user & huge machines. Another major development was the growth of Minicomputers, DEC PDP-1 in 1961, Series & last PDP-11. Ken Thompson developed UNIX system on PDP-7. System V from AT&T, BSD (Berkeley S/W Distribution) IEEE developed on standard called POSIX for UNIX. 1987 clone of UNIX called MINIX was released. Then Linus Torvald developed LINUX (free Version) 7/26/2024 26 Fourth Generation (1980-till present) Personal Computers With the development of LSI Circuits, chips containing thousands of transistors on a square centimeter of silicon, the age of personal computer (called Microcomputers) dawned. Microprocessor made it possible for an individual to have his or her own PC. 1974, Intel came out with 8080 PC. For OS Intel asked consultant Gary Kildal. They built a controller & 8-inch floppy disk was hooked up to the 8080. Disk based OS called CP/M (Control program for Microcomputers) Kildal formed a company Digital Research. Rewrote CP/M for 8080, Zilog Z80 & other CPU & used for micro computing for about 5 years. In 1980 IBM designed IBM PC & looked around for OS. 7/26/2024 27 Fourth Generation Cont…… IBM contacted Bill Gates to license his BASIC Interpreter & also asked for OS which runs on PC. Gates suggested for Digital Research. Kildal refused to meet IBM & even to sign up with IBM (Worst business decision in recorded history) IBM went back to Gates if he can provide them with an OS. Gates found local manufacturer, had a suitable OS DOS (Disk OS), met him and asked to buy it which they readily accepted ($50,000). Gates then offered DOS/BASIC package to IBM which IBM has accepted. IBM wanted certain modifications so Gates hired that person (Tim Paterson ) as an employee of Microsoft and new version of DOS called MS-DOS. Wise decision to offer as a package then to sell as an end user like CP/M. 7/26/2024 28 Fourth Generation Cont…… IBM PC/AT in 1983 came out with 80286 CPU with MS-DOS & CP/M was out. MS-DOS widely used on 80386,80486 families (XENIX). CP/M, MS-DOS & other OS were command based only. In 1980, Engelbart invented GUI complete with windows, icons, menus & mouse. Steve Job taken an idea from him and developed Macintosh for APPLE Computers. (1st attempt Lisa was failed), got huge success due to user- friendly features. Microsoft decided to build the successor of MS-DOS with GUI and they came up with WINDOWS (originally ran on top of MS-DOS like a shell than a true OS) 1985-1995, 10 yrs, Windows was just an environment on top of MS-DOS. In 1995, Win95, was released, using the underlying MS-DOS program only for booting and running old MS-DOS program. 7/26/2024 29 Fourth Generation Cont…… In 1998, win98 (16 bit OS) Win NT written from scratch (32 bit OS) Win NT 4 was released. Win NT 5 was renamed as win 2000. Window Millennium edition (Win ME). Another OS for PCs were UNIX, LINUX UNIX supported windowing System called X Windows. 7/26/2024 30 Network Operating System Another interesting development began in Mid 1980s is the growth of Networking of PCs NOS & DOS. In NOS, users are aware of the existence of multiple computers and can log into remote machines and copy files from one machine to another. Each machine runs its own local Operating System and has its own local user. NOS are not fundamentally different from single processor OS. They need NIC and some low level S/W to drive it and program to achieve remote login and remote file access. 7/26/2024 31 Distributed Operating System DOS, is one that appears to its users as a traditional uni-processor system. Even though it is actually composed of multiple processors. The users should not be aware of where their programs are being run or where their files are located. It is automatically and efficiently handled by the OS. DOS often allow applications to run on several processors at the same time. More complex processor scheduling algorithms in order to optimize the parallelism. 7/26/2024 32

Use Quizgecko on...
Browser
Browser