Information Technology Reference
In-Depth Information
such as a database, the specific disk drive may matter quite a bit. For those
applications that can operate at a higher level of abstraction, the operating
system serves as an interoperability layer, so that both applications, and the
devices themselves, can be independently evolved without requiring simultane-
ous changes to the other side.
Another standard service in most modern operating systems is the graphical
user interface library. Both Microsoft's and Apple's operating systems provide
a set of standard user interface widgets. This facilitates a common \look and
feel" to users, so that frequent operations such as pull down menus and \cut"
and \paste" are handled consistently across applications.
Most of the code of an operating system is to implement these common ser-
vices. However, much of the complexity of operating systems is due to resource
sharing and masking hardware limits. Because the common service code is built
on the abstractions provided by the other two operating system roles, this topic
will focus primarily on those two topics.
1.1.4
Operating system design patterns
The challenges that operating systems address are not unique | they apply
to many different computer domains. Many complex software systems have
multiple users, run programs written by third party developers, and/or need
to coordinate many simultaneous activities. These pose questions of resource
allocation, fault isolation, communication, abstractions of physical hardware,
and how to provide a useful set of common services for software developers.
Not only are the challenges the same, but often the solutions are as well: these
systems use many of the design patterns and techniques described in this topic.
For now, we focus on the challenges these systems have in common with
operating systems:
Cloud computing (Figure 1.5) is a model of computing where large-scale
applications are run on shared computing and storage infrastructure in
data centers, instead of on the user's own desktop computer. A similar
approach is to run compute-intensive applications in the idle cycles of
remote desktop computers. In both cases, many of the same issues arise
as in operating systems, in terms of sharing, abstraction, and common
services.
{ Referee. How are resources allocated between competing applica-
tions running in the cloud? How are buggy or malicious applications
prevented from disrupting other applications?
{ Illusionist. The computing resources in the cloud are continually
evolving; what abstractions are provided to isolate application devel-
opers from changes in the underlying hardware?
 
Search WWH ::




Custom Search