Home Random Page


CATEGORIES:

BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism






Multiprocessor Support in Windows

Introduction

In the past, the typical Microsoft® Windows® computer had only a single processor. Multiprocessor configurations could be found in high-end servers and computing-intensive labs, but such systems were the exception rather than the rule. As technology improves and prices decrease, desktop applications are becoming more CPU intensive, requiring processing power that only a few years ago was found mainly on servers and in labs.

Hyper-threaded processors, which Windows treats as two CPUs, are already becoming common in machines for home and desktop environments. Soon, most new computers will be multiprocessor systems. All new drivers must be designed and tested for such systems.

Because the Windows kernel is fully preemptible, writing drivers to run on multiprocessor systems is no different from writing drivers to run on single-processor systems. However, errors in synchronization and locking are more likely to occur on multiprocessor systems because code from a single driver can run simultaneously on more than one processor. A driver that has been tested and debugged on single-processor systems may fail when run on a multiple-processor system because of previously undetected bugs.

To write drivers that operate correctly on all Windows platforms, you should be familiar with the following:

· Multiprocessor architectures that Windows supports

· Simultaneous thread execution

· Reentrancy and concurrency of standard driver routines

· Driver synchronization requirements

· Performance and scalability issues

· Tools for testing on multiprocessor hardware

 

In addition, Microsoft Windows Server™ 2003 includes limited support for cache-coherent non-uniform memory access (ccNUMA) architectures; expanded support is planned for the next client version of Windows, Microsoft Windows Vista™. This paper includes a brief discussion of driver issues for such architectures.

Multiprocessor Support in Windows

Windows supports symmetric multiprocessor (SMP) architectures. In SMP architectures, all CPUs are identical and have uniform access to memory and I/O control registers. Windows treats hyper-threaded architectures as two-CPU multiprocessors.

Figure 1 shows how CPUs, memory, and devices might be configured on an SMP system.

 

Figure 1. Organization of Traditional SMP System

On SMP architectures, each CPU has uniform access to memory, so that operations have the same effect regardless of which CPU issues them. Each CPU has its own cache.

By default, Windows assumes that any device can interrupt on any processor, although some chip sets might favor one CPU over another. When the device interrupts, its InterruptService routine runs immediately on the same processor that the device interrupted, and its DpcForIsr routine subsequently runs on the same processor also.

Microsoft provides separate executable images of the Windows kernel and several other system files for single-processor and multiprocessor machines. During installation, the correct files are loaded onto the hardware.



The number of processors supported depends on the edition of Windows, as summarized in Table 1. These numbers represent physical processors, not logical processors. Therefore, a hyper-threaded processor counts as only one processor for licensing purposes, even though the operating system treats it as two processors.

Table 1. Number of Processors Licensed for Windows Editions

Operating System Version Edition Number of processors
Windows Server 2003 Web
Enterprise
Standard
Datacenter 32 (32-bit architectures) 64 (64-bit architectures) 128 (in 2 partitions)
Windows XP Home
Professional
Windows 2000 Professional
Server
Advanced Server
Datacenter Server

 


Date: 2015-12-24; view: 774


<== previous page | next page ==>
 | Simultaneous Thread Execution
doclecture.net - lectures - 2014-2024 year. Copyright infringement or personal data (0.008 sec.)