Batch Systems (1950s)


Before the 1950s, computers where built for specific purposes. In the 1950s, general-purpose computers such as EDVAC were built but this type of computers where just for single users. The situation was such that only a user can use the computer at a particular time (normally allocated), which is particularly time wasting. This led to the introduction of Batch processing systems, in which case jobs (from different users) has to be processed in batches to reduce the computer idle time.
Users submit jobs on punched cards and these jobs are processed in batches and at the end of the processing, the users may retrieve the processed job.
A monitor, which is a sort of operating system, interprets the instructions on the card or tape and implements the job in sequence. This monitor is called a resident monitor and it resides in computer memory on a permanent basis.

Advantages and Disadvantages
Some of the advantages of this system are that it could execute a batch of job at a time: once a batch of job has been completed the next one starts and this reduced computer idle time.
However a major disadvantage is that the user could not interact with the computer directly.
Programs were still difficult to debug and prone to corruption and errors, this is because there was no protection scheme that could prevent jobs from corrupting the monitor or entering into infinite loops.
Since there were no time limits assigned to a batch of job, it may end up running too many cards and thereby delaying other jobs.
To solve this problem, a protection system was introduced. The memory space was protected in such away that the user programs could no longer corrupt the resident monitor.
The computer was built in such away that it ran in two modes; the monitor mode and the user program mode and the I/O could only run within the monitor mode, this eliminated job corruptions.
Also a timer was introduced, in which case a time is allotted for a job to be processed. When the Job has been executed, control is returned to the resident monitor.

Spooling Batch systems (Mid 1960s)


In the middle of 1960s, the spooling batch system was introduced.
The full meaning of Spooling is Simultaneous Peripheral Operation Online.
Cards are read into magnetic tapes to eliminate CPU idle time. The tapes could hold many batch jobs at a time, and this is transferred into the computer for processing.
After the jobs have been executed, the jobs are transferred into another tape for further processing; this is an input and output operation.
The timer idea which allowed a job to be processed for a given period of time, before been interrupted for other operations to take place was been used.
The spooling batch system made it possible for the computer to perform an input /output operation while the central processor unit is working on a process.

Advantages and Disadvantages
A major advantage of this method was that the user does not have to wait until all jobs are processed before accessing a completed job.
A disadvantage is that the punch cards were still in use.

Multiprogramming Systems (1960s to present)


The multiprogramming system at the early stage continued to use a monitor which was gradually performing the functions of the present day operating system. It became possible to run many user programs in the memory at the same time.
Multiprogramming was also an improvement of the spooling batch system, in which case several jobs could be loaded into the memory at once.
It was therefore possible to partition the memory so that several works could be processed at the same time. Job where now being called processes.
The control of the CPU could be switch between these jobs.
These are of two types; the background job and the foreground job. The background jobs are the CPU bound process and the foreground jobs are the I/O bound processes. Priority is usually given to the foreground jobs.
Monitor started to function more like a modern operating system.

Timesharing Systems (1970s - present)


The idea of multiprogramming was extended to include timesharing. It became a multi-user system, in which case many monitors (known as terminals) were attached to a main computer and this allowed many users to work at the same time. Examples of timesharing systems are VAX/VMS computers and UNIX workstations. Timesharing system which is also known as time slicing, works in such away that the processor switches between jobs.

Personal Computers (1980s to present)


The introduction of personal computers in the 1980s allowed users to communicate directly with the computers more than before.
Software were developed for the PC systems, this includes AMSTRAT and BBC micro on tape, the DOS operating system, real time systems, network operating systems such as Novell and UNIX.
Novell and UNIX are examples of multiprocessing systems.
Multiprocessing system are systems that have more than one central processing unit. Multiprocessing system are usually network or distributed systems.
Network system are a number of computers connected together while distributed systems are a number of computers connected together but are also visible to the user.
Dedicated computers are examples of real time computers. These computers are used for special purposes and they perform one or more task.
Also multiprocessing system can also handle distributed network such as the Internet.