Windows Internals covering windows server 2008 and windows vista- P2: In this chapter, we’ll introduce the key Microsoft Windows operating system concepts and terms we’ll be using throughout this book, such as the Windows API, processes, threads, virtual memory, kernel mode and user mode, objects, handles, security, and the registry. | one memory space. This model contrasts with asymmetric multiprocessing ASMP in which the operating system typically selects one processor to execute operating system kernel code while other processors run only user code. The differences in the two multiprocessing models are illustrated in Figure 2-2. Windows Vista and Windows Server 2008 also support two modern types of multiprocessor systems hyperthreading and NUMA non-uniform memory architecture . These are briefly mentioned in the following paragraphs. For a complete detailed description of the scheduling support for these systems see the thread scheduling section in Chapter 5. Naturally Windows also natively supports multicore systems because these systems have real physical cores simply on the same package the original SMP code in Windows treats them as discrete processors except for certain accounting and identification tasks such as licensing described shortly that distinguish between cores on the same processor and cores on different sockets. Hyperthreading is a technology introduced by Intel that provides many logical processors on one physical processor. Each logical processor has its CPU state but the execution engine and onboard cache are shared. This permits one logical CPU to make progress while the other logical CPUs are busy such as performing interrupt processing work which prevents threads from 40 Please purchase PDF Split-Merge on to remove this watermark. running on that logical processor . The scheduling algorithms are enhanced to make optimal use of multiprocessor hyperthreaded machines such as by scheduling threads on an idle physical processor versus choosing an idle logical processor on a physical processor whose other logical processors are busy. In NUMA systems processors are grouped in smaller units called nodes. Each node has its own processors and memory and is connected to the larger system through a cachecoherent interconnect bus. Windows on a NUMA system still runs .