WEB开发网
开发学院操作系统windows 2008 详解Windows Server 2008内核新变化 阅读

详解Windows Server 2008内核新变化

 2008-08-21 12:36:42 来源:WEB开发网   
核心提示: 在 Windows Server 2003 中,当线程进行内存分配时,详解Windows Server 2008内核新变化(10),内存管理器在分配内存时将优先考虑在线程当前执行的节点中进行分配,如果线程暂时调度到非理想节点,Windows Server 2008 I/O 系统将 DPC

在 Windows Server 2003 中,当线程进行内存分配时,内存管理器在分配内存时将优先考虑在线程当前执行的节点中进行分配。如果线程暂时调度到非理想节点,则在此期间执行的所有分配操作都将在非理想节点中执行。所以,当线程最终回到其理想节点中执行时,它将不再像最初一样紧挨着所分配内存中存储的数据或代码。

为解决这一问题,在 Windows Server 2008 中,内存管理器在所有线程内存分配时都将优先考虑线程的理想节点,即使线程正在另一节点附近执行。内存管理器还能自动了解处理器和节点之间的延迟,所以当理想节点中没有足够的可用内存时,它会检查与理想节点最近的另一节点。此外,当线程引用代码或数据时,内存管理器将把其待机列表中的页面迁移到线程的理想节点。

希望控制分配位置的应用程序可使用新的 NUMA 内存 API,它使这些应用程序能够为内存分配、文件映射视图和文件映射对象指定首选节点。对于与文件映射相关的分配,内存管理器会检查映射操作是否指定节点,然后检查文件映射对象是否指定节点,如果两者都未指定,则最后它将回来继续选用线程的理想节点。

在 Windows Server 2008 之前,用于存储或网络 I/O 的中断及其相关的延缓进程调用 (DPC) 能够在任意 CPU 上执行,包括在与启动 I/O 操作处于不同节点的 CPU 上执行。这有可能导致 I/O 操作中的数据读取或写入在访问数据的节点以外的其他节点的内存中执行。

为避免这种情况,Windows Server 2008 I/O 系统将 DPC 执行定向到启动 I/O 操作的节点中的 CPU,并且拥有支持 PCI 总线 MSI-X(消息信号中断标准的扩展)设备的系统还可以通过使用设备驱动程序来进一步让 I/O 在本地完成,因为这些设备驱动程序将利用 Windows Server 2008 API 将 I/O 中断定向到启动该 I/O 的处理器。

上一页  5 6 7 8 9 10 

Tags:详解 Windows Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接