MVDM Architecture
MVDM is designed to exploit the virtual 8086 (V86) mode of the 80386 processor,
which allows operating systems such as OS/2 Version 2.0 to execute multiple
DOS applications within the 80386 protected mode environment. Under OS/2
Version 2.0, each DOS application executes in a virtual DOS machine (VDM),
which runs as a single-threaded protected mode process. The operating system
scheduler controls task switching of VDMs in the same way as it does OS/2
application processes.
The MVDM kernel controls the state and operation of concurrent VDMs,
and is composed of the following four major components as shown in Figure
"MVDM Architecture".
The Virtual
DOS Machine Manager (VDMM) contains the mechanism to start
and interact with DOS applications. It creates, initializes, and terminates
VDMs. The VDMM manages system resources such as memory, timers, semaphores,
and files for all VDMs active in the system. The VDMM is responsible for
loading and initializing all virtual device drivers, in conjunction with
the Virtual Device Driver Manager. The VDMM is described in more detail
in MVDM Architecture.
8086 Emulation
manages communication between 8086 instruction streams and virtual
device drivers. This emulation performs 8086 instruction decoding, controls
the 80386 processor's I/O Privilege Map for each VDM, manages the reflection
of software interrupts for each VDM, routes IN/OUT instruction traps to
the appropriate virtual device driver, and manages various control structures
required by each virtual device driver. 8086 emulation is described in
more detail in 8086 Emulation.
DOS Emulation
emulates the function and operation of the DOS operating system
on a per-VDM basis. Each VDM emulates an entirely independent instance
of DOS. DOS services are emulated within the MVDM kernel, or by invoking
protected-mode services provided by the OS/2 kernel. For example, most
DOS file I/O functions are provided by the OS/2 file system. DOS 5.0 compatibility
is provided. DOS emulation is described in more detail in MVDM
DOS Emulation.
The Virtual
Device Driver Manager (VDDM) loads, initializes, and communicates
with virtual device drivers. Virtual device drivers are required to virtualize
the hardware and ROM BIOS, thereby allowing DOS applications to access hardware
devices and BIOS without affecting other VDMs or other non-V86 mode processes
in the system. The VDDM provides various system services, known as Virtual
Device Helper (VDH) services, to virtual device drivers. The Virtual
Device Driver Manager is described in more detail in Device
Drivers.
These four components interact with one another and with the OS/2 Version
2.0 operating system kernel to provide requested services to DOS applications
executing in VDMs.
[Back: Multiple Virtual DOS Machines]
[Next: Virtual Device Drivers]