Operating systems (OS) provide a set of functions needed and used by most application programs on a computer, and the linkages needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity. THE 1ST GENERATION (1950’s)
The operating systems of the 1950s were designed to smooth the transition between jobs. Before the systems were developed, a great deal of time was lost between the completion of one job and the initiation of the next. This was the beginning of batch processing systems in which jobs were gathered in groups or batches. Once a job was running, it had total control of the machine. As each job terminated (either normally or abnormally), control was returned to the operating system that "cleaned up after the job" and read in and initiated the next job. Examples include: 1.1956, GM-NAA I/O: This early OS was primarily designed to automatically switch to the next job once its current job was completed. It was used on about forty IBM 704 mainframes
THE 2ND GENERATION (early 1960’s)
The second generation of operating systems was characterized by the development of shared systems with multiprogramming and beginnings of multiprocessing. In multiprogramming systems several user programs are in main storage at once and the processor is switched rapidly between the jobs. In multiprocessing systems, several processors are used on a single computer system to increase the processing power of the machine. Device independence began to appear. In first generation systems, a user wishing to write data on tape had to refer to a particular tape drive specifically. In second generation systems, the user program specified only that a file was to be written on a tape drive with a certain number of tracks and a certain density. The operating system located an available tape drive with the desired characteristics and instructed the operator to mount a tape on that drive. Timesharing systems were developed in which user could interface directly with the computer through typewriter like terminals. Time sharing systems operate in an interactive or conversational mode with users. The user types a request to the computer, the computer processes the request as soon as it can (often within a second or less), and a response (if any) is typed on the user's terminal. Conversational computing made possible great strides in the program development process. A timesharing user could locate and correct errors in seconds or minutes, rather than suffering the delays, often hours or days, in batch processing environments Real-time systems emerged in which computers were used to control industrial processes such as gasoline refining. Military real-time systems were developed to monitor thousands of points at once for possible enemy air attacks. Real-time systems are characterized by supplying immediate response. For example, a measurement from a gasoline refinery indicating that temperatures are getting too high might demand immediate attention to avert an explosion. Real-time systems are often heavily underutilized it is far more important for such system to be available when needed and to respond quickly than it is for them to be busy a large portion of the time. This fact helps explain their great cost. Examples of 2nd generation operating systems include: 1.1961, MCP (Master Control Program): Developed by Burroughs Corporations for their B5000 mainframe. MCP is still in used today by the Unisys Clear Path/MCP machines.
THE 3RD GENERATION (mid 1960’s – mid 1970’s)
The third generation of operating systems effectively began with the introduction of the IBM system/360 family of...