SOLUTIONS TO CHAPTER 1 PROBLEMS
An operating system must provide the users with an extended (i.e., virtual)
machine, and it must manage the I/O devices and other system resources.
Multiprogramming is the rapid switching of the CPU between multiple
processes in memory. It is commonly used to keep the CPU busy while one
or more processes are doing I/O.
Input spooling is the technique of reading in jobs, for example, from cards,
onto the disk, so that when the currently executing processes are finished,
there will be work waiting for the CPU. Output spooling consists of first
copying printable files to disk before printing them, rather than printing
directly as the output is generated. Input spooling on a personal computer is
not very likely, but output spooling is.
The prime reason for multiprogramming is to give the CPU something to do
while waiting for I/O to complete. If there is no DMA, the CPU is fully occu-
pied doing I/O, so there is nothing to be gained (at least in terms of CPU utili-
zation) by multiprogramming. No matter how much I/O a program does, the
CPU will be 100 percent busy. This of course assumes the major delay is the
wait while data are copied. A CPU could do other work if the I/O were slow
for other reasons (arriving on a serial line, for instance).
Second generation computers did not have the necessary hardware to protect
the operating system from malicious user programs.
It is still alive. For example, Intel makes Pentium I, II, and III, and 4 CPUs
with a variety of different properties including speed and power consumption.
All of these machines are architecturally compatible. They differ only in
price and performance, which is the essence of the family idea.
80 character monochrome text screen requires a 2000-byte buffer. The
768 pixel 24-bit color bitmap requires 2,359,296 bytes. In 1980 these
two options would have cost $10 and $11,520, respectively. For current
prices, check on how much RAM currently costs, probably less than $1/MB.
Choices (a), (c), and (d) should be restricted to kernel mode.
Personal computer systems are always interactive, often with only a single
user. Mainframe systems nearly always emphasize batch or timesharing with
many users. Protection is much more of an issue on mainframe systems, as is
efficient use of all resources.
Every nanosecond one instruction emerges from the pipeline. This means the
machine is executing 1 billion instructions per second. It does not matter at
all how many stages the pipeline has. A 10-stage pipeline with 1 nsec per