《c2_Windows 2000XP的体系结构教学文案》由会员分享,可在线阅读,更多相关《c2_Windows 2000XP的体系结构教学文案(70页珍藏版)》请在金锄头文库上搜索。
1、c2_Windows 2000XP的体系结构本章要点操作系统的设计目标操作系统的设计目标操作系统的设计阶段操作系统的设计阶段几种常见的操作系统体系结构范型几种常见的操作系统体系结构范型Windows 2000/XPWindows 2000/XP的操作系统模型的操作系统模型Windows 2000/XPWindows 2000/XP的体系结构的体系结构Windows 2000/XPWindows 2000/XP的重要组成部分的重要组成部分Windows 2000/XPWindows 2000/XP的系统机制的系统机制Windows 2000/XPWindows 2000/XP注册表、服务控制与管
2、理注册表、服务控制与管理机制机制Windows 2000/XPWindows 2000/XP的设计目标:的设计目标:可扩充性可扩充性 可移植性可移植性可靠性及坚固性可靠性及坚固性兼容性兼容性性能性能操作系统的设计考虑功能设计:功能设计:操作系统应具备哪些功能操作系统应具备哪些功能 算法设计:算法设计:选择和设计满足系统功能的算法和策选择和设计满足系统功能的算法和策略,并分析和估算其效能略,并分析和估算其效能 结构设计:结构设计:选择合适的操作系统结构选择合适的操作系统结构 操作系统结构设计 按照系统的功能和特性要求,选择合适的结按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将
3、系统逐步地分解、构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强易读、易修改,而且使用方便,适应性强操作系统体系结构问题程序结构程序结构程序结构的两层含义:程序结构的两层含义: 整体结构、局部结构整体结构、局部结构程序的结构良好的准则程序的结构良好的准则软件结构软件结构操作系统体系结构操作系统体系结构大型软件,模块划分、接口定义复杂大型软件,模块划分、接口定义复杂并发性,接口复杂、信息交换频繁并发性,接口复杂、信息交换频繁计算机体系结构日益复杂,应用扩大、使用要求提高计算机体
4、系结构日益复杂,应用扩大、使用要求提高使得操作系统体系结构日趋复杂使得操作系统体系结构日趋复杂几种常见的操作系统结构模块组合结构模块组合结构的特点与适应性模块组合结构的特点与适应性模块间转接随便模块间转接随便数据基本上作为全程量处理数据基本上作为全程量处理常常关中断,系统的并发性难以提高常常关中断,系统的并发性难以提高层次结构层次结构设计方法的核心思想层次结构设计方法的核心思想例如例如E.W.DijkstraE.W.Dijkstra的的THETHE系统:系统:12345处理器分配和多道程序内存和磁盘管理操作员进程通信输入/输出管理用户程序操作员0分层原则分层原则与硬件相关的与硬件相关的最底层最
5、底层计算机具有多操作方式计算机具有多操作方式多操作方式共有的基本部分放多操作方式共有的基本部分放在内层,具体操作方式相关的方在外层;在内层,具体操作方式相关的方在外层;OSOS基于进程的概念,内核放在内层;内层中又分多层,基于进程的概念,内核放在内层;内层中又分多层,公用功能在最内层公用功能在最内层。层次结构的特点层次结构的特点分解成许多功能单一的模块,各模块之间有清晰的组分解成许多功能单一的模块,各模块之间有清晰的组织结构和依赖关系织结构和依赖关系具有更高的可读性和可适应性具有更高的可读性和可适应性层次结构是单向依赖的,上层模块建立在下层基础上,层次结构是单向依赖的,上层模块建立在下层基础上
6、,设计了比较可靠的基础设计了比较可靠的基础很容易增加或替换掉一层而不影响其它层次很容易增加或替换掉一层而不影响其它层次便于修改、扩充便于修改、扩充 层次结构的层间关系全序:同层模块不互相调用,各层简单向全序:同层模块不互相调用,各层简单向半序:有循环半序:有循环第第3 3层层第第2 2层层第第1 1层层第第0 0层层全序半序进程分层结构进程分层结构实现代价较大:实现代价较大:必须设立一个进程控制块,用以保留进程的状态信息,增加必须设立一个进程控制块,用以保留进程的状态信息,增加了内存开销了内存开销进程之间的控制转移、状态保留及信息传送,均由核心去管进程之间的控制转移、状态保留及信息传送,均由核
7、心去管理,时间消耗多,效率下降理,时间消耗多,效率下降系统并发活动过多,调度负担过重,且同步操作过于分散,系统并发活动过多,调度负担过重,且同步操作过于分散,易于造成死锁,影响了系统的安全性易于造成死锁,影响了系统的安全性层次结构的两种类型核心核心层次管程结构层次管程结构进程:并发单位进程:并发单位类程:专用资源的抽象类程:专用资源的抽象 管程:共享资源的抽象管程:共享资源的抽象 一个动态的系统由内核和一组有限个满足规定调用关系一个动态的系统由内核和一组有限个满足规定调用关系的进程的进程P P、类程、类程C C和管程和管程MM构成构成。其中进程是系统中唯一能动的成份,管程和类程都是被其中进程是
8、系统中唯一能动的成份,管程和类程都是被动成份动成份 优点优点采用层次管程结构的系统结构清晰、统一采用层次管程结构的系统结构清晰、统一同步操作相对集中,系统安全性较高同步操作相对集中,系统安全性较高用高级语言书写程序,研制周期短,通过编译技术获用高级语言书写程序,研制周期短,通过编译技术获取更高的灵活性和效率取更高的灵活性和效率只用一种概念描述并发,减少了不必要的并行性,减只用一种概念描述并发,减少了不必要的并行性,减少了系统开销。少了系统开销。缺点:缺点:管程嵌套问题比较难于高效的解决管程嵌套问题比较难于高效的解决不便于管理多个资源和全局性资源不便于管理多个资源和全局性资源 虚拟机结构 如如I
9、BMIBM大型机上的系列操作系统大型机上的系列操作系统基本思想:基本思想:系统应该提供系统应该提供多道程序能力多道程序能力及及一个比裸机有一个比裸机有更方便扩展界面的计算机更方便扩展界面的计算机 。但二者的实现应相互独立。但二者的实现应相互独立特点特点虚拟机概念可以实现完全保护虚拟机概念可以实现完全保护用软件从硬件逐层扩展用软件从硬件逐层扩展虚拟机方法把多道程序和扩展机器的功能完全分开,使每一部虚拟机方法把多道程序和扩展机器的功能完全分开,使每一部分都简单、灵活,更易于维护。分都简单、灵活,更易于维护。 370裸机VM/370CMSCMSCMS系统调用陷入I/O指令陷入若干个370虚拟机CMS
10、: 会话监控系统微内核(客户/服务器结构)CMUCMU的的MachMach、早期的、早期的Windows NTWindows NT非常适宜于应用在网络环境下,应用于分布式处理的计算环境非常适宜于应用在网络环境下,应用于分布式处理的计算环境中中 由下面两大部分组成由下面两大部分组成运行在核心态的运行在核心态的“ “微微” ”内核内核用户态,以用户态,以C/SC/S模式运行的若干进程,通过内核进行通信模式运行的若干进程,通过内核进行通信主要特点主要特点机制(内核)与策略(服务进程)分离比较彻底机制(内核)与策略(服务进程)分离比较彻底可靠可靠灵活灵活适合分布式计算的需求适合分布式计算的需求缺点:缺
11、点:效率较低效率较低其它体系结构外展式核心(外展式核心(ExokernelsExokernels)这种观点认为操作系统应该只负责在竞争的用户之间安全、有效这种观点认为操作系统应该只负责在竞争的用户之间安全、有效的分配计算资源的分配计算资源 传统操作系统的绝大部分功能应该在系统库中以可选的方式链接传统操作系统的绝大部分功能应该在系统库中以可选的方式链接进用户程序进用户程序可扩展系统可扩展系统可扩展系统认为应该将尽可能多的模块以一种受保护的方式放进可扩展系统认为应该将尽可能多的模块以一种受保护的方式放进核心当中。操作系统的构造者可以先构造从一个只包含稍微多于核心当中。操作系统的构造者可以先构造从一
12、个只包含稍微多于核心保护机制的一个最小核心。而其它的功能则通过不断的往核核心保护机制的一个最小核心。而其它的功能则通过不断的往核心中添加受保护的模块实现。心中添加受保护的模块实现。 2.2 Windows 2000/XP系统模型融合了分层操作系统和微内核操作系统的设计思想,使用融合了分层操作系统和微内核操作系统的设计思想,使用面向对象的分析与设计,采用整体式的实现面向对象的分析与设计,采用整体式的实现Windows 2000/XPWindows 2000/XP通过硬件机制实现了核心态以及用户态通过硬件机制实现了核心态以及用户态两个特权级别两个特权级别 。对性能影响很大的操作系统组件运行在核。对
13、性能影响很大的操作系统组件运行在核心态。心态。核心内没有保护核心内没有保护。Windows 2000/XPWindows 2000/XP的核心态组件使用了面向对象设计原则的核心态组件使用了面向对象设计原则出于可移植性以及效率因素的考虑,大部分代码使用了基出于可移植性以及效率因素的考虑,大部分代码使用了基于于C C语言的对象实现。语言的对象实现。Windows 2000/XPWindows 2000/XP的很多系统服务运行在核心态,这使得的很多系统服务运行在核心态,这使得Windows 2000/XPWindows 2000/XP更加高效,而且也是相当稳定的。更加高效,而且也是相当稳定的。系统支
14、持进程服务进程用户程序环境子系统子系统动态链接库图形引擎图形引擎执行体执行体执行体执行体核心核心核心核心设备驱动设备驱动设备驱动设备驱动HALHAL用户态用户态核心态核心态Windows 2000/XP的构成用户态组件用户态组件系统支持进程系统支持进程(system support processsystem support process),不是),不是Windows 2000/XPWindows 2000/XP服务,不由服务控制器启动。服务,不由服务控制器启动。服务进程服务进程(service processservice process),),Windows 2000/XPWindows
15、 2000/XP的服的服务。务。环境子系统环境子系统(enviroment subsystemsenviroment subsystems),它们向应用),它们向应用程序提供操作系统功能调用接口包括:程序提供操作系统功能调用接口包括:Win32Win32、POSIXPOSIX和和OS/2 1.2OS/2 1.2。应用程序应用程序(user applicationsuser applications),五种类型:),五种类型:Win32Win32、Windows 3.1Windows 3.1、MS-DOSMS-DOS、POSIX POSIX 或或OS/2 1.2OS/2 1.2。 子系统动态链接
16、库子系统动态链接库:调用层转换和映射:调用层转换和映射核心态组件核心态组件核心(核心(kernelkernel)包含了最低级的操作系统功能,例如线程调度、中包含了最低级的操作系统功能,例如线程调度、中断和异常调度、多处理器同步等。同时它也提供了执行体断和异常调度、多处理器同步等。同时它也提供了执行体(ExecutiveExecutive)用来实现高级结构的一组例程和基本对象。)用来实现高级结构的一组例程和基本对象。执行体执行体包含基本的操作系统服务,例如内存管理器、进程和线程包含基本的操作系统服务,例如内存管理器、进程和线程管理、安全控制、管理、安全控制、I/OI/O以及进程间的通信。以及进程
17、间的通信。硬件抽象层(硬件抽象层(HAL, Hardware Abstraction LayerHAL, Hardware Abstraction Layer)将内核、设备驱将内核、设备驱动程序以及执行体同硬件分隔开来,实现硬件映射。动程序以及执行体同硬件分隔开来,实现硬件映射。设备驱动程序(设备驱动程序(Device DriversDevice Drivers)包括文件系统和硬件设备驱动程包括文件系统和硬件设备驱动程序等,其中硬件设备驱动程序将用户的序等,其中硬件设备驱动程序将用户的I/OI/O函数调用转换为对特定函数调用转换为对特定硬件设备的硬件设备的I/OI/O请求。请求。图形引擎图形引
18、擎包含了实现图形用户界面(包含了实现图形用户界面(GUIGUI,Graphical User Graphical User InterfaceInterface)的基本函数。)的基本函数。 可移植性的获得两种方法两种方法分层的设计分层的设计 依赖于处理器体系结构或平台的系统底层部分被隔依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。提供操作系统可移植性的平台之外。提供操作系统可移植性的两个关键组件是两个关键组件是两个关键组件是两个关键组件是HALHAL和内核。和内核。和内核。和
19、内核。依赖于体系结构的功能在内核中实现,在相同体系结构中,因计依赖于体系结构的功能在内核中实现,在相同体系结构中,因计算机而异的功能在算机而异的功能在HALHAL中实现。中实现。Windows 2000/XPWindows 2000/XP大量使用高级语言大量使用高级语言执行体、设备驱动程序执行体、设备驱动程序等用等用C C语言编写,图形用户界面用语言编写,图形用户界面用C+C+编写。只有那些必须和系编写。只有那些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少。编语言编写的。汇编语言代
20、码分布集中且少。 对称多处理器支持代码对多处理器的可伸缩性好代码对多处理器的可伸缩性好完善的完善的I IPCPC和锁机制解决资源竞争问题和锁机制解决资源竞争问题核心态组件代码可重入程度极高核心态组件代码可重入程度极高多优先级抢占式调度(利用系统陷阱调度),多数多优先级抢占式调度(利用系统陷阱调度),多数核心态组件代码都可以被抢占核心态组件代码都可以被抢占由由NTOSKRNL.EXENTOSKRNL.EXE屏蔽屏蔽SMPSMP硬件设置,绝大多数组硬件设置,绝大多数组件不可见、也无需关心,。件不可见、也无需关心,。2.3 Windows 2000/XP的构成P43 图2-5 windows2000
21、/xp体系结构内核内核内核对象内核对象硬件支持硬件支持硬件抽象层硬件抽象层执行体执行体驱动程序驱动程序环境子系统与动态链接库环境子系统与动态链接库Win32Win32PosixPosixOs/2Os/2Ntdll.dllNtdll.dll系统支持进程系统支持进程内核功能功能线程安排和调度线程安排和调度陷阱处理和异常调度陷阱处理和异常调度中断处理和调度中断处理和调度多处理器同步多处理器同步供执行体使用的基本内核对象供执行体使用的基本内核对象 始终运行在核心态,代码精简,可移植性好。除了中始终运行在核心态,代码精简,可移植性好。除了中断服务例程(断服务例程(ISRISR,interrupt ser
22、vice routineinterrupt service routine),正在),正在运行的线程不能抢先内核。运行的线程不能抢先内核。内核对象内核对象帮助控制、处理并支持执行体对象的操作,以降低系帮助控制、处理并支持执行体对象的操作,以降低系统策略代价统策略代价控制对象,这个对象集和包括内核进程对象、异步过控制对象,这个对象集和包括内核进程对象、异步过程调用(程调用(APCAPC,asynchronous procedure callasynchronous procedure call)对象、)对象、延迟过程调用(延迟过程调用(DPCDPC,deferred procedure call
23、deferred procedure call)对象)对象和几个由和几个由I/OI/O系统使用的对象,例如中断对象。系统使用的对象,例如中断对象。调度程序对象集合负责同步操作并影响线程调度。调调度程序对象集合负责同步操作并影响线程调度。调度程序对象包括内核线程、互斥体(度程序对象包括内核线程、互斥体(MutexMutex)、事件)、事件(EventEvent)、内核事件对、信号量()、内核事件对、信号量(SemaphoreSemaphore)、定)、定时器和可等待定时器时器和可等待定时器 内核与硬件使得执行体和设备驱动程序同硬件无关使得执行体和设备驱动程序同硬件无关 实现手段:一组在多个体系结
24、构上可移植、同实现手段:一组在多个体系结构上可移植、同语义的接口语义的接口内核也有部分代码不具有移植性内核也有部分代码不具有移植性支持虚拟支持虚拟80868086模式的代码,用以运行一些古老的模式的代码,用以运行一些古老的1616位位DOSDOS程序程序高速缓存管理高速缓存管理描述表切换描述表切换硬件抽象层(HAL)实际硬件与实际硬件与Windows 2000/XPWindows 2000/XP抽象计算机描述的接抽象计算机描述的接口层和功能映射层口层和功能映射层隐藏各种与硬件有关的细节,例如隐藏各种与硬件有关的细节,例如I/OI/O接口、中断接口、中断控制器以及多处理器通信机制等控制器以及多处
25、理器通信机制等实现多种硬件平台上的可移植性实现多种硬件平台上的可移植性执行体提供的功能性调用提供的功能性调用从用户态导出并且可以调用的函数。这些函数的接从用户态导出并且可以调用的函数。这些函数的接口在口在NTDLL.DLLNTDLL.DLL中。通过中。通过Win32APIWin32API或一些其他的环或一些其他的环境子系统可以对它们进行访问。境子系统可以对它们进行访问。从用户态导出并且可以调用的函数,但当前通过任从用户态导出并且可以调用的函数,但当前通过任何文档化的子系统函数都不能使用。何文档化的子系统函数都不能使用。在在Windows 2000 DDKWindows 2000 DDK中已经导
26、出并且文档化的核中已经导出并且文档化的核心态调用的函数。心态调用的函数。在核心态组件中调用但没有文档化的函数。例如在在核心态组件中调用但没有文档化的函数。例如在执行体内部使用的内部支持例程。执行体内部使用的内部支持例程。组件内部的函数。组件内部的函数。 包含的功能实体包含的功能实体进程和线程管理器创建及中止进程和线程。对进程和线程的基本支进程和线程管理器创建及中止进程和线程。对进程和线程的基本支持在持在Windows 2000Windows 2000内核中实现,而执行体给这些低级对象添加附加内核中实现,而执行体给这些低级对象添加附加语义和功能。语义和功能。虚拟内存管理器实现虚拟内存管理器实现“
27、 “虚拟内存虚拟内存” ”。内存管理器也为高速缓存管理器。内存管理器也为高速缓存管理器提供基本的支持。提供基本的支持。安全引用监视器在本地计算机上执行安全策略。它保护了操作系统安全引用监视器在本地计算机上执行安全策略。它保护了操作系统资源,执行运行时对象的保护和监视。资源,执行运行时对象的保护和监视。I/OI/O系统执行独立于设备的输入系统执行独立于设备的输入/ /输出,并为进一步处理调用适当的输出,并为进一步处理调用适当的设备驱动程序。设备驱动程序。高速缓存管理器通过将最近引用的磁盘数据驻留在主内存中来提高高速缓存管理器通过将最近引用的磁盘数据驻留在主内存中来提高文件文件I/OI/O的性能,
28、并且通过在把更新数据发送到磁盘之前将它们在内的性能,并且通过在把更新数据发送到磁盘之前将它们在内存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速访问。访问。 对象管理:创建、管理以及删除对象管理:创建、管理以及删除Windows 2000/XPWindows 2000/XP的执行体对象的执行体对象和用于代表操作系统资源的抽象数据类型,例如进程、线程和各和用于代表操作系统资源的抽象数据类型,例如进程、线程和各种同步对象。种同步对象。本地过程调用(本地过程调用(LPCLPC,Local Procedure CallLocal Pr
29、ocedure Call)机制,在同一台计)机制,在同一台计算机上的客户进程和服务进程之间传递信息。算机上的客户进程和服务进程之间传递信息。LPCLPC是一个灵活的、是一个灵活的、经过优化的经过优化的“ “远程过程调用远程过程调用” ”(RPCRPC,Remote Procedure CallRemote Procedure Call)版)版本。本。一组广泛的公用运行时函数,例如字符串处理、算术运算、数据一组广泛的公用运行时函数,例如字符串处理、算术运算、数据类型转换和完全结构处理。类型转换和完全结构处理。执行体支持例程,例如系统内存分配(页交换区和非页交换区)、执行体支持例程,例如系统内存分
30、配(页交换区和非页交换区)、互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体。互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体。 设备驱动程序可加载的核心态模块可加载的核心态模块 I/OI/O系统和相关硬件之间的接口系统和相关硬件之间的接口 使用使用WDMWDM以及加强的以及加强的WDMWDM方式方式分类分类硬件设备驱动程序操作硬件。硬件设备驱动程序操作硬件。文件系统驱动程序接受面向文件的文件系统驱动程序接受面向文件的I/OI/O请求,并把它们转请求,并把它们转化为对特殊设备的化为对特殊设备的I/OI/O请求。请求。过滤器驱动程序截取过滤器驱动程序截取I/OI/O并在传递并在传递I
31、/OI/O到下一层之前执行到下一层之前执行某些特定处理。某些特定处理。 环境子系统将基本的执行体系统服务的某些子集以特定的将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,函数调用不能在不同子形态展示给应用程序,函数调用不能在不同子系统之间混用,因此每一个可执行的映像都受系统之间混用,因此每一个可执行的映像都受限于唯一的子系统限于唯一的子系统 三种环境子系统:三种环境子系统:POSIXPOSIX、OS/2OS/2和和Win32Win32(OS/2 OS/2 只能用于只能用于x86x86系统)系统) Win32Win32子系统必须始终处于运行状态,其他两子系统必须始终处于运行状态,其他
32、两个子系统只是在需要时才被启动,个子系统只是在需要时才被启动,Win32Win32子系子系统是统是Windows 2000/XPWindows 2000/XP运行的基本条件之一。运行的基本条件之一。Win32Win32子系统子系统Win32Win32环境子系统进程环境子系统进程CSRSSCSRSS,包括对下列功能的支持:控制台,包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线程、支持(文本)窗口、创建及删除进程与线程、支持1616位位DOSDOS虚拟机虚拟机(VDMVDM)进程的部分。)进程的部分。核心态设备驱动程序(核心态设备驱动程序(WIN32K.SYSWIN32K.SYS)。
33、)。图形设备接口(图形设备接口(GDIGDI,Graphics Device InterfacesGraphics Device Interfaces)子系统动态链接库,它调用子系统动态链接库,它调用NTOSKRNL.EXENTOSKRNL.EXE和和WIN32.SYSWIN32.SYS将文档将文档化的化的Win32 APIWin32 API函数转化为适当的非文档化的核心系统服务。函数转化为适当的非文档化的核心系统服务。图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序。机驱动程序和视频小型端口驱动程
34、序。其他混杂的函数,如几种自然语言支持函数。其他混杂的函数,如几种自然语言支持函数。n nPOSIXPOSIX子系统子系统n n设计的强迫性目标设计的强迫性目标n n实现了实现了POSIX.1POSIX.1,功能局限,用处不大,功能局限,用处不大n nWindows XPWindows XP实际上并不包含实际上并不包含POSIXPOSIX子系统子系统n n今后产品的今后产品的POSIX/UNIXPOSIX/UNIX子系统将大大加强子系统将大大加强P49 图2-7 interix的体系结构NTDLL主要用于子系统动态链接库的特殊系统支持库主要用于子系统动态链接库的特殊系统支持库功能功能提供系统调
35、用入口提供系统调用入口为子系统、子系统动态链接库、及其他本机映像提供内部支为子系统、子系统动态链接库、及其他本机映像提供内部支持函数持函数NTDLLNTDLL也包含许多支持函数,例如映像加载程序、堆管理器也包含许多支持函数,例如映像加载程序、堆管理器和和Win32Win32子系统进程通信函数以及通用运行库。子系统进程通信函数以及通用运行库。用户态异步过程调用(用户态异步过程调用(APCAPC)调度器和异常调度器。)调度器和异常调度器。 系统支持进程IdleIdle进程进程系统进程系统进程会话管理器会话管理器SMSSSMSSWin32Win32子系统子系统CSRSSCSRSS登录进程登录进程WI
36、NLOGINWINLOGIN本地安全身份验证服务器本地安全身份验证服务器LSASSLSASS服务控制器服务控制器SERVICESSERVICES及其相关的服务进程及其相关的服务进程 Windows 2000/XP的系统机制陷阱调度,包括中断、延迟过程调用(陷阱调度,包括中断、延迟过程调用(DPCDPC,Deferred Deferred Procedure CallProcedure Call)、异步过程调用()、异步过程调用(APCAPC,Asynchronous Asynchronous Procedure CallProcedure Call)、异常调度()、异常调度(Exception
37、 DispatchingException Dispatching)和)和系统服务调度(系统服务调度(System Service DispatchingSystem Service Dispatching)执行体对象管理器(执行体对象管理器(Executive Object ManagerExecutive Object Manager)同步(同步(SynchronizationSynchronization),包括自旋锁(),包括自旋锁(Spin lockSpin lock)、内)、内核调度程序对象(核调度程序对象(Kernel Dispatcher ObjectsKernel Dispa
38、tcher Objects)本地过程调用(本地过程调用(LPCLPC,Local Procedure CallLocal Procedure Call)陷阱调度当异常或中断发当异常或中断发生时,硬件或软生时,硬件或软件可以检测到,件可以检测到,处理器会从用户处理器会从用户态切换到核心态,态切换到核心态,并将控制转交给并将控制转交给内核的陷阱处理内核的陷阱处理程序,该模块检程序,该模块检测异常和中断的测异常和中断的类型,并将控制类型,并将控制交给处理相应情交给处理相应情况的代码况的代码 异常调度程序中断服务例程系统服务异常处理程序虚拟存储器页面管理程序虚拟地址异常虚拟地址异常软软/ /硬件异常硬
39、件异常异常结构中断中断系统服务调用系统服务调用陷阱处理程序陷阱处理程序异常和中断异常和中断中断是异步事件,可能随时发生,与处理器正在执行的内容无中断是异步事件,可能随时发生,与处理器正在执行的内容无关。中断主要由关。中断主要由I/OI/O设备、处理器时钟或定时器产生,可以被启设备、处理器时钟或定时器产生,可以被启用或禁用用或禁用异常是同步事件,它是某一特定指令执行的结果。在相同条件异常是同步事件,它是某一特定指令执行的结果。在相同条件下,异常可以重现。例如内存访问错误、调试指令以及被零除。下,异常可以重现。例如内存访问错误、调试指令以及被零除。系统服务调用也视作异常。系统服务调用也视作异常。软
40、件和硬件都可以产生异常和中断。软件和硬件都可以产生异常和中断。陷阱帧:完整的线程描述表的子集,用于现场保护陷阱帧:完整的线程描述表的子集,用于现场保护陷阱处理程序处理少量事件,多数转交给其他的内核或陷阱处理程序处理少量事件,多数转交给其他的内核或执行体模块处理执行体模块处理中断调度中断分类和优先级中断分类和优先级中断请求级别(中断请求级别(IRQLIRQL,Interrupt Request LevelInterrupt Request Level)硬件中断硬件中断软件中断软件中断APC APC 异步过程调用异步过程调用DPC DPC 延迟过程调用延迟过程调用P53 图2-9 中断请求级别硬件
41、中断处理过程硬件中断处理过程保存计算机的状态保存计算机的状态 禁用中断禁用中断 调用中断调度程序调用中断调度程序 提高处理器的提高处理器的IRQLIRQL到中断源的级别到中断源的级别 重新启用中断重新启用中断在中断分配表中查找处理特定中断的例程在中断分配表中查找处理特定中断的例程服务例程执行服务例程执行 降低处理器的降低处理器的IRQLIRQL到该中断发生前的级别到该中断发生前的级别 加载保存的机器状态加载保存的机器状态 中断返回中断返回软件中断的处理软件中断的处理延迟过程调用延迟过程调用P56 图2-10 延迟过程调用的提交异步过程调用apc异步过程调用为用户程序和系统代码提供了异步过程调用
42、为用户程序和系统代码提供了一种在特殊用户线程的描述表(一个特殊的一种在特殊用户线程的描述表(一个特殊的进程地址空间)中执行代码的方法进程地址空间)中执行代码的方法 有用户态有用户态APCAPC和核心态和核心态APC APC 异常调度异常直接由运行程序的执行所产生。异常直接由运行程序的执行所产生。除了那些可由陷阱处理程序解决的简单异常外,所除了那些可由陷阱处理程序解决的简单异常外,所有异常都是由异常调度程序接管有异常都是由异常调度程序接管结构化异常处理结构化异常处理基于框架的异常处理程序基于框架的异常处理程序异常调度过程异常调度过程P59 图2-11 异常调度系统服务调度在在AlphaAlpha
43、处理器上执行处理器上执行syscallsyscall指令或在指令或在Intel x86Intel x86处处理器上执行理器上执行int 2Eint 2E指令都会引起系统服务调度指令都会引起系统服务调度 系统服务调度程序将依次作下面几件事:系统服务调度程序将依次作下面几件事:校验参数校验参数调用者的参数从线程的用户堆栈复制到它的核心堆栈中调用者的参数从线程的用户堆栈复制到它的核心堆栈中执行系统服务执行系统服务 P60 图2-12 系统服务调度对象管理器执行体组件之一执行体组件之一用于创建、删除、保护和跟踪对象用于创建、删除、保护和跟踪对象提供使用系统范围内资源使用的公共、一致的机制提供使用系统范
44、围内资源使用的公共、一致的机制实现对象的集中保护实现对象的集中保护实现了资源的访问控制实现了资源的访问控制对象管理器有一套对象命名方案和统一的保留规则,对象管理器有一套对象命名方案和统一的保留规则,能够容易地操纵现有对象能够容易地操纵现有对象 执行体对象执行体对象由执行体的各种组件实现由执行体的各种组件实现 进程管理器、内存管理器、进程管理器、内存管理器、I/OI/O子系统等子系统等 内核对象内核对象由内核实现的原始的对象集合由内核实现的原始的对象集合这些对象对用户态代码是不可见的,它们仅在执行体这些对象对用户态代码是不可见的,它们仅在执行体内创建和使用内创建和使用 内核对象提供了一些基本性能
45、,许多执行体对象内核对象提供了一些基本性能,许多执行体对象内包含着一个或多个内核对象。内包含着一个或多个内核对象。 对象命名对象命名对象头:存储对象管理信息和描述信息对象头:存储对象管理信息和描述信息类型对象:保存特定对象类型的类型信息类型对象:保存特定对象类型的类型信息对象的生存周期对象的生存周期对象方法对象方法对象句柄对象句柄对象安全对象安全配额和资源记帐配额和资源记帐同步机制内核同步内核同步内核的内核的临界区临界区是修改是修改共用数共用数据结构据结构的代码的代码段段 最大问最大问题是中题是中断断 自旋锁自旋锁执行体同步执行体同步自旋锁使用的限制自旋锁使用的限制被保护的资源必须被快速访问,
46、并且没有与其他代码的复杂被保护的资源必须被快速访问,并且没有与其他代码的复杂的交互作用。的交互作用。临界区代码不能换出内存,不能引用可分页数据,不能调用临界区代码不能换出内存,不能引用可分页数据,不能调用外部程序(包括系统服务),不能生成中断或异常情况。外部程序(包括系统服务),不能生成中断或异常情况。 调度程序对象调度程序对象本地过程调用一个用于高速信息传输的进程间通信机制(使用共一个用于高速信息传输的进程间通信机制(使用共享内存)享内存) LPCLPC常常被使用在一个服务器进程与该服务器的一常常被使用在一个服务器进程与该服务器的一个或多个客户进程之间,以及在两个用户态进程之个或多个客户进程
47、之间,以及在两个用户态进程之间或一个核心态组件和一个用户态进程之间间或一个核心态组件和一个用户态进程之间 常被视作经过高度优化的常被视作经过高度优化的RPCRPC的本地版本的本地版本LPCLPC的三种交换信息的方法:的三种交换信息的方法:使用包含信息的缓冲区调用使用包含信息的缓冲区调用LPCLPC可以发送少于可以发送少于256256字节的信息。字节的信息。然后,这个信息又从发送进程的地址空间复制到系统地址空间,然后,这个信息又从发送进程的地址空间复制到系统地址空间,再从那里拷贝到接收进程的地址空间。再从那里拷贝到接收进程的地址空间。如果用户和服务器想交换大于如果用户和服务器想交换大于25625
48、6字节的数据,那么他们可以选字节的数据,那么他们可以选择使用双方都映射了的共享区。发送方将信息数据放到共享区,择使用双方都映射了的共享区。发送方将信息数据放到共享区,然后向接收方发送一小段信息表明在共享区的什么地方可以找然后向接收方发送一小段信息表明在共享区的什么地方可以找到数据。到数据。当服务器想读或写大量数据,而共享区又太小时,数据可以直当服务器想读或写大量数据,而共享区又太小时,数据可以直接从客户地址空间读出或向客户地址空间写入。接从客户地址空间读出或向客户地址空间写入。系统工作线程代表其它线程履行职责代表其它线程履行职责三种系统工作线程三种系统工作线程 延迟工作线程运行在优先级延迟工作
49、线程运行在优先级1212,处理非时间关键的,处理非时间关键的工作项,它们的堆栈在等待工作项时可以被换出到工作项,它们的堆栈在等待工作项时可以被换出到页交换文件。页交换文件。关键工作线程运行在优先级关键工作线程运行在优先级1313,处理时间关键工作,处理时间关键工作项,在项,在windows2000 serverwindows2000 server中它们的堆栈始终在物中它们的堆栈始终在物理内存中。理内存中。一个单独的高度关键工作线程运行在优先级一个单独的高度关键工作线程运行在优先级1515,堆,堆栈也始终在物理内存中,处理管理器使用这种工作栈也始终在物理内存中,处理管理器使用这种工作线程的线程的
50、“ “收割机收割机” ”功能释放终止的线程。功能释放终止的线程。 注册表是一个数据库,结构与磁盘的逻辑结构相似是一个数据库,结构与磁盘的逻辑结构相似存储所有关于系统和每个用户的设置信息存储所有关于系统和每个用户的设置信息 Windows 2000Windows 2000系统管理机制的关键数据库系统管理机制的关键数据库组成组成 主键主键+ +键值键值 目录目录+ +文件文件主键可以包含若干主键(或称为该主键的子键)主键可以包含若干主键(或称为该主键的子键)和键值和键值键值则存储数据,可有不同数据类型键值则存储数据,可有不同数据类型顶级主键称为根键顶级主键称为根键 六个根键六个根键HKEY_CUR
51、RENT_USERHKEY_CURRENT_USER 存储与当前登录用户有存储与当前登录用户有关的信息。关的信息。 HKEY_USERHKEY_USER 存储了所有用户的信息。存储了所有用户的信息。 HKEY_CLASSES_ROOT HKEY_CLASSES_ROOT 存储与文件类型和存储与文件类型和COMCOM对象相关的信息对象相关的信息HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINE 存储与系统设置相关存储与系统设置相关的信息的信息 HKEY_PERFORMANCE_DATAHKEY_PERFORMANCE_DATA 存储与系统性能存储与系统性能相关的信息相关的
52、信息HKEY_CURRENT_CONFIGHKEY_CURRENT_CONFIG 存储了当前硬件配置存储了当前硬件配置文件的信息文件的信息Window 2000/XP服务Win32 Win32 服务由三部组成:服务由三部组成:服务应用程序服务应用程序服务控制程序(服务控制程序(SCPSCP)服务控制管理器(服务控制管理器(SCMSCM)服务帐号服务帐号本地系统帐号方式本地系统帐号方式备用帐号方式备用帐号方式服务的控制服务的控制服务的启动服务的启动正常启动正常启动特殊启动(接受最近一次的正确配置)特殊启动(接受最近一次的正确配置)启动的参数传递启动的参数传递服务的关闭服务的关闭服务错误服务错误服
53、务失败服务失败共享共享服务控制程序服务控制程序P73 图2-15 服务的组成Windows管理机制基于基于Web-Based Enterprise Management: Web-Based Enterprise Management: WBEMWBEM标准的实现标准的实现事务数据收集和管理事务数据收集和管理 强伸缩性和强扩展性强伸缩性和强扩展性四个主要的组件:四个主要的组件:管理程序管理程序WMI WMI 基础设施基础设施数据生产者数据生产者被管理的对象集合被管理的对象集合 数据生产者数据生产者定义对象定义对象为为WMIWMI提供这些对象的编程接口提供这些对象的编程接口 CIMCIM和和MOFLMOFLWMIWMI名字空间名字空间WMIWMI对象浏览器对象浏览器WMIWMI的安全的安全