Information Technology Reference
In-Depth Information
systems use the same idea internally, so that the operating system itself can
largely be implemented independently of the specifics of the hardware. This
interface is called the hardware abstraction layer (HAL). It might seem at rst
Denition: hardware
abstraction layer (HAL)
glance that the operating system AMI and the operating system HAL should
be identical, or nearly so | after all, both are portable layers designed to hide
unimportant hardware details. The AMI needs to do more, however. As we
noted, applications execute in a restricted, virtualized context and with access
to high level common services, while the operating system itself is implemented
using a procedural abstraction much closer to the actual hardware.
Today, Linux is an example of a highly portable operating system. Linux
has been used as the operating system for web servers, personal computers,
tablets, netbooks, ebook readers, smartphones, set top boxes, routers, WiFi
access points, and game consoles. Linux is based on an operating system called
UNIX, originally developed in the early 1970's. UNIX was written by a small
team of developers, and because they could not afford to write very much code,
it was designed to be very small, simple to program against, and highly portable,
at some cost in performance. Over the years, UNIX's and Linux's portability
and convenient programming abstractions have been keys to its success.
1.2.4
Performance
While the portability of an operating system can become apparent over time,
the performance of an operating system is often immediately visible to its users.
Although we often associate performance with each individual application, the
operating system's design can have a large impact on the application's perceived
performance because it is the operating system that decides when an application
can run, how much memory it can use, and whether its files are cached in
memory or clustered eciently on disk. The operating system also mediates
application access to memory, the network, and the disk. The operating system
needs to avoid slowing down the critical path while still providing needed fault
isolation and resource sharing between applications.
Performance is not a single quantity, but rather it can be measured in several
different ways.
One performance metric is the eciency of the abstraction
Denition: eciency
presented to applications. A related concept to eciency is overhead , the added
Denition: overhead
resource cost of implementing an abstraction. One way to measure eciency (or
inversely, overhead) is the degree to which the abstraction impedes application
performance. Suppose the application were designed to run directly on the
underlying hardware, without the overhead of the operating system abstraction;
how much would that improve the application's performance?
Operating systems also need to allocate resources between applications, and
this can affect the performance of the system as perceived by the end user.
One issue is fairness, between different users of the same machine, or between
Denition: fairness
different applications running on that machine.
Should resources be divided
Search WWH ::




Custom Search