Table of Contents
Evolution Of Operating System
An operating system may process its task serially or concurrently. It means that the resources of the computer system may be dedicated to a single program until its completion or they may be allocated among several programs in different stages of execution. Due to different processing techniques, the operating systems are classified into different categories.
-
Serial Processing System
In early computer systems, the programming was performed in 1’s and 0’s, i.e., Machine language. The translators and data were needed to be fed into the computer system through the input devices.
The programs are first loaded into the register of the computer system. Then address of the first instruction of the program is fetched. The result is examined by the contents of various registers and memory locations of the machine. This type of programming causes the low utilization of machines and users.
The program started being coded into the programming language are first changed into the object code by translator. Then this code is automatically loaded into memory by another program called loader. Now the execution of the program begins and the result is produced. This type of processing uses a fixed sequence of tasks to do, hence the name Serial Processing System.
-
Batch Processing System
The next logical stage after the serial processing system was the batch processing system. Before we discuss batch processing systems, let us discuss single program operating system and multiple program operating systems.
Single program operating system allows only one program to run at a time. This implies that if you are working in a spreadsheet and want to write a letter, you must shut down the spreadsheet application and open up a word processor.
Gradually new operating systems were designed that allowed multiple programs to run at the same time. The simplest form of this is multi-tasking. It allows a single user to have the spreadsheet and the word processor open at the same time, and even more. Now the user can see to copy data from one to the other.
A batch processing system is one in which jobs are bundled together with the instructions necessary to allow them to be processed without intervention. Often jobs of a similar nature can be bundled together to further increase the economy. Executing series of non-interactive jobs all at one time is called batch processing.
The term batch processing originated in the days when users entered programs on punch cards. A punched card is basically a piece of cardboard, which has holes in it to represent a set of machine code instructions in binary. They would give a batch of these programmed cards to the system operator, who would feed them into the computer. Batch jobs can be stored up during working hours and then executed during the evening or whenever the computer is idle [free].
Batch processing is particularly useful for operations that require the computer or peripheral – devices for an extended period of time. Once a batch job begins, it continues until it is done or until an error occurs. Note that batch processing implies that there is no interaction with the user while the program is being executed.
An example of batch processing is the way that credit card companies process their billing. The customer does not receive a bill for each separate credit card purchase but they get one monthly bill for all of that month’s purchases. The bill is created through batch processing, where all of the data are collected and held until the bill is processed as a batch at the end of the billing cycle. At the end of the month, the operator has to feed the program into the computer. Remember that he/she may have a few programs to run, so what he/she will do is wait until he/she has a batch of programs to run. Let us imagine that in the batch he has a FORTRAN program and a COBOL program to run from punched cards.
He/she will place the cards in a tray that feeds the cards into the computer. However the cards will not indicate which language the program is in, so he/she places before the FORTRAN program several special cards that identify the program to the computer. He/she also put cards at the end of the program to indicate that there is no more card left. This entire task is called a job.
The operator has ended up with is a batch of jobs to feed into the computer. The special cards that the operator adds are part of another language that the computer understands is called the Job Control Language or JCL for short. The JCL has commands that indicate the start and end of jobs, which language program needs, what resources it requires [printers etc.], who wrote the program, who needs to be billed, and many more.
This process of creating jobs and feeding them one after each other into the system is called batch processing and is still common today. When the cards were fed into the system, the computer would then look at each card in turn and decide what action to take.
Advantage Of Batch Processing System
-
- Move much of the work of the operator to the computer.
- Increased performance since it was possible for the job to start as soon as the previous job finished.
Disadvantage Of Batch Processing System
-
- Turn-around time [total time taken in a job completion] can be long from user standpoint.
- More difficult to debug programs.
- Due to lack of protection scheme, one batch job can affect pending jobs [for example, reading too many cards, etc.].
- A job could corrupt the monitor, thus affecting pending jobs.
- A job could enter an infinite loop.
Spooling Batch Processing Systems
One difficulty with simple batch systems is that the computer still needs to read the deck of cards before it can begin to execute the job. This means that the CPU is unused [or nearly so] during these relatively slow operations.
Since, it is faster to read from a magnetic tape than from a deck of cards, it became common for computer centers to have one or less powerful computers in addition to their main computer. The smaller computers were used to read decks of cards onto a tape so that the tape would contain many batch jobs. This tape was then loaded on the main computer and the jobs on the tape were executed. The output from the jobs would be written to another tape which would then be removed and loaded on a less powerful computer to produce any hardcopy or other desired output.
Since, the computer can now perform IO in parallel with computation, it became possible to have the computer read a deck of cards to a tape, drum, or disk and to write out to a tape printer while it was computing. This process is called SPOOLING: “Simultaneous Peripheral Operation On-Line”.
Spooling batch systems were the first and are the simplest of the multiprogramming systems.
One advantage of spooling batch systems is that the output from jobs is available as soon as the job is completed, rather than only after all jobs in the current cycle were finished.
-
Multiprogramming System
Multiprogramming Systems [1960s - present]; Multiprogramming means sharing resources between more than one program’s device. It requires several programs to reside in memory at the same time. Since, several processes are to be kept in memory at the same time, these require some form of memory management.
As technology advanced, then serially processing the jobs soon became a handicap. What really was needed a mean by which more than one job [program] can be held in memory at a time, with the OS switching between them. This would then speed up the time a batch could be processed. The only real limitation would be the size of memory.
As machines with more and more memory became available, it was possible to extend the idea of multiprogramming as used in spooling batch systems to create systems that would load several jobs into memory at once and cycle through them in some order, working on each one for a specified period of time. The Multiprogramming Operating System was born for implementing such idea. Suppose three programs in memory, two are FORTRAN programs and the third is a COBOL program. The former requires a FORTRAN compiler and the latter a COBOL compiler. Instead of loading the FORTRAN compiler twice into memory, the OS only loaded it once and shared it between the two tasks. This is called Multitasking [different tasks being run by the same program]. Such OS is called a Multiprogramming-Multitasking Operating System. However, the term Multitasking Operating System normally means the same thing nowadays.
Related Posts
Memory And Storage Devices: Semiconductor (Main) Memory
Memory And Storage Devices: Magnetic Memory
Memory And Storage Devices: Optical Memory
Input And Output Devices
Classification Of Software