A BIT OF HISTORY
In attempting to understand the key requirement for an operating system and the
significance of the major features of a contemporary operating system, it is useful
to consider how operating systems have evolved over the years.
Serial Processing
During the late 1940s to the mid-1950s, the programmer interacted directly with
computer hardware; there was no operating system. These machines were run by
operators from a console, consisting of displays lights, toggle switches, some form of input device and a printer. Programs in machine code were loaded via a
card reader.
This mode of operation could be termed serial processing, reflecting the fact that
users have access to the computer in series. Gradually, various system software
tools were developed which included libraries of common functions, linkers,
loaders, debuggers, and I/O driver software to attempt to make serial processing
more efficient.
Simple Batch Systems
Early machines were very expensive, and therefore it was important to maximize
machine utilization. To improve utilization, the concept of batch operating system
was developed. It appears that the first batch operating system (and the first
operating system of any kind) was developed in the mid-1950s by General Motors
for use on an IBM 701. The concept was subsequently refined and implemented
on the IBM 704 by a number of IBM customers.
The central idea behind the batch processing system was the use of a piece of
software known as the monitor. With the use of this type of operating system, the
user no longer had direct access to the machine. Rather, the user submitted the job
on cards or tape to a computer operator, who batches the jobs together
sequentially and places the entire batch on an input device, for use by the monitor.
Many important breakthroughs in operating system design occurred in the early
1960s which laid the foundation for design of modern operating system.
In 1963, Burroughs design of Master Control Program (MCP), which included
design of many of the features of modern systems such as support for
multiprocessing (with two identical CPUs) as well as multitasking capabilities.
IBM introduces OS/360 as the operating system for its new System/360 in 1964.
OD/360 provided a powerful language to expedite batch processing known as Job
Control Language. It introduced a simple form of multiprogramming or
multitasking feature that facilitated loading several jobs into main memory, so
that other jobs programs could use the CPU when one job was busy with I/O. By
this time, disks were also becoming available. To take its advantage the OS
introduced features to cards onto disk while the CPU executed its jobs; thus, when
a job completed, the OS could load another job from disk into memory, ready to
run. This improved the OS scheduling capability. Multiprogramming or
multitasking is the central theme of modern operating system.
Time Sharing System
With the use multiprogramming, the batch processing can be quite efficient.
However, for many jobs, it is desirable to provide a mode in which the user
interacts directly with the computer. Indeed for some jobs, such as transaction
processing, an interactive mode is essential
Today, the requirement for an interactive computing facility can be, and often is, Operating Sytem
met by the use of a dedicated microcomputer. That option was not available in the
1960s when most computers were big and costly. Instead time sharing was
developed. Just as multiprogramming allows the processor to handle multiple
batch jobs at a time, multiprogramming can be used to handle multiple interactive
jobs. In this latter case, the technique is referred to as time sharing, because the
processor’s time is shared among multiple users. In time sharing system, multiple
users simultaneously access the system through terminals, with the operating
system interleaving the execution of each user program in a short burst or
quantum of computation.
Both batch processing and time sharing use multiprogramming. The key
differences are shown in the following table.
MIT, Bell Labs, and GE formed a partnership to develop a major time-sharing
system. The system, was called MULTICS (Multiplexed Information and
Computer Service), and although MULTICUS never became a full fledged
operating system but many of the most important multitasking concepts and
algorithms were developed by the MULTICS team.
- During 1960-1970, many other developments in OS design took place: (a) Hierarchical approach to OS, for example the THE OS designed by Dijkstra.
- (b) It also showed the advantages of modular programming design in the implementation of OS.
Development of UNIX
- The original UNIX development was performed on a Digital PDP-7 minicomputer and later moved to a PDP-11 minicomputer, the forerunner of the VAX computer. Originally, the system was written in assembly language, but at the later stage the operating system was largely rewritten in C.
- Another important innovation, some would say the most important development in making the computer accessible to nontechnical users, was the development of the concept of graphical user interfaces.
Development of Personnel Computer Operating System
- The next important breakthrough in computer use occurred in 1982, with the introduction of the IBM personal computer. The IBM PC was designed as a stand-alone, single-user computer for the mass market. The IBM PC was supplied with a reasonably easy-to-use operating system, PC-DOS, which was developed, and also later marketed, by Microsoft as MS-DOS. PC-DOS was actually derived from an earlier personal computer operating, CP\M (Control Program for Microcomputers)
Other Developments during 1980-1990s
- The evolution of MS-DOS into Windows 2000, a GUI-based operating system capable of supporting a wide range of users and applications, from the individual working at a PC to a networked enterprise system capable of managing every aspect of a large organization. This capability was formerly limited to large, mainframe-based multiuser systems.
- The development of Linux operating system client-server configuration model, which took place at a number of different universities during the 1980s, and the use of these microkernels, particularly Mach, as the basis for the development of new operating systems of unparalleled power, stability, and simplicity.
- The development of the Distributed Computing Environment, plus objectbased extensions that make distributed processing practical.
- Creation of the JAVA Virtual Machine and other aspects of the JAVA language and environment as a means to share and execute objects in a way that is truly machine independent and network transparent.
- There have been many other less obvious developments in operating system technology, both subtle and sophisticated, that have impacted computer system design and operation.
0 Comments