Information Technology Reference
In-Depth Information
McCarthy's audience at MIT thought he had been the victim of a practical
joke. In fact he was writing his programs in LISP (List Processing), a high-
level language he had developed for programming artificial intelligence
applications. For this language, he had introduced a garbage collection routine
to reclaim parts of the memory that were no longer needed by the program.
In effect, McCarthy's routine was an early attempt to build an automatic
memory management system.
It was not until 1961 that Fernando Corbató ( B.3.8 ) at the MIT Computation
Center was able to demonstrate a fully working time-sharing system. This was
called the Compatible Time-Sharing System or CTSS. This was the starting point
for J. C. R. Licklider's famous Project MAC, a time-sharing system of which the
goal was nothing less than what its proponents called “the democratization of
computing.” The MAC project (MAC could stand for Machine-Aided Cognition
or Multiple Access Computer) and the Multics (Multiplexed Information and
Computing Service) time-sharing operating system that developed from these
beginnings were enormously influential and led to spin-off projects in many
different areas. Most modern operating systems use an interrupt system to shift
resources when and where they are needed, making multitasking possible.
Applications
I/O Management
Device Drivers
Memory Management
CPU Management
Hardware
Fig. 3.11. A computer's operating
system can be pictured in layers. The
bottom layer consists of hardware , the
mechanical, electronic, and electrical
parts that make up the machine. Higher
layers represent the main functions
of the operating system, including the
CPU that does the actual computing,
management of the computer's memory,
and device drivers that operate devices
attached to the computer. Higher still
is the I/O layer, which enables users to
communicate with the computer. At the
top are the applications that perform
specific tasks, such as word processing
and managing databases.
The many roles of an operating system
Operating systems have progressed a long way from being a simple col-
lection of subroutines and a batch loader to software systems of enormous
complexity and power. We end this chapter by listing the major functions
that a modern operating system must carry out.
Device drivers and interrupts
One of the earliest roles of the operating system was to allow users to interact
with a wide variety of devices, such as keyboards, scanners, printers, disks, and
mice without having to write their own code. The key to making this possible
with all the multitude of different devices we have today is to hide all the intri-
cate details of a particular device behind a standard piece of software called a
device driver , a program that operates a particular type of device attached to the
computer. The interface of a device driver with the computer needs to be care-
fully specified because many devices need to access specific memory locations.
They also must generate and respond to control signals called interrupts , indica-
tions that some event happening in the computer needs immediate attention.
Handling these interrupts is a key function of the operating system ( Fig. 3.11 ).
Job scheduling
If one program has to wait for some input, another program could start run-
ning. The operating system must have the capability of sending a waiting pro-
gram to “sleep” and then waking it up again with an interrupt when its input
has arrived and it is ready to proceed. To do this, the operating system needs
to maintain a table of “active processes,” the operations that are under way.
This list contains all the details for each process - where it is in main memory,
Search WWH ::




Custom Search