Overview of Windows NT/2000/XP/...

(All of the above are desirable properties of any good O/S!)

Multithreading

    The ability of the operating system to support multiple paths of execution within a single process.  It enables an operating system process or application process to perform multiple functions simultaneously, without waiting for other functions within the process to complete.

Symmetric Multi-Processing (SMP)

    An SMP computer contains more than one identical CPU.  These computers can contain from 2 to 32 processors.  Each of these CPUs has equal access to all memory, devices, and other resources.

    Windows NT uses spin locks to synchronize CPUs on an SMP computer.  Each thread that needs to manipulate critical data first checks to see if any other thread is already doing so.  If not, the thread holds the lock and keeps all other threads out. Another thread, executing on a different CPU, waits or spins in a loop until the lock is released.

There are two kernels:
Ntkrnlmp.exe    for SMP (with spin lock code)
Ntoskrnl.exe    for single-CPU (no spin lock code)

16-bit Applications in a 32-bit World

To run DOS applications, NT creates a virtual DOS machine (VDM).  A VDM is a 32-bit Windows (Win32) application that provides a complete virtual Intel x86 environment running DOS.  Each DOS application gets its own VDM, and each VDM runs in its own address space.

To run 16-bit Windows (Win16) applications, NT uses a Win32 subsystem called Windows On Windows (WOW), which consists of a single VDM to run to support all Win16 applications.  Within this VDM, a thread is provided for each application, and these threads are co-operatively multitasked.

System Services

Graphics Device Interface (GDI)

    Provides functions that control output to video displays, printers, plotters, and other graphics devices.

User

    Handles the management of windows and their parts by making calls to the GDI.

Spooler

    Supports printing by queuing up print jobs and managing their distribution to physical printers.

Object Manager

    Almost every system service is performed on an object.

    An object is a representation of a physical or conceptual entity in the system.

    An object is described using a data structure that contains information on its type, the actions that can be performed on it, a set of attributes defining the behaviour of the object, and its relationship to other objects.

Virtual Memory Manager (VMM)

    Windows NT can recognize up to 4 GB of physical RAM.  The entire address space is divided into 4K pages.

I/O Manager

    Manages all the input and output for the system.

    Provides communication among I/O drivers.

    Each I/O operation is described by an I/O Request Packet (IRP)

    Synchronous vs. asynchronous I/O, Caching

Kernel

The NT kernel's main goal is to feed all available CPUs with a continuous supply of useful work (in the form of executable threads), to operate the system as efficiently as possible.

Hardware Abstraction Layer (HAL)

Hides (most of) the implementation details of the hardware platform from the operating system and device drivers ("virtual hardware").

HAL allows the O/S to handle hardware-dependent issues such as:

Back to the CTEC1863 page