Windows Server 2003体系结构new_第1页
Windows Server 2003体系结构new_第2页
Windows Server 2003体系结构new_第3页
Windows Server 2003体系结构new_第4页
Windows Server 2003体系结构new_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Windows Server 2003体系结构分析专 业:网络工程班 级:网络10601学 号:200606167姓 名:缪 军 长江大学计算机科学学院 2009-5-25Windows Server 2003体系结构了解一个操作系统的体系结构就像了解一部汽车的工作原理一样,即使不知道汽车的技术细节,驾驶员也能驾驶汽车从A地到达B地。但是如果汽车出了毛病,就得把车送到车间或修理工那里去修理。修理工会告诉您应该早些更换机油,或者车胎需要做动平衡调整,或者是火花塞被脏东西堵了。如果知道了汽车的工作原理,就会更好地保养汽车、减少损耗,甚至可以自己对它进行维修了。尽管操作系统比汽车发动机更复杂,但是道

2、理是相似的。如果了解核心部分的各种组件、文件系统和OS是如何利用处理器、内存、硬件等,就可以更好地管理机器。1.1 操作系统模式基于Windows 2000 Server之上的Windows 2003是一个模块化的、基于组件的操作系统。这个操作系统中的所有组件对象都提供接口,以便其他对象和进程与它们交互,从而利用这些组件所提供的各种功能和服务。这些组件协同工作便能执行特定的操作系统任务。Windows 2003体系结构包含两个主要的层次:用户模式和内核模式。这两种模式和各种子系统如图1-1所示。图1-1 Windows Server 2003系统体系结构(简图)1.2 用户模式Windows

3、2003用户模式层是一种典型的应用程序支持层,它由环境子系统和整合子系统组成,同时支持Microsoft和第三方应用软件。它是操作系统的一部分,独立的软件供应商可以在其上使用发布的API和面向对象的组件进行操作系统调用。所有的应用程序和服务都安装在用户模式层。1.2.1 环境子系统环境子系统的功能是运行为不同操作系统所编写的应用程序。它能够截取应用程序对特定操作系统API的调用,然后将它们转换成为Windows 2003可以识别的格式,转换后的API调用再传递到处理请求所需要的操作系统组件,最后再将调用所返回的返回码或返回信息转换回应用程序能够识别的格式。这些子系统在Windows 2003中

4、并不是新功能,但与在NT中相比,它们在这几年中已经有了显著的改进。一些实际应用表明,应用程序在Windows 2003中比在它们当初所设计的目标操作系统中运行得更好。很多应用程序在Windows 2003中也更加安全。例如,Windows 2003中止DOS应用程序时不会对服务器稳定性产生影响,而通常情况下,它会使运行DOS的机器崩溃。表1-1列出的是Windows 2003环境或应用程序子系统。表1-1 环境子系统环境子系统用途Windows 2003 Win32(32位)支持基于Win32的应用程序。这个子系统也支持16位Windows和DOS应用程序。所有应用程序的I/O和GUI功能都在

5、这里处理。为了支持终端服务,该子系统已经得到很大的增强OS/2支持16位OS/2应用程序(主要是Microsoft OS/2)POSIX支持兼容POSIX的应用程序(通常为UNIX)非Win32子系统只对非Win32的旧式应用程序提供基本支持。对于这些子系统并没有太多的要求,保留它们只是为了运行最简单的实用程序和兼容POSIX或OS/2的函数调用(这些调用通常使用C语言)。例如,POSIX子系统就是为了满足运行UNIX实用程序vi和grep的要求而设置的。POSIX子系统不是作为UNIX和Windows 2003高级集成的一种方法保留的,例如,如果要在Windows 2003上运行UNIX s

6、hell,您仍然需要安装UNIX服务。在Windows 2003上运行非Windows应用程序会受到一些局限和约束,这些影响来自基础操作系统。关于这些局限和约束,下面将有详细的列举描述,其中大部分约束也包括用户模式的、基于Win32的应用程序: 软件不能直接访问硬件。换句话说,如果应用程序要求硬盘空间时,系统将禁止它直接访问硬件以获得空间信息,它将访问的是用户模式对象。用户模式对象与内核模式对象进行对话,对话由内核模式对象向下传递到操作系统堆栈,再到硬件抽象层(Hardware Abstraction Layer,HAL),然后信息再逐层向上传递,由堆栈到接口。这个过程就是通常所说的切换处理(

7、handoff processing)。Win32代码中函数实质上都获得一个返回值,使开发人员不必和硬件对话。这对开发人员和操作系统都是有好处的。检查调用有效性的API可以保护操作系统,而开发人员则直接面对简单的调用级接口,它通常只需写一行代码,而不是一万行。 不能直接访问设备驱动程序。上述原则同样适用于设备驱动程序。硬件制造商为Windows 2003建立了访问硬件的驱动程序。驱动程序同样也不能对硬件进行直接访问,而是和由设备驱动程序API提供的抽象对象进行对话。 软件受限于内存中分配的地址空间。这项约束保护操作系统不受流氓应用程序的影响,这些应用程序会试图访问所有可访问的内存。这在Wind

