History
of Operating Systems
In this section we take a brief look at
the history of operating systems which is almost the same as looking at the
history of computers. You are probably aware that Charles Babbage is attributed
with designing the first digital computer, which he called the Analytical Engine. It is unfortunate that he never managed
to build the computer as, being
of a mechanical design; the technology of the day could not produce the components to the needed precision. Of course, Babbage‟s
machine did not have an operating system, but would have been incredibly useful
all the same for it‟s era for generating nautical navigation tables.
First Generation (1945-1955) : Like many developments, the first digital
computer was developed due to the motivation of
war. During the Second World War many people were developing automatic
calculating machines. These first generation computers filled entire rooms with
thousands of vacuum tubes. Like the analytical engine they did not have an operating system, they did not even have programming
languages and programmers had to physically wire the computer to carry out
their intended instructions. The programmers also had to book time on the
computer as a programmer had to have dedicated use of the machine.
Second Generation (1955-1965): Vacuum tubes proved very unreliable and a programmer, wishing to run his program, could quite easily
spend all his/her ti me searching for and replacing tubes that had blown. The
mid fifties saw the development of the transistor which, as well as being
smaller than vacuum tubes, was much more reliable. It now became feasible to
manufacture computers that could be sold to customers willing to part with
their money. Of course, the only people who could afford computers were large
organizations who needed large air conditioned rooms in which to place them.
Now, instead of programmers booking time on the machine, the
2
computers
were under the control of computer operators. Programs were submitted on
punched cards that were placed onto a magnetic tape. This tape was given to the
operators who ran the job through the computer and delivered the output to the
expectant programmer.
As computers were so expensive methods
were developed that allowed the computer to be as productive as possible. One
method of doing this (which is still in use today) is the concept of batch jobs. Instead of submitting one job at a time,
many jobs were placed onto a single tape and these were processed one after
another by the computer. The ability to do this can be seen as the first real
operating system .
Third Generation (1965-1980): The third generation of computers is
characterized by
the use of Integrated Circuits as a
replacement for transistors. This allowed computer manufacturers to build
systems that users could upgrade as necessary. Up until this time, computers
were single tasking. The third generation saw the start of multiprogramming. That is, the computer could give the illusion of running more than one task at a time. Being able to do this
allowed the CPU to be used much more effectively. When one job had to wait for
an I/O request, another program could use the CPU. The concept of
multiprogramming led to a need for a more complex operating system. One was now
needed that could schedule tasks and deal with all the problems that this
brings. In implementing multiprogramming, the system was confined by the amount
of physical memory that was available (unlike today where we have the concept
of virtual memory). Another feature of third generation machines was that they
implemented spooling. This allowed reading of punch cards onto
disc as soon as they were brought into the computer room. This eliminated the
need to store the jobs on tape, with all the problems this brings. Similarly,
the output from jobs could also be stored to disc, thus allowing programs that produced
output to run at the speed of the disc, and not the printer.
Although,
compared to first and second generation machines, third generation machines
were far superior but they did have a downside. Up until these point
programmers were used to giving their job to an operator and watching it run.
This problem led to the concept of time sharing. This allowed programmers to access the
computer from a terminal and work in an interactive manner. Obviously, with the
advent of multiprogramming, spooling and time sharing, operating systems had to
become a lot more complex in order to deal with all these issues.
3
Fourth
Generation (1980-present): The
late seventies saw the development of Large Scale Integration (LSI). This led directly to the development
of the personal computer (PC). These computers were (originally) designed to be
single user, highly interactive and provide graphics capability. One of the requirements for the original
PC produced by IBM was an operating system and, Bill Gates supplied MS-DOS on
which he made his fortune. In addition, mainly on non-Intel processors, the
UNIX operating system was being used. It is still (largely) true today that
there are “mainframe” operating systems (such as VME which runs on ICL
mainframes) and “PC” operating systems
(such as MS-Windows and UNIX), although
the distinctions are starting to blur. Mainly, we can say that Graphical User Interface (GUI) became popular in 3rd
generation computers.
Fifth Generation (Sometime in the
future): If you look through
the descriptions of
the computer generations you will notice
that each have been influenced by new hardware that was developed (vacuum
tubes, transistors, integrated circuits and LSI). The fifth generation of
computers may be the first that breaks with this tradition and the advances in
software will be as important as advances in hardware. One view of what will
define a fifth generation computer is one that is able to interact with humans
in a way that is natural to us. No longer will we use mice and keyboards but we
will be able to talk to computers in the same way that we communicate with each
other. In addition, we will be able to talk in any language and the computer
will have the ability to convert to any other language. Computers will also be
able to reason in a way that imitates humans. Just being able to accept (and
understand!) the spoken word and carry out reasoning on that data requires many
things to come together before we have a fifth generation computer. For
example, advances need to be made in AI (Artificial Intelligence) so that the
computer can mimic human reasoning. It is also likely that computers will need
to be more powerful. Maybe parallel processing will be required. Maybe a
computer based on a non-silicon substance may be needed to fulfill that
requirement (as silicon has a theoretical limit as to how fast it can go). This
is one view of what will make a fifth generation computer. At the moment, as we
do not have any, it is difficult to provide a reliable definition.
0 comments:
Post a Comment