Information Technology Reference
In-Depth Information
Memory paging - Windows 95/98/NT uses a demand-paged virtual memory system,
which is based on a flat, linear address space accessed using 32-bit addresses. The system
allocates each process a unique virtual address space of 4 GB. The upper 2 GB is shared,
while the lower 2 GB is private to the application. This virtual address space is divided
into equal blocks (or pages).
MS-DOS Mode support - provides support for MS-DOS-based applications which must
have exclusive access to the hardware. When an MS-DOS-based application runs in this
mode then no other applications or processes are allowed to compete for system re-
sources. The application thus has sole access to the resources, as illustrated in Figure H.5.
Programs have access to
all the resources of the computer,
as if they were the only program running
Program 1
Virtual
Machine
Manager
Virtual
Machine
Manager
Program 2
Program 3
DOS
emulator
- Process scheduling
- Memory paging
- MS-DOS support
Creating virtual
memory (up to 2/4GB)
DOS
program
DOS
program
Figure H.5
Virtual Machine Manager
Windows 95/98 has a single VMM (named System VMM) in which all system processes
run. Win32-based and Win16-based applications run within this VMM. Each MS-DOS-
based application runs in its own VM.
H.5.1 Process scheduling and multitasking
This allows multiple applications and other processes to run concurrently, using either co-
operative multitasking or pre-emptive multitasking. In Windows 3. x , applications ran using
co-operative multitasking. This method requires that applications check the message queue
periodically and give up control of the system to other applications. Unfortunately, applica-
tions that do not check the message queue at frequent intervals can effectively 'hog' the
processor and prevent other applications from running. As this does not provide effective
multi-processing, Windows 95/98/NT uses pre-emptive multitasking for Win32-based appli-
cations (but also supports co-operative multitasking for computability reasons). Thus, the op-
erating system takes direct control away from the application tasks.
Win16 programs need to yield to other tasks in order to multitask properly, whereas
Win32-based programs do not need to yield to share resources. This is because Win32-based
applications (called processes) use multithreading, which provides for multi-processing. A
thread in a program is a unit of code that can get a time slice from the operating system to
Search WWH ::




Custom Search