Network Distrib Multi Uni
OS OS Processor Processor
Virtual uniprocessor? No Yes Yes Yes
All the same OS? No Yes Yes Yes*
How many copies of OS? N N 1 1*
How to communicate? Files Messages Memory Memory*
Network protocols? Yes Yes No No*
Single ready list? No No Yes Yes*
File sharing defined? No Yes Yes Yes
The asterisks in the new column indicate room for quibbling! A uniprocessor
can emulate any number of processors (this is actually a theorem in automata
theory, but practical implementations of this idea are embodied in virtual
machine operating systems). As a result, a uniprocessor supporting a virtual
machine operating system can emulate a multiprocessor or a network of
machines supporting either a distributed operating system or network
operating systems.
The answer: A network of virtual machines can support any operating system architecture that could be supported on a network of physical machines. That is, both network operating systems and distributed operating systems are possible.
The problem, Part B: Which of the options suggested in Figure 9-13 are theoretically sufficient to support a recursive virtual machine?
The answer: The key feature required by a virtual machine is that all the resources used by applications programs be virtualizable. This can clearly be done with a multiprocessor as easily as with a uniprocessor. It might be possible with a distributed operating system, but not with a network of machines running network operating systems. In the latter case, any one of the systems may be virtualizable (since we expect that each machine in the network is a uniprocessor or multiprocessor).
The answer: