Computer hardware provides us with the mean of processing and storing of information. However, the “bare” machine on its own is virtually useless. In order to make computer perform useful work for us, it has to be “driven” by means of program software which specify the tasks to be done. The combination of hardware and software provide a total useable system. Software can be classified into two distinct groups: system software and application software.
Application software, as the name suggests, consist of the programs which carry out the specific processing required for the users applications, such as an accounting system or an engineering computer-aided design package. System software is not application specific; it is oriented to the needs of the hardware and facilities the development and running of applications. The most significant part of system software is the operating system, which is present in all the computers except for a few very specialized applications.
The role of the operating system is to complement of the hardware by providing a layer of the services which manage the resources of the hardware and permit the users to drive the system. In general, the user will not be aware of the union in effort. Indeed, many computer facilities could be implemented by either hardware or software, a common example being floating point processing. The situation is further complicated by the existence of firmware which a program encoded in the form of hardware, usually in Read- Only-Memory (ROM). Firmware is often used to provide very basic services at a functional level just above the hardware.
Operating-System Objectives and Functions
An operating system is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware. An operating system can be thought of as having three objectives or performing three functions;
1. Convenience: An operating system makes a computer more convenient to use.
2. Efficiency: An operating system allows the computer system resources to be used in an efficient manner.
3. Ability to Evolve: An operating system should be constructed in such a way as to permit the effective development, testing, and introduction of the new system functions without at the same time interfering with services.
History and Evolution of Operating System
The evolution of the operating system has been driven by technological advances and by the demands and expectations of the users. An example of this evolutionary process helps us to understand the working of modern systems and to better appreciate their essential principles.
The very earliest computers, provided little in the way of support for their users: switches and lights were the first input and output devices. Programs were entered by using a set of switches to define a memory address value, then using another set of switches to specify an instruction word which was then entered into the memory location. This was repeated for each word of the program. The program was started by setting the program counter to the first instruction word and pressing a start button. The first step toward improving and simplifying a computer use was to address the problem of loading the pr6gram.
Reducing the human involvement in this process implied preparing the program in some offline form, then transferring this into the computer memory via an input device such as. a card or paper tape reader.
In order to read from a card or paper tape reader, a loader program had to be established in the computer memory. In the first place, which prompts the question-how do you load the loader! One solution, of course, is simply to enter the loader manually, as before. However the idea was born of building into the computer a facility whereby, on startup, the computer automatically read a primitive loader program written on, for example, a single card. This basic loader then executed and read in a larger, more extensive, loader program, which could then load any user program. This arrangement then referred to as boot strapping derived from the idea of pulling oneself up by the bootstraps; the technique and the term survive to the present day, although bootstrapping is generally reduced now-a-days to booting.
In the 1950s computer were very expensive, certainly in the relation to their throughput measures in today’s term. The early pre-occupation, therefore, was to get as much use out of them as possible. This drive toward 100% utilization of the processor has not entirely disappeared today but is now much less important than usability and peak processing power.
As the hardware steadily improved, the execution time of programs fell. This trend has two very critical consequences, which were to span on rap [id development of early operating systems:
The set up time-i.e. the time between jobs spent loading the next program and data-become disproportionate to the run time of the job.
The input-output devices were seen to be much slower than the processor speed.
The processor spent most of its rime idle, waiting for a card to be reader punched or a character to be printed.
Around 1960s, a revolutionary new computer, called ATLAS, was designed by a team from Manchester University and the Ferrants Company, This is reputedly the first computer to be designed with the requirements of an operating system in mind. Atlas introduced many more features including interrupts and a virtual memory system. While the idea of the virtual memory took some time to make a broad impart, the interrupt mechanism made in immediate impression in computer and operating system design, since it made the job of managing several programs and peripheral devices simultaneously much easier. It made it possible for the operating system to oversee the progress of several programs and I/O activities simultaneously. In 1964s, IBM produced the system 360 series of computers, which consequently evolved into system 370 and then 333X machines in use today. This range of computers has probably been the most significant in computing history, not so much from a technological point of view, but because it provided a wide range of computing facilities-within a compatible series of machines, supported by the manufacturer through many revision and enhancements.