Page 50 - DCAP403_Operating System
P. 50
Unit 3: Operating System Structure
one computer. In turn, each of these executions runs an operating system. This allows multiple Notes
applications to be run on different operating systems, even those they were not originally
intended for.
Virtual machine can also refer to application virtual machine software. With this software, the
application is isolated from the computer being used. This software is intended to be used on a
number of computer platforms. This makes it unnecessary to create separate versions of the same
software for different operating systems and computers. Java Virtual Machine is a very well
known example of an application virtual machine.
A virtual machine can also be a virtual environment, which is also known as a virtual private
server. A virtual environment is used for running programs at the user level. Therefore, it is used
solely for applications and not for drivers or operating system kernels.
A virtual machine may also be a group of computers that work together to create a more powerful
machine. In this type of virtual machine, the software makes it possible for one environment to
be formed throughout several computers. This makes it appear to the end user as if he or she is
using a single computer, when there are actually numerous computers at work.
The heart of the system, known as the virtual machine monitor, runs on the bare hardware and
does the multiprogramming, providing not one, but several virtual machines to the next layer up.
However, unlike all other operating systems, these virtual machines are not extended machines,
with files and other nice features. Instead, they are exact copies of the bare hardware, including
kernel/user mod, I/O, interrupts, and everything else the real machine has.
Each virtual machine is identical to the true hardware; therefore, each one can run any operating
system that will run directly on the hardware. Different virtual machines can, and usually do, run
different operating systems. Some run one of the descendants of OF/360 for batch processing,
while other ones run a single-user, interactive system called CMS (Conversational Monitor
System) fro timesharing users.
Conceptually, a computer system is made up of layers. The hardware is the lowest level in all
such systems. The kernel running at the next level uses the hardware instructions to create a set
of system calls for use by outer layers. The systems programs above the kernel are therefore able
to use either system calls or hardware instructions, and in some ways these programs do not
differentiate between these two. Thus, although they are accessed differently, they both provide
functionality that the program can use to create even more advanced functions. System programs,
in turn, treat the hardware and the system calls as though they both are at the same level.
Some systems carry this scheme even a step further by allowing the system programs to be called
easily by the application programs. As before, although the system programs are at a level higher
than that of the other routines, the application programs may view everything under them in
the hierarchy as though the latter were part of the machine itself. This layered approach is taken
to its logical conclusion in the concept of a virtual machine. The VM operating system for IBM
systems is the best example of the virtual-machine concept, because IBM pioneered the work in
this area.
By using CPU scheduling and virtual-memory techniques, an operating system can create the
illusion of multiple processes, each executing on its own processor with its own (virtual) memory.
Of course, normally, the process has additional features, such as system calls and a fi le system,
which are not provided by the bare hardware. The virtual-machine approach, on the other hand,
does not provide any additional function, but rather provides an interface that is identical to
the underlying bare hardware. Each process is provided with a (virtual) copy of the underlying
computer.
The resources of the physical computer are shared to create the virtual machines. CPU scheduling
can be used to share the CPU and to create the appearance that users have their own processor.
Spooling and a fi le system can provide virtual card readers and virtual line printers. A normal
user timesharing terminal provides the function of the virtual machine operator’s console.
LOVELY PROFESSIONAL UNIVERSITY 43