What is Simple Batch Processing Operating System?
- Batch processing is one of the oldest method of running the programs.
- The computers in the past were very large in size and their I/O devices were very different from those that are used today. The job processing was not interactive as it is today.
- The users did not interact directly with computer system.
- The users prepare their job that consisted of the program, data and some control information. This job was usually in form of punched cards.
- The users submit their job to a computer operator. When a batch of programs have been collected, the operator loads this batch of programs into the computer at one time where they are executed one after the other.
- Finally, the operator retrieves the output of these jobs and return them to the concerned users.
- In this way many different jobs are processed, one after the other without any interaction from the users during program execution. In such a batch processing system, the various jobs of the users are collected in a queue. This process is known as spooling. Spooling is a short form of Simultaneous Peripheral Operations On Line.
- Spooling refers to putting jobs in a buffer (an area in a memory or disk) Such a data can be output to printer and other devices. Spooling is useful when device access data at different rates: In such a case buffer provides an area where data can rest until a slow device is ready to receive that data.
- The method of batch processing reduces the idle time of computer system because transition from one job to another does not require operator intervention. The batch processing operating system was called a monitor that resides in the main memory. Such a portion of main memory is known as resident monitor.
- The batch monitor executes batches of job at definite interval of time.
- The batch monitor accepts the commands for initializing, processing and terminating a batch.
- The monitor reads in the jobs one at a time from the input devices (typically a card reader or magnetic tape drive).
- As the job is read in, the current job is placed in the user program area, and control is passed to this job. When the job is completed, it returns control to the monitor, that immediately reads in the next job.
- The batch monitor executes the batches on the process of job scheduling that sequences different jobs on first come first served (FCFS) basis.
- Thus the purpose of monitor is to automatically transfer the control from one program to another in a batch.
- Such an operating system also provides the provision to set the priorities for different batch and the highest priority job is executed before other batches.
- The process scheduling, memory management, file management and I/O management functions are quite simple in batch processing system.
1. Process Scheduling (i.e. allocation strategy for a process to a processor is typically in order of their arrival i.e. First Come First Served (FCFS) basis.
2. Memory Management is done by dividing the memory into two areas. One portion or partition is occupied by resident monitor and the other portion is dynamically used to load the transient programs for execution. The memory space vacated by one program upon its completion is then allocated to other transient program.
3. I/O Management. Since only one program is executed at a time, there is no contention for I/O devices. Thus the allocation and deallocation for the I/O devices is very trivial.
4. File Management. Access to the files is done on serial basis. Also, only one program access the files at a particular time, so there is hardly any need to provide access control or concurrency control mechanisms.
Advantage of Batch Processing Operating System
- Batch processing is particularly useful for operations that require the computer or a peripheral device for an extended period of time with very little user interaction.
- Increased performance as it was possible for job to start as soon as previous job is finished without any manual intervention.
- Priorities can be set for different batches.
Disadvantages of Batch Processing Operating System
- No interaction is possible with the user while the program is being executed. User have no control over intermediate result of a program. This results in creating inflexible software.
- It reduces timeliness in some cases. The time required to accumulate data into batches, in some cases, destroy much of the value of the data. The information that results from eventual processing is no longer timely.
- The batch processing operating system has high turnaround time. Turnaround time is the time taken between the submitting the job and getting the output, which includes the batch formation and its execution.
- In batch processing, it is difficult to provide the desired priority scheduling. For example, if two high priority jobs were to be run but were in separate batches, one would have to wait until the other’s batch was completely processed.
- Only single user process is a sole occupant of the entire user area of memory. As a result both memory and CPU are under utilized.
- It is difficult to debug a program i.e. a programmer cannot correct bugs the moment it occurs. Moreover, debugging was feasible only offline and it used to be very time consuming.
- A job could enter an infinite loop.
- A job could corrupt the monitor thus affecting pending jobs.
- As this system does not use any memory protection scheme, one job in a batch can affect other pending jobs.