You are on page 1of 5

Reading: Operating Systems

Introduction

The PC of a business end-user will quite commonly provide


a number of different application programs, but no program
development tools. It is also possible (although unlikely) that
the PC of a programmer could provide development tools
only, and no other commercial applications. But the one
thing that all these machines would definitely have is an
operating system (OS). The operating system is an essential
piece of software that resides on virtually every computer. It
allows the computer to run a number of different applications
apparently simultaneously, and shares resources such as
printers between a number of different users, while at the
same time performing those functions that are critical to the
correct operating of the computer system, regardless of
which application is running.
Different types of computers may require different operating
systems. Most mainframe computers have a proprietary
operating system, such as IBM’s MVS or Siemen’s BS2000.
At the opposite end of the market, we find that the leading
operating system for the IBM compatible Personal
Computers is Microsoft Windows (having all but replaced its
predecessor MS-DOS) although Mac-OS and Unix variants
such as Linux also have strong followings.

Figure 5-4: Some operating system components


Today’s operating systems are true marvels of engineering
and rate among the most complex artifacts designed by
humans. Their complexity stems from the increasing number
of functions that an operating system is required to handle.
Multitasking
Today’s computers handle many applications at the same
time: you could be downloading a file from the Internet at the
same time as you update a spreadsheet that is embedded
within a word-processing document (while at the same time
your virus scanner is running in the background). Each
application needs to share the CPU, main memory and all
peripheral devices. The OS sees to it that all conflicts are
resolved and each application gets a fair share of the
common resources, often in accordance with a certain
priority schedule. An important task, therefore, is that of the
proper scheduling of different tasks. The OS also ensures
that illbehaving applications do not impact on the integrity of
the other applications and their data. (By the way, when a
single application program runs multiple tasks
simultaneously, this is known as multithreading.)
Multi-user management
Barring the personal computer, computers have more than a
single user at any one time – a typical mainframe may have
to handle many thousands of simultaneous users. Each of
the users may operate a different application (see
multitasking) but will not be prepared to wait for other users
to finish their tasks. So the OS sees to it that each user gets
a fair share of the CPU of the mainframe, by slicing each
second in tiny fractions and allocating them to the different
users. In addition, each user may have a different profile in
terms of access to certain peripheral devices and data. This
requires sophisticated security and data management.
Memory management
Apart from the CPU, primary memory is often the most
expensive and scarcest component of a computer system.
Efficient memory management is a key component of any
OS, especially in multitasking and multi-user environment.
The likelihood that there is sufficient memory to load all the
data and software for all users simultaneously is extremely
small. In practice, a technique of virtual memory is used
whereby the available amount of main memory is extended
by using secondary storage devices, usually the hard disk.
During a typical program execution, not all program
instructions and data are required at once. The OS will swap
out all unused software and data segments onto disk, until
they are actually required.
Secondary storage management
All applications require disk storage – if only to store the
application software itself. The OS provides the common
access routines to the secondary disk storage devices. It will
keep track of data and program file names, physical
locations and perform common functions such as the
copying, erasing or backing up of data. It also makes the
differences in physical hardware as transparent as possible:
a data file will appear the same to an application whether the
data is being loaded from a diskette, a hard disk or an optical
CD-ROM.
Peripheral handler
Apart from managing the memory and secondary storage
devices, the OS is usually also responsible for the handling
of other peripheral devices. Again, a major objective is to
relieve the application from the responsibility of having to
cater for a multitude of different possible input and output
devices. Thanks to the OS, a program (developer) does not
need to cater for the differences between a trackball, mouse
or other pointing device. The OS will also ensure that your
document will be printed correctly, regardless of whether you
have a colour inkjet, a laser or lowly dot-matrix printer
attached. Equally, individual programs no longer have to
worry about the resolution or capability of your computer
monitor. The critical element is again that the applications do
not have to worry about the actual hardware connected to
the computer system. This is usually achieved by means of
device drivers, small software routines that become part of
the operating system and help it to interface correctly with
specific hardware devices. The device drivers for popular or
standard devices are usually already included in the
operating system. More esoteric or very new hardware
devices will come with a separate disk containing the proper
device drivers. These then have to be installed as part of the
operating system at the same time as connecting the
hardware.
Communications Management
Communications software allows a computer to recognise
the presence of other machines on a network, and to grant
or restrict access to local files. It also manages network
traffic, by monitoring communications lines and diagnosing
problems, as well as sending and receiving data to and from
remote devices. While PC operating systems include some
basic networking and communications facilities, network
operating systems (NOS) such as Novell and Unix provide
sophisticated management tools for large networks.
User interface
Until the late 1980s, operating systems focussed on the
efficient management of resources, tasks and secondary
storage. The popularity of personal computers meant that a
whole class of less-technical end-users entered the world of
computing. This pressured the IT industry into developing a
user-friendlier graphical user-interface and the user interface
is quickly becoming a significant part of microcomputer
operating systems. Different types of user interface have
already been discussed earlier in this chapter.
System Utilities
As a logical extension of the operating system, additional
system utilities are often required to assist with the proper
and optimal use of the computer. Some system utilities may
be provided along with the operating system, while others
are marketed by independent third-party vendors. A number
of system utilities focuses on improving the functionality of
the operating system (e.g. better hard disk management)
while others provide additional functions (e.g. anti-virus or
encryption software). More examples of system utilities are
editors, additional security utilities, performance monitors,
file viewers, data compression software etc.

You might also like