Operating Systems


An operating system is the program that manages all the application programs in a computer system. This also includes managing the input and output devices, and assigning system resources.

Operating systems evolved as the solution to the problems that were evident in early computer systems, and coincide with the changing computer systems. Three cycles are clear in the evolution of computers, the mainframe computers, minicomputers and microcomputers, and each of these stages influenced the development of operating systems.

Now, advances in software and hardware technologies have resulted in an increased demand for more sophisticated and powerful operating systems, with each new generation able to handle and perform more complex tasks. The folowing report examines the development of operating systems, and how the changing tehcnology shaped the evolution of operating systems.

First Generation Computers (1945﷓1955)

In the mid﷓1940's enormous machines capable of performing numerical calculations were created. The machine consisted of vacuum tubes and plugboards, and programming was done purely in machine code. Programming languages were unheard of during the early part of the period, and each machine was specifically assembled to carry out a particular calculation.
These early computers had no need for an operating system and were operated directly from the operator's console by a computer programmer, who had immediate knowledge of the computers design.

By the early 1950's punched cards were introduced, allowing programs to be written and read directly from the card, instead of using plugboards.

Second Generation Computers (1955﷓1965)

In the mid﷓1950's, the transistor was introduced, creating a more reliable computer. Computers were used primarily for scientific and engineering calculations and were programmed mainly in FORTRAN and assembly language.

As computers became more reliable they also became more business orientated, although they were still very large and expensive. Because of the expenditure, the productiveness of the system had to be magnified as to ensure cost effectiveness. Job scheduling and the hiring of computer operators, ensured that the computer was used effectively and crucial time was not wasted.

Loading the compliers was a time consuming process as each complier was kept on a magnetic tape, which had to be manually mounted. This became a problem particularly when there were multiple jobs to execute written in different languages (mainly in Assembly or Fortran). Each card and tape had to individually be installed, executed then removed for each program. To combat this problem, the Batch System was developed. This meant that all the jobs were grouped into batches and read by one computer (usually an IBM 1401) then executed one after the other on the mainframe computer (usually an IBM 7094), eliminating the need to swap tapes or cards between programs.

The first operating system was designed by General Motors for the IBM 701. It was called Input/Output System, and consisted of a small set of code that provided a common set of procedures to be used to access the input and output devices. It also allowed each program to access the code when finished and accepted and loaded the next program. However, there was a need to improve the sharing of programs, which led to the development of the SOS (Share operating system), in 1959. The SOS provided buffer management and supervision for I/O devices as well as support for programming in assembly language. Around the same time as SOS was being developed, the first operating system to support programming in a high﷓level language was achieved. FMS (Fortran Monitoring System) incorporated a translator for IBM's FORTRAN language, which was widely used as most programs where written in this language.

Third Generation Computers (1965﷓1980)

In the late 1960's IBM created the System/360 which was a series of software compatible computers ranging in different power of performance and price. The machines had the same architecture and instruction set, which allowed programs written for one machine to be executed on another. The operating system required to run on this family of computers has to be able to work on all models, be backwards compatible and be able to run on both small and large systems. The software written to handle these different requirements was OS/360, which consisted of millions of lines of assembly language written by thousands of different programmers. It also contained thousands of bugs, but despite this the operating system satisfactory fulfilled the requirements of most users. A major feature of the new operating system was the ability to implement multiprogramming. By partitioning