Operating systems have been developed over the past 40 years for the two main purposes.
1) OS attempt to schedule computational activities to ensure the good performance of the computing system
2) They provide a convenient environment for the development & the execution of programs
Initially; computer systems were used from the front console.
Software such as assemblers, loaders, linkers & Compilers improved the convenience of programming the system, but also require the substantial set up time.
To reduce the set-up time, facilities hired operators & batched similar jobs.
Batch systems allowed automatic job sequencing by a resident operating system & greatly improve the overall utilization of computer. The computer no longer had to wait for human operation CPU utilization was still low, however because of the low speed of IO devices relative to that of the CPU.
Off-line operation of slow devices provides a mean to use multiple reader-to-tape & tape to system printers for one CPU.
Spooling allows the CPU to overlap the input of one job with the computation & output of other jobs.
To improve the overall performance of the system, developers introduce the concept of multiprogramming.
With multiprogramming several jobs are kept in memory at one time; the CPU is switched back & forth among them to CPU utilization & to decrease the total time needed to execute the jobs.
Multiprogramming which was developed to improve performance, also allow time sharing. Time shared operating system allow many users (from one to hundred) to use a computer system interactively at the same time.
Personal computer systems are microcomputers that are considerably smaller & less expensive that are mainframe system.