Sabtu, 09 Juni 2012

History Of Operating Systems : The Third Generation (1956-1980)


The Third Generation (1965-1980): ICs and Multiprogramming.

By the early 1960s, most computer manufactures had two distinct, and totally incompatible, product lines. On the one hand there were the word-oriented, large-scale scientific computers, such as the 7094, which were used for numerical calculations in science and engineering. On the other hand, there were the character-oriented, commercial computers, such as 1401, which were widely used for tape sorting and printing by banks and insurance companies.

Developing and maintaining two completely different product lines was an expensive proposition for the manufacturers. In addition, many new computer customers initially needed a small machine but later outgrew it and wanted a bigger machine that would run all their old programs, but faster.

IBM attempted to solve both of these problems at a single stroke by introducing the system/360. The 360 was a series of software-compatible machines ranging from 1401-sized to much more powerful than the 7094. The machines differed only in price and performance (maximum memory, processor speed, number of I/O devices permitted, and so forth). Since all the machines had the same architecture and instruction set, programs written for one machine could run both scientific and commercial computing. In subsequent years, IBM has come out with compatible successors to the 360 line, using more modern technology, known as the 370, 4300, 3080, and 3090 series.

 Figure 1. System/360 model 91 was taken by NASA

The 360 was the first major computer line to use (small-cable). Integrated Circiuts (ICs), thus providing a major price/performance advantage over the second-generation machines, which were built up from individual transistors. It was an immediate success, and the idea of a family of compatible computers was soon adopted by all the other major manufacturers. The descendants of theses machines are still in use at scattered computer centers today, but their use is declining rapidly.

The greatest strength of the "One family" idea was simultaneously its greatest weakness. The intention was that all software, including tha operating system, had to work on all models. It had to run on small systems, which often replaced 1401s for copyingcards to tape, and on very large systems, which often replaced 7094s for doing weather forecasting and other heavy computing. It had to be good on systems with few peripherals and in scientific environments. Above all, it had to be different for all of these uses.

There was no way that IBM (or anybodd else) could write a piece of software to meet all those conflicting requirements. The result was an enormous and extraordinaryly complex operating system, probably two to three orders of magnitude larger than FMS. It consisted of millions of lines of assembly language writen by thousands of programmers, and contained thousands upon thousands of bugs, which necessitated a continuous stream of new releases in an attempt to correct them. Each new release fixed some bugs and introduced new ones, so the numberof bugs probably remained constant in time.

One of the designers of OS/360, Fred Brooks, subsequently wrote a witty and incisive book (Brook, 1975) describing his experiences with OS/360. While it would be imposibble to summarize the book here, suffice it to say that the cover shows a herd of prehistoric beasts stcuk in a tar pit. The cover of Silberschatz and Galvin's book (1994) makes a similiar point.

Despite its enormous size and problems, OS/360 and the similar third-generation operating systems produced  by other computer manufacturers actually satisfied most of their customers reasonably well. They also popularized several key techniques absent in secong-generation operating systems. Probablythe most important of these was multiprogramming. On the 7094, when the current job paused to wait for a tape or other I/O operation to complete, the CPU simply sat idle until the I/O finished. With heavily CPU-ound scientific calculations, I/O is infrequent, so this wasted time is not significant. With commercial data processing, the I/O wait time can often be 80 or 90 percent of total time, so something had to be done to avoid having the CPU be idle so much.

The solution that evolved was to aprtition memory into several pieces, with a different job in each partition, as shown in Figure 2. While one job was waiting for I/O to complete, another job could be using the CPU. If enough jobs could be held in main memory at once, the CPU could ne kept requires special hardware to protect each job againts snooping and mischief by the other ones, but the 360 and other third-generation systems were equipped with this hardware.

HIstory of Operating System
Figure 2 A multiprogramming system with three jobs in memory.

Another major feature present in third-generation operating systems was the ability to read jobs from cards onto the disk as soon as they were brought to the computer room. Then, whenever a running job finished, the operating system could load a new job from the disk into the now-empty partition and run it. This technique is called spooling (from simultaneous Peripheral Operation On Line) and was also used for output. With spooling, the 1401s were no longer needed, and much carrying of tapes disappeared.

Although third-generation operating systems were well-suited for big scientific calculations and massive commercial data processing runs, they ere still basically batch systems. Many programmers pined for the first-generation  days when they had the machine all to themselves for a few hours, so they could debug their programs quickly. With third-generation systems, the time between submitting a job and getting back the output was often several hours, so a single misplaced comma could cause a compilation to fail, and the programmer to waste half a day.

This desire for response time paved the way for timesharing, a variant of multiprogramming, in which each user has an on-line terminal. In a timesharing system, if 20 users are logged in and 17 of them are thinkingor talking or drinking coffee, the CPU can be allocated in turn to the three jobs that want service. Since people debugging programs usually issue short commans (e.g., compile a five-page procedure) rather than long ones (e.g., sort a million-record file), the computer can provide fast, interactive service  to a number of users and perhaps also work on big batch job in the background when the CPU is otherwise idle. Although the first serious timesharing system (CTSS) was developed at M.I.T on a specially modified 7094 (Corbato et al., 1962), timesharing did not really become popular until the necessary protection hardware became widespread during the third generation.

Source : 
Book - "Operating Systems : Design and Implemetation"
By Andrew S. TanenBaum and Albert S.Woodhull

0 komentar:

Posting Komentar