Answer the following questions. The maximum number
of points for this assignment is 100. The points for each
individual question are indicated below.
If a computer system doesn't have enough main memory (RAM) to store
the instructions and data for the execution of a task, is it
possible for the CPU to fetch instructions or data directly
from the hard disk, without using main memory? [Points: 10]
For a computer system with a 64-bit word length, which of
the following statements describes the largest amount of main memory?
Explain your answer! [Points: 10]
250 MBytes
32 million words
256,000 KBytes
32 Mwords
Why is it necessary to write the value of the program counter
to memory when the CPU switches from one process to another?
Is this also necessary when an interrupt happens? [Points: 10]
The memory protection scheme with the base and limit register
relies on specific hardware to detect unauthorized memory accesses.
Is it possible to use a software-based solution for such a
protection scheme? Does this scheme work when processes
occupy non-contiguous space in memory? [Points: 10]
Describe two examples of caches in a modern computer system.
What problems do they solve, and what are the disadvantages
they have? [Points: 10]
Assume that we have two computer systems wich are identical
except for their memory structure: System A uses 64 MBytes of
regular main memory with an access time of 10 ns
(e.g. dynamic RAM) and 1 MByte of cache with an access time
of 4 ns (e.g. static RAM). System B uses the faster
technology with 4 ns access time for the whole 64 MBytes
of memory, without the cache. With the same processor
speed, e.g. 500 MHz, can we expect the performance of
system B to be substantially better than the one of System A?
[Points: 20]
In a multiprogrammed computer system, we have a single CPU,
a single hard disk, and one network card. There are three
independent processes A, B, and C that are running on this system.
Process A executes 1000 instructions, and then reads ten blocks
from the hard disk. Process B executes 500 instructions,
reads two blocks from the hard disk, and then executes
500 instructions. Process C accesses the network for 25 ms,
executes 1000 instructions, writes two blocks to disk,
and executes 500 instructions. Assume that the CPU takes 10 ns
for the execution of one instruction, and that the average
transfer time per block between main memory and hard disk
is 10 ms. [Points: 30]
Schedule the three processes so that the overall time
needed for their execution is minimized. [Points: 6]
Schedule the three processes so that their average
turnaround time is minimized. The turnaround time of a job is
the time from the submission of a job until the return
of the result. [Points: 6]
Compare the CPU utilization for the two cases above. [Points: 6]
Redo the three subtasks for the case of a timesharing
system where each process gets a time slice of 3 ms at a time.
[Points: 12]