Evolution of Operating System
Operating System
                 Course Code: 14B11CI511
Evolution(Types Of Operating Systems)
1.   Batch Processing
2.   Multiprogramming
3.   Multitasking
4.   Real Time
5.   Distributed System
Batch Processing
Batch processing is a technique in which an Operating System collects
 the programs and data together in a batch before processing starts.
Batch Processing                           (Contd..)
An operating system does the following activities related to batch
processing −
The OS defines a job which has predefined sequence of commands,
 programs and data as a single unit. Jobs with similar needs are
 batched together and executed through the processor as a group.
Operator sort jobs as a deck of punch cards into the batch with similar
 needs.
The OS keeps a number a jobs in memory and executes them without
 any manual information.
Jobs are processed in the order of submission, i.e., first come first
 served fashion.
When a job completes its execution, its memory is released and the
 output for the job gets copied into an output spool for later printing or
 processing.
Memory Layout of A Batch Operating System
Batch Processing                        (Contd..)
   Advantages
        In a batch job execute one after another saving time from
        activities like loading compiler
       During batch execution no manual intervention is needed
   Disadvantages
       Memory limitation
       Interaction input output devices directly with the CPU
Multiprogramming
   Sharing the processor, when
    two or more programs reside in
    memory at the same time, is
    referred as multiprogramming.
   Multiprogramming assumes a
    single shared processor.
    Multiprogramming increases
    CPU utilization by organizing
    jobs so that the CPU always has
    one to execute.
Multiprogramming
   In multiprogramming system, when one program is waiting for I/O transfer; there is another
    program ready to utilize the CPU. So it is possible for several jobs to share the time of the CPU.
Multiprogramming
An OS does the following activities related to multiprogramming.
   The operating system keeps several jobs in memory at a time.
   This set of jobs is a subset of the jobs kept in the job pool.
   The operating system picks and begins to execute one of the jobs in
    the memory.
   Multiprogramming operating systems monitor the state of all active
    programs and system resources using memory management programs
    to ensures that the CPU is never idle, unless there are no jobs to
    process.
Multiprogramming
Advantages
 High and efficient CPU utilization.
 User feels that many programs are allotted CPU almost
  simultaneously.
Disadvantages
 CPU scheduling is required.
 To accommodate many jobs in memory, memory
  management is required.
Techniques of Multiprogramming
   Appropriate program mix
       The kernel keeps a mix of CPU-bound and I/O-bound programs
        in memory, where
        A CPU-bound program is a program involving a lot of
        computation and very little I/O. It uses the CPU in long bursts
        —that is, it uses the CPU for a long time before starting an I/O
        operation.
       An I/O-bound program involves very little computation and a
        lot of I/O. It uses the CPU in small
       If two prog. arrive at same time one is iob and second is cb,
        Then which should execute first??
Multi Programming
Time-Sharing System(Multi Tasking)
Multitasking is when multiple jobs are executed by the CPU simultaneously
 by switching between them. Switches occur so frequently that the users may
 interact with each program while it is running.
   An OS does the following activities related to
    multitasking −
       The user gives instructions to the operating system or to a
        program directly, and receives an immediate response.
       These Operating Systems were developed to provide interactive
        use of a computer system at a reasonable cost.(Fast Response)
       As the system switches CPU rapidly from one user/program to
        the next, each user is given the impression that he/she has
        his/her own CPU, whereas actually one CPU is being shared
        among many users.
   Swapping :- The technique of temporarily removing a
    process from the memory of a computer system.
Real Time System
   Real-Time Application :- A program that responds to
    activities in an external system within a maximum time
    determined by the external system. Types of real time
    systems based on timing constraints:
   Hard Real Time
   Soft Real Time
Hard real time system –
   Hard real time system –
       This type of system can never miss its deadline. Missing the
        deadline may have disastrous consequences.
       The usefulness of result produced by a hard real time system
        decreases abruptly and may become negative if tardiness
        increases. Example: Flight controller system.
Soft real time system
   Soft real time system –
       This type of system can miss its deadline occasionally with
        some acceptably low probability. Missing the deadline have no
        disastrous consequences. The usefulness of result produced by
        a soft real time system decreases gradually with increase in
        tardiness.
   Example: Telephone switches.
Distributed Environment
   An interesting development that begins taking place during the
    mid 1980’s is the growth of network of personal computer
    running distributed operating system.
   In true distributed system, users should not aware of where
    their program are being run or where there files are located.
    That should be handled automatically and efficiently by the
    operating system.
   Distributed system allows program to run on several processor
    at the same time.
   Some of the examples of distributed os are ameaba, angle,
    mach etc.
Benefits of Distributed Operating Systems
Spooling
Spooling is an acronym for simultaneous peripheral
  operations on line. Spooling refers to putting data of
  various I/O jobs in a buffer. This buffer is a special area in
  memory or hard disk which is accessible to I/O devices.
   An operating system does the following activities related to
    distributed environment −
   Handles I/O device data spooling as devices have different data
    access rates.
   Maintains the spooling buffer which provides a waiting station
    where data can rest while the slower device catches up.
   Maintains parallel computation because of spooling process as a
    computer can perform I/O in parallel fashion. It becomes possible
    to have the computer read data from a tape, write data to disk and
    to write out to a tape printer while it is doing its computing task.