Generations of operating systems
Operating systems, like computer hardware, have undergone a series of revolutionary changes called generations. In computer hardware, generations have been marked by major advances in componentry from vacuum tubes (first generation), to transistors (second generation), to integrated circuitry (third generation), to large-scale and very large-scale integrated circuitry (forth generation). The successive hardware generations have each been accompanied by dramatic reductions in costs, size, heat emission, and energy consumption, and by dramatic increases in speed and storage capacity.
(1) the zeroth generation (1940s)
Early computing systems had no operating system. Users had complete access to the machine language. They hand-coded all instructions.
(2) the first generation (1950s)
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 operatin system that "cleaned up after the job" and read in and initiated the next job.
(3) The second generation (early 1960s)
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 reference 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 typewriterlike 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.
(4) The third generation (Mid-1960s to Mid-1970s)
The third generation of operating systems effectively began with the introduction of the IBM system/360 family of computers in 1964. third generation computers were designed to be general-purpose systems. They were large, often ponderous, systems purporting to be all things to all people. The concept sold a lot of computers, but it took its toll. Users running particular applications that did not require this kind of power payed heavily in increased run-time over head, learning time, debugging time, maintenance, etc.
Third generation operating systems were multimode systems. Some of them simultaneously supported batch processing, time sharing, real-time processing, and multiprocessing. They were large and expensive. Nothing like them had ever been constructed before, and many of the development efforts finished well over budget and long after scheduled completion.
These systems introduced to computer environments a greater complexity to which users were, at first, unaccustomed. The systems interposed a software layer between the user and the hardware. This software layer was often so thick that a user lost sight of the hardware and so only the view created by the software. To get one of these systems to perform the simplest useful task, users had to become familiar with complex job control languages to specify the jobs their resource requirements. Third generation operating systems represented a great step forward, but a painful one for many users.
(5) The fourth generation (Mid-1970s to present)
Fourth generation systems are the current state of the art. Many designers and users are still smarting from their experiences with third generation operating systems and are careful before getting involved with complex operating systems.
With the widespread use of computer networking and on-line processing, user gain access to networks of geographically dispersed computers through various type of terminals. The microprocessor has made possible the development of the personal computer, one of the most important developments of social consequence in the last several decades. Now many users have dedicated computer systems available for their own use at any time of the day or night. Computer power that cost hundreds of thousands of dollars in the early 1960s is now available for less than a thousand dollars.
Personal computers are often equipped with data communications interface, and also serve as terminals. The user of a fourth generation system is no longer confined to communicating with a single computer in a timeshared mode. Rather the user may communicate with geographically dispersed systems. Security problems have increased greatly with information now passing over various types of vulnerable communications lines. Encryption is receiving much attention it has become necessary to encode highly proprietary or personal data so tat, even if the data is compromised, it is of no use to anyone other than the intended receivers.
The percentage of the population with access to computers in the 1980s is far grater than ever before and growing rapidly. It is common to hear the term user friendly denoting systems that give users of average intelligence easy access to computer power. The highly symbolic, mnemonic, acronym-oriented user environments of the 1960s and 1970s are being replaced in the 1980s by menu-driven systems that guide the user through various options expressed in simple English.
The concept of virtual machines has become widely used. The user is no longer concerned with the physical details of the computer systems (or network) being accessed. Instead the user sees a view called a virtual machine created by the operating system. Today's user is more concerned with accomplishing work with a computer. And is generally not interested in the internal functioning of the machine.
Database systems have gained central importance. Ours is an information-oriented society, and the job of database systems is to make information conveniently accessible in a controlled fashion to those who have a right to access it. Thousands of on-line database have become available for access via terminals over communications networks.
The concept of distributed data processing has become firmly entrenched. We are now concerned with bringing the computer power to the site at which it is needed, rather than bringing the data to some central computer installation for processing.