Operating Systems Environments
Operating
systems have been around now for over half a century. During this time, quite a
variety of them have been developed, not all of them widely known. In this
section we will briefly touch upon nine of them. We will come back to some of
these different kinds of systems later in this tutorials.
{tocify}
$title= {Table of Contents}
1. Mainframe operating Systems
At the high
end are the operating systems for mainframes, those room-sized computers still
found in major corporate data centers. These computers differ from personal
computers in terms of their I/O capacity. A mainframe with 1000 disks and
millions of gigabytes of data is not unusual; a personal computer with these specifications
would be the envy of its friends. Mainframes are also making something of a
comeback as high-end Web servers, servers for large-scale electronic commerce
sites, and servers for business-to-business transactions.
The
operating systems for mainframes are heavily oriented toward processing many
jobs at once, most of which need prodigious amounts of I/O. They typically offer
three kinds of services: batch, transaction processing, and timesharing. A batch
system is one that processes routine jobs without any interactive user present.
Claims processing in an insurance company or sales reporting for a chain of
stores is typically done in batch mode. Transaction-processing systems handle
large numbers of small requests, for example, check processing at a bank or
airline reservations. Each unit of work is small, but the system must handle
hundreds or thousands per second. Timesharing systems allow multiple remote
users to run jobs on the computer at once, such as querying a big database.
These functions are closely related; mainframe operating systems often perform
all of them. An example mainframe operating system is OS/390, a descendant of
OS/360. However, mainframe operating systems are gradually being replaced by
UNIX variants such as Linux.
2. Server Operating Systems
One level
down are the server operating systems. They run on servers, which are either
very large personal computers, workstations, or even mainframes. They serve
multiple users at once over a network and allow the users to share hardware and
software resources. Servers can provide print service, file service, or Web service.
Internet providers run many server machines to support their customers and
Websites use servers to store the Web pages and handle the incoming requests. Typical
server operating systems are Solaris, FreeBSD, and Linux and Windows Server 201
x.
3. Multiprocessor Operating
Systems
An
increasingly common way to get major-league computing power is to connect
multiple CPUs into a single system. Depending on precisely how they are connected
and what is shared, these systems are called parallel computers, multicomputer,
or multiprocessors. They need special operating systems, but often these are
variations on the server operating systems, with special features for
communication, connectivity, and consistency.
With the
recent advent of multicore chips for personal computers, even conventional
desktop and notebook operating systems are starting to deal with at least
small-scale multiprocessors and the number of cores is likely to grow over time.
Luckily, quite a bit is known about multiprocessor operating systems from years
of previous research, so using this knowledge in multicore systems should not
be hard. The hard part will be having applications make use of all this
computing power. Many popular operating systems, including Windows and Linux,
run on multiprocessors.
4. Personal computer operating
Systems
The next
category is the personal computer operating system. Modern ones all support
multiprogramming, often with dozens of programs started up at boot time. Their
job is to provide good support to a single user. They are widely used for word
processing, spreadsheets, games, and Internet access. Common examples are Linux,
FreeBSD, Windows 7, Windows 8, and Apple’s OS X. Personal computer operating
systems are so widely known that probably little introduction is needed. In
fact, many people are not even aware that other kinds exist.
5.
Handheld Computer
Operating Systems
Continuing
on down to smaller and smaller systems, we come to tablets, smartphones and
other handheld computers. A handheld computer, originally known as a PDA
(Personal Digital Assistant), is a small computer that can be held in your hand
during operation. Smartphones and tablets are the best-known examples. As we
have already seen, this market is currently dominated by Google’s Android and
Apple’s iOS, but they have many competitors. Most of these devices boast
multicore CPUs, GPS, cameras and other sensors, copious amounts of memory, and
sophisticated operating systems. Moreover, all of them have more third-party
applications (‘‘apps’’) than you can shake a (USB) stick at.
6.
Embedded Operating Systems
Embedded
systems run on the computers that control devices that are not generally
thought of as computers and which do not accept user-installed software. Typical
examples are microwave ovens, TV sets, cars, DVD recorders, traditional phones,
and MP3 players. The main property which distinguishes embedded systems from
handhelds is the certainty that no untrusted software will ever run on it. You
cannot download new applications to your microwave oven—all the software is in
ROM. This means that there is no need for protection between applications, leading
to design simplification. Systems such as Embedded Linux, QNX and VxWorks are
popular in this domain.
7.
Sensor – Node Operating Systems
Networks of
tiny sensor nodes are being deployed for numerous purposes. These nodes are
tiny computers that communicate with each other and with a base station using
wireless communication. Sensor networks are used to protect the perimeters of buildings,
guard national borders, detect fires in forests, measure temperature and
precipitation for weather forecasting, glean information about enemy movements
on battlefields, and much more.
The sensors
are small battery-powered computers with built-in radios. They have limited
power and must work for long periods of time unattended outdoors, frequently in
environmentally harsh conditions. The network must be robust enough to tolerate
failures of individual nodes, which happen with ever-increasing frequency as
the batteries begin to run down.
Each sensor
node is a real computer, with a CPU, RAM, ROM, and one or more environmental
sensors. It runs a small, but real operating system, usually one that is event
driven, responding to external events or making measurements periodically based
on an internal clock. The operating system has to be small and simple because
the nodes have little RAM and battery lifetime is a major issue. Also, as with
embedded systems, all the programs are loaded in advance; users do not suddenly
start programs they downloaded from the Internet, which makes the design much
simpler. TinyOS is a well-known operating system for a sensor node.
8.
Real-Time Operating
Systems
Another
type of operating system is the real-time system. These systems are characterized
by having time as a key parameter. For example, in industrial process-control
systems, real-time computers have to collect data about the production process
and use it to control machines in the factory. Often there are hard deadlines that
must be met. For example, if a car is moving down an assembly line, certain actions
must take place at certain instants of time. If, for example, a welding robot welds
too early or too late, the car will be ruined. If the action absolutely must occur
at a certain moment (or within a certain range), we have a hard real-time system.
Many of these are found in industrial process control, avionics, military, and
similar application areas. These systems must provide absolute guarantees that a
certain action will occur by a certain time.
A soft real-time system, is one where
missing an occasional deadline, while not desirable, is acceptable and does not
cause any permanent damage. Digital audio or multimedia systems fall in this
category. Smartphones are also soft realtime systems.
Since
meeting deadlines is crucial in (hard) real-time systems, sometimes the operating
system is simply a library linked in with the application programs, with everything
tightly coupled and no protection between parts of the system. An example of
this type of real-time system is eCos.
The
categories of handhelds, embedded systems, and real-time systems overlap considerably.
Nearly all of them have at least some soft real-time aspects. The embedded and
real-time systems run only software put in by the system designers; users
cannot add their own software, which makes protection easier. The handhelds and
embedded systems are intended for consumers, whereas real-time systems are more
for industrial usage. Nevertheless, they have a certain amount in common.
9.
Smart card operating
systems
The
smallest operating systems run on smart cards, which are credit-card-sized devices
containing a CPU chip. They have very severe processing power and memory
constraints. Some are powered by contacts in the reader into which they are inserted,
but contactless smart cards are inductively powered, which greatly limits what
they can do. Some of them can handle only a single function, such as electronic
payments, but others can handle multiple functions. Often these are proprietary
systems. Some smart cards are Java oriented. This means that the ROM on the
smart card holds an interpreter for the Java Virtual Machine (JVM). Java
applets (small programs) are downloaded to the card and are interpreted by the
JVM interpreter.
Some of
these cards can handle multiple Java applets at the same time, leading to multiprogramming
and the need to schedule them. Resource management and protection also become
an issue when two or more applets are present at the same time. These issues
must be handled by the (usually extremely primitive) operating system present
on the card.