evolution of os

					                    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      Vaccum Tubes          Plug Boards

  Second       1955-65        Transistors        Batch Systems

   Third      1965-1980           ICs           Multiprogramming



  Fourth      Since 1980          LSI               Personal
                                                   Computers
                     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.
              First Generation (1945-55)
             Vacuum Tubes & Plugboards
• 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.
                  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.
             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.
           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.
                      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.
                       Batch System
• After about an hour of collecting a batch of Jobs, the 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.
                      Batch Systems (1)




                Figure 1- An early batch system.
               (a) Programmers bring cards to 1401.
               (b)1401 reads batch of jobs onto tape.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
                         Batch Systems (2)




   Figure 1-1. (c) Operator carries input tape to 7094.
(d) 7094 does computing. (e) Operator carries output tape to
                 1401. (f) 1401 prints output.
   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.
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).
               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.
                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.
                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
                      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.
                      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.
                           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
                          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.
                      Multiprogramming
• Problems
• Multiprogrammed batch systems provide an environment where the
  various System resources are utilized effectively.
• 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.
                   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.
                   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.
                 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)
         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.
               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.
              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.
               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.
               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.
              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.

				
DOCUMENT INFO
Shared By:
Tags: evolution
Stats:
views:174
posted:1/24/2012
language:English
pages:29
Description: evolution of os is the awesome , you must read it :P