Information Technology Reference
In-Depth Information
let me run another. Better, the operating system should allow multiple appli-
cations to run at the same time, as when I read email while I am downloading
a security patch to the system software.
Even individual applications can be designed to do multiple things at once.
For instance, a web server will be more responsive to its users if it can handle
multiple requests at the same time rather than waiting for each to complete
before the next one starts running. The same holds for the browser | it is
more responsive if it can start drawing a page while the rest of the page is
still being transferred. On multiprocessors, the computation inside a parallel
application can be split into separate units that can be run independently for
faster execution. The operating system itself is an example of software written
to be able to do multiple things at once. As we will describe later, the operating
system is a customer of its own abstractions.
Sharing raises several challenges for an operating system:
Resource Allocation. The operating system must keep all of the simul-
taneous activities separate, allocating resources to each as appropriate. A
computer usually has only a few processors and a finite amount of memory,
network bandwidth, and disk space. When there are multiple tasks to do
at the same time, how should the operating system choose how many re-
sources to give to each? Seemingly trivial differences in how resources are
allocated can have a large impact on user-perceived performance. As we
will see later, if the operating system gives too little memory to a program,
it will not only slow down that particular program, it can dramatically
hurt the performance of the entire machine.
As another example, what should happen if an application executes an
infinite loop:
while(true){
;
}
If programs ran directly on the raw hardware, this code fragment would
lock up the computer, making it completely non-responsive to user input.
With resource multiplexing provided by the operating system, the specific
application might lock up, but other programs can proceed unimpeded.
Additionally, the user can ask the operating system to force the looping
program to exit.
Isolation. An error in one application should not disrupt other applica-
tions, or even the operating system itself. This is called fault isolation.
Denition: fault isolation
Anyone who has taken an introductory computer science class knows the
value of an operating system that can protect itself and other applications
from programmer bugs.
Debugging would be vastly harder if an error
Search WWH ::




Custom Search