8、ows 2003中已经不可能了,应用程序只能在所分配的地址空间中活动。 Windows 2003与Windows 2000一样,使用硬盘空间作为准RAM(quasi-RAM)。应用程序并不在意内存的类型或来源,它对于应用程序是透明的。虚拟内存是系统中所有内存的组合,它既包括机器中的物理内存,又包括系统中的交换文件。交换文件用来保存那些不能保存在硬件RAM中的信息。 用户模式子系统中应用程序的运行优先级比在内核模式中运行的所有服务和例程都低。这也意味着它们对CPU的访问要比内核模式进程的优先级低。1.2.2 整合子系统整合子系统用于执行某些关键操作系统功能。表1-2列出了这些服务。表1-2 整合

9、子系统整合子系统用途安全子环境执行与用户权利和访问控制有关的服务。访问控制包括对整个网络及操作系统对象的保护,这些对象是以一定的方法在操作系统中定义或抽象的。安全子环境也处理登录请求并开始登录验证过程服务器服务该服务使Windows 2003成为网络操作系统。所有网络服务都源于服务器服务工作站服务这项服务在用途上与服务器服务相类似。它更多地面向用户对网络的访问(在禁用这项服务的机器上也能进行工作)这些系统几乎不需要进行管理。在服务控制管理器(Service Control Manager)中可以访问这些服务,也可以通过手动方式启动和停止这些服务。1.3 内核模式Windows 2003内核模式

10、是能访问系统数据和硬件的层。它由几个组件组成(参见图1-1)。1.3.1 Windows 2003执行程序执行程序是指所有执行程序服务的集合名词。它包含很多操作系统中的I/O例程,并实现对关键对象的管理功能,尤其是安全性方面。执行程序还包含系统服务组件(在两种OS模式中都可以访问)和内部内核模式例程(任何运行在用户模式中的代码都不能访问)。内核模式组件如下所示。 I/O管理器:管理机器设备的输入和输出。具体包括以下设备。 文件系统:将文件系统请求转换为与设备相关的调用。 设备驱动程序:管理直接访问硬件的设备驱动程序。 高速缓存管理器:隐藏在I/O管理器代码中,通过缓存磁盘读出的数据来管理I/O

11、性能。还能缓存读请求和写请求,并能处理对硬件的脱机写入或后台写入。 安全性引用监视器:该组件可以实施计算机的安全策略。 进程间通信管理器(IPC):该组件的作用使它存在于操作系统的各个角落。它的本质作用是管理客户端和服务器进程间的通信。它由本地过程调用(LPC)工具和远程过程调用(RPC)工具组成,前者用来管理同一台计算机上的客户端和服务器进程间的通信,后者用来管理不同机器上客户端和服务器之间的通信。 内存管理器或虚拟内存管理器(VMM):该组件用来管理虚拟内存。它为每个进程提供一段虚拟地址空间,每个进程占有并保护它的虚拟地址空间以维护系统的完整性。它同时还控制虚拟RAM对硬盘的访问要求,这就

12、是通常所说的分页技术。 进程管理器:该组件可以创建和终止由系统服务或应用程序产生的进程和线程。 即插即用管理器:该组件利用各种设备驱动程序,为与硬件相关的配置和服务提供即插即用服务及通信。 电源管理器:该组件控制系统中的电源管理。它利用各种电源管理API进行工作,管理与电源管理请求有关的事件。 窗口管理器和图形设备接口(GDI):驱动程序Win32k.sys将两个组件服务结合在一起,并管理显示系统,分别说明如下: 窗口管理器:该组件管理屏幕输出和窗口显示。它同时还处理鼠标和键盘的I/O数据。 GDI:该组件是最难以编写代码的接口,在Win16时代,它总是与内存一起提供。它利用一些组件来负责屏幕

13、和界面图形的绘制和处理,这些组件负责把这些对象提交给打印机对象和其他图形输出设备。 对象管理器:该引擎管理系统对象。它可以创建对象、删除不需要的对象。它同时可以进行资源管理,例如创建对象时需要分配的内存。除了这些服务之外(如图1-1所示),还有组成内核模式的3个核心组件,这包括设备驱动程序组件、Microkernel和硬件抽象层(HAL)。1.3.2 设备驱动程序该组件将驱动程序调用转换为操作硬件的实际例程。1.3.3 Microkernel该组件是操作系统的核心(有人将其本身看作是操作系统,其他所有部分看作是服务)。它管理微处理器上的线程处理、线程排队、多任务,等等。Windows 2003

