Batch

From Computer History Wiki
Jump to: navigation, search

Batch operating systems were the first OS's, and were common up to the 1980s or so; some are still running today. The essence of a batch OS is its lack of interaction with users; a job - a program, along with all its input data - is handed in to the system; when there is an opportunity, it is run; and any resultant output is provided back to the person who sumitted the job.

Origins

They were a development of the earliest stages of computer use, when magnetic tape drives were the principal secondary storage devices. Initially, users signed up for blocks of time on the computer; set-up, etc, meant that a lot of time on these rare and expensive machines was wasted.

An operational efficiency technique was adopted at an early stage: the programs and data of groups of jobs were collected onto magnetic tape; once a tape was full, it was mounted on a drive, and all the jobs on it were run, with the output being spooled to on another drive, to be printed on an off-line line printer later.

The time from when the job is submitted, to when the results are ready for the user, it called the 'turn-around'. That operational approachs unfortunately increased average turn-around times: it increased the efficiency of the computer (since tapes could be read a lot faster than punched card decks), but also increased the turn-around time considerably.

Development

The earliest batch OS's were not multi-tasking; each job ran to completion, before the next job started. However, this did not make efficient use of a system; while a job was waiting for I/O to complete, the rest of the system was idle.

Before interrupts were added, early computers did not have much of a choice; they had to spend a lot of time watching peripherals, waiting for them to complete an operation.

Once interrupts were available, multi-tasking was added, because having a mix of jobs running at any time is the best way to maximize the use of the system. However, this brought in other issues: e.g. in the earliest stages of this change, all jobs which were running at any time had to be resident in main memory together, which might not be possible. This also required the addition of security, so that a job which encountered a programing mistake could not damage other job(s).

With the advent of time-sharing and virtual memory, all modern OS's tend to have the capability to run jobs in batch mode, and so specialized batch OS's have now faded out.