Information Technology Reference
In-Depth Information
Exercises
Take a moment to speculate; to build the systems we use today, someone
needed to answer these questions. Consider how you might answer them, before
seeing how others solved these puzzles.
4. How would you design combined hardware and software support to provide
the illusion of a nearly infinite virtual memory on a limited amount of
physical memory?
5. How would you design a system to run an entire operating system as an
application running on top of another operating system?
6. How would you design a system to update complex data structures on
disk in a consistent fashion despite machine crashes?
1.1.3
Common services: Operating system as glue
Operating system also play a third role: providing a set of common, standard
services to applications to simplify and regularize their design. We saw an
example of this with the web server outlined at the beginning of this chapter.
The operating system hides the specifics of how the network and disk devices
work, providing a simpler abstraction to applications based on receiving and
sending reliable streams of bytes, and reading and writing named files. This
allows the web server can focus on its core task of decoding incoming requests
and filling them, rather than on the formatting of data into individual network
packets and disk blocks.
An important reason for the operating system to provide common services,
rather than leaving it up to each application, is to facilitate sharing between
applications. The web server needs to be able to read the file that the text editor
wrote. If applications are to share files, they need to be stored in a standard
format, with a standard system for managing file directories. Likewise, most
operating systems provide a standard way for applications to pass messages,
and to share memory, to facilitate sharing.
The choice of which services an operating system should provide is often a
matter of judgment. For example, computers can come configured with a bliz-
zard of different devices: different graphics co-processors and pixel formats, dif-
ferent network interfaces (WiFi, Ethernet, and Bluetooth), different disk drives
(SCSI, IDE), different device interfaces (USB, Firewire), and different sensors
(GPS, accelerometers), not to mention different versions of each of those stan-
dards. Most applications will be able to ignore these differences, using only
a generic interface provided by the operating system.
For other applications,
Search WWH ::




Custom Search