14、 Microkernel具有抢先权,从本质上看,这表明线程可以被中断或重新排队。1.3.4 硬件抽象层硬件抽象层(HAL)实际上对其他设备和组件隐藏了硬件接口的详细信息。换句话说,它是位于真实硬件之上的抽象层,所有到硬件的调用都是通过HAL来进行的。HAL包含处理硬件相关的I/O接口、硬件中断等所必需的硬件代码。该层也负责与Intel和AMD相关的支持,使一个执行程序可以在这二者中的任何一个处理器上运行。1.4 Windows 2003处理体系结构Windows Server 2003采用对称多处理(SMP)体系结构。也就是说,首先,操作系统可以在多个CPU上运行;其次,它可以使所有进程根据需

15、要使用多个CPU。换句话说,如果一个CPU被完全占用了,应用程序或服务程序所产生的线程可以在其他可用的CPU上进行处理。Windows 2003将它的多任务和多线程能力与SMP能力结合在一起。如果线程处于等待执行状态,操作系统将安排处理器处理这个等候线程。线程执行的负担被均匀分摊到可用的CPU上。对称多处理技术可以确保操作系统使用所有的可用处理器资源,显然这将提高整个系统的处理速度。Windows Server 2003 Standard版支持4路(4 CPU)对称多处理。Enterprise版支持8路SMP,Datacenter Server可支持32路SMP,而Web版本最多只能支持2路S

16、MP。如果需要,用户还可以从Microsoft获得代码,依据合同将 OS编译成所要求的SMP规范。1.5 Windows 2003内存管理Windows 2003与Windows 2000 Server在内存处理上几乎相同,Windows 2000在 Windows NT 4.0的基础上进行了很大的改进。它包括一个内存模型,这个内存模型基于一个平面的、线性的仍然为32位的地址空间。在Windows 2003操作系统中使用两种类型的内存。第一种是物理内存,包括安装在系统主板上RAM芯片中的内存,典型的有SDRam、DDRam、RAMBus RAM等几种形式。第二种是虚拟内存,它是系统中所有内存的

17、组合,并包括如何使这些内存可用于操作系统的技术。虚拟内存管理器(Virtual Memory Manager,VMM)用于管理系统内存。它管理并组合系统中所有的物理内存,使应用程序和操作系统可以获得更多的可用内存。这比实际安装在系统中RAM芯片上的内存要大得多。通过防止一个进程侵入另一个进程的地址空间,VMM能保护系统的内存资源。这在DOS或 Windows早期版本等操作系统中是一个令人头痛的问题。无论是物理内存还是虚拟内存,每个内存字节都用一个唯一的地址表示。物理RAM具有局限性,因为Windows 2003只能根据系统中物理RAM的数量来编址。但是虚拟编址就不一样了,Windows 200

18、3 Web版本最多可以支持2GB RAM,Windows Server 2003 Standard版最多可以支持4GB RAM,而Enterprise版可支持64GB,在64位处理器上Datacenter版可以支持512GB RAM。VMM管理内存,它具有下面两个主要功能。 VMM拥有一个内存映射表,它可以记住分配给每个进程的虚拟地址列表。可以确定要将实际数据映射到的地址位置。换句话说,它担当翻译服务的角色,负责将虚拟内存映射到物理内存。这项功能对于应用程序是透明的,应用程序就像访问物理内存一样运行。 在RAM用完时,VMM会根据需要将内存内容移到硬盘中去。这就是通常所说的分页。因此,Wind

19、ows 2003可以访问4GB地址空间,这些空间是虚拟的,可能由RAM和硬盘空间组成。虽然我们讨论的是4GB地址空间,但是这些空间与系统如何使用内存有关。实际上,应用程序可用的地址空间只有2GB或者更少,因为有2GB由所有在用户模式运行的进程共享,而剩下的2GB分配给内核模式线程。可以使用/3GB或者/PAE(即Physical Address Extension)来更改默认的地址空间,以获得大于4GB的地址空间。现在讨论4GB空间的“高端”和“低端”部分,各自包含2GB寻址空间。高端部分只为内核模式进程保留;低端空间既可用于用户模式,也可用于内核模式进程。高端部分也在其地址空间中保留一部分低

20、端区域,用于直接映射硬件地址。低端部分也是在分页池中维护的。有非分页池和分页池两种,分页池的内容可以被换出,转存到磁盘,通常分配给应用程序;而非分页池必须保留在物理RAM中,每个分页的大小为4KB。1.6 深入分页分页就是将数据移出和移入物理内存的过程。如果物理内存池满了,而Windows还需要更多内存,VMM就把物理内存中暂时不用的数据转出到磁盘中,这个磁盘储存库称为分页文件(page file)。每个进程所分配的地址空间都以页的方式存在,它们可以被标识为有效页或无效页。有效页是指物理内存中的页,对于任何应用程序都是有效的;而无效页是指存储在磁盘上的页,对于任何应用程序都是无效的。在应用程序需要访问已经移动到磁盘上的无效页(脱机内存中的数据)时,系统将认为这是页错误(page fault)。页错误进程类似于一个执行线程,它在遇到错误或异常事件后会根据例程而采用不同的路径。在这种情况下,页错误可以被妥善地处理,VMM“俘获”这个错误,然后访问相关分页文件中的数据,并在RAM中恢复这些数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论