《2Windows操作系统体系结构.pdf》由会员分享,可在线阅读,更多相关《2Windows操作系统体系结构.pdf(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2 2章章 Windows 2000/xpWindows 2000/xp的体系结构的体系结构 1 1 操作系统的设计操作系统的设计 2 Windows2000/xp2 Windows2000/xp操作系统模型操作系统模型 3 Windows2000/xp3 Windows2000/xp体系结构体系结构 4 Windows2000/xp4 Windows2000/xp系统机制系统机制 5 Windows2000/xp5 Windows2000/xp注册表注册表操作系统的设计操作系统的设计设计操作系统的复杂性。设计操作系统的复杂性。例:例:IBMIBM公司的公司的OSOS360360系统系统由
2、由40004000个模块组成个模块组成共约共约100100万条指令万条指令花费花费50005000人年人年经费达数亿美元经费达数亿美元每个版本都仍然隐藏着无数的错误每个版本都仍然隐藏着无数的错误操作系统的设计问题操作系统的设计问题 操作系统设计有着不同于一般应用系统设计的特操作系统设计有着不同于一般应用系统设计的特征:征:复杂程度高复杂程度高 研制周期长研制周期长 正确性难以保证正确性难以保证 解决途径:解决途径:良好的操作系统结构良好的操作系统结构 先进的开发方法和工程化的管理方法先进的开发方法和工程化的管理方法 高效的开发工具高效的开发工具操作系统的设计目标操作系统的设计目标 可靠性:正确
3、性和健壮性可靠性:正确性和健壮性 高效性:提高系统的运行效率高效性:提高系统的运行效率 易维护性:易读、易扩充、易剪裁、易修改性易维护性:易读、易扩充、易剪裁、易修改性 易移植性:作系统程序中与硬件相关的部分相对易移植性:作系统程序中与硬件相关的部分相对独立独立 安全性:计算机软件系统安全性的基础安全性:计算机软件系统安全性的基础 可适应性可适应性 简明性简明性操作系统的设计考虑操作系统的设计考虑 功能设计:操作系统应具备哪些功能功能设计:操作系统应具备哪些功能 算法设计:选择和设计满足系统功能的算算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能法和策略,并分析和估算其效能 结
4、构设计:选择合适的操作系统结构结构设计:选择合适的操作系统结构操作系统结构操作系统结构 程序结构程序结构 程序结构的两层含义程序结构的两层含义整体结构整体结构局部结构局部结构 软件结构:大型程序是小规模程序组成软件结构:大型程序是小规模程序组成 操作系统结构操作系统结构Windows Windows 的术语的术语“服务服务”在不同的场合有不同的意义在不同的场合有不同的意义 可以指操作系统中可调用的例程、设备驱可以指操作系统中可调用的例程、设备驱动程序或服务器进程动程序或服务器进程 1.1.Win32 APIWin32 API函数:函数:Win32 APIWin32 API中文档化中文档化的、可
5、调用的子程序。的、可调用的子程序。例如例如CreateProcessCreateProcess、CreateFileCreateFile、GetMessageGetMessage。2 2 Windows Windows 系统服务系统服务(执行体系统服执行体系统服务务)。例如,例如,NtCreateProcessNtCreateProcess是由是由CreateProcessCreateProcess函函数调用,用来创建新进程的内部系统服务。数调用,用来创建新进程的内部系统服务。3 3 WindowsWindows内部例程:内部例程:位于位于WindowsWindows执行体、内核或硬件抽象层执
6、行体、内核或硬件抽象层(HAL)HAL)内的子例内的子例程,只能从核心态调用。例如,程,只能从核心态调用。例如,ExAllocatePoolExAllocatePool是由设备是由设备驱动程序调用的驱动程序调用的 4 4 WindowsWindows服务:服务:由由WindowsWindows服务控制管理器启动的进程。服务控制管理器启动的进程。5 5 DLL(DLL(动态链接库动态链接库):作为二进制映像连接的、可调用的子例程集。作为二进制映像连接的、可调用的子例程集。两种机器状态两种机器状态 用户态或者说目态用户态或者说目态处于目态时为用户服务处于目态时为用户服务 系统态或者说核心态、管态系
7、统态或者说核心态、管态当其通过系统调用或访管指令进入到当其通过系统调用或访管指令进入到OSOS内核运行时,内核运行时,处于管处于管态时可能为用户服务,也可能做系统维护工作。态时可能为用户服务,也可能做系统维护工作。操作系统的结构设计操作系统的结构设计 1.1.模块组合结构模块组合结构 2 2层次结构层次结构 3.3.虚拟机结构虚拟机结构 4.4.客户客户/服务器体系结构服务器体系结构模块组合结构模块组合结构整个系统按功能进行设计和模块划分。系统是一个单一的、整个系统按功能进行设计和模块划分。系统是一个单一的、庞大的的软件系统。这种结构思想来源于服务功能观点,庞大的的软件系统。这种结构思想来源于
8、服务功能观点,而不是资源管理的观点。而不是资源管理的观点。模块组合结构模块组合结构 模块结构的特点:模块由众多服务过程模块结构的特点:模块由众多服务过程(模块接口)组成,可以随意调用其他模(模块接口)组成,可以随意调用其他模块中的服务过程块中的服务过程 优点:具有一定灵活性,在运行中的高效率优点:具有一定灵活性,在运行中的高效率 缺点:功能划分和模块接口难保正确和合理;缺点:功能划分和模块接口难保正确和合理;模块之间的依赖关系,降低了模块之间的相对模块之间的依赖关系,降低了模块之间的相对独立性不利于修改独立性不利于修改2 2层次结构层次结构从资源管理观点出发,划分层次。在某一层次上代码只能调从
9、资源管理观点出发,划分层次。在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性。系统每用低层次上的代码,使模块间的调用变为有序性。系统每加一层,就构成一个比原来功能更强的虚拟机。有利于系加一层,就构成一个比原来功能更强的虚拟机。有利于系统的维护性和可靠性。统的维护性和可靠性。目的:目的:要清除模块接口法的缺点就必须减少各模块之间毫无要清除模块接口法的缺点就必须减少各模块之间毫无规则地相互调用、相互依赖的关系,特别是清除循环现象规则地相互调用、相互依赖的关系,特别是清除循环现象方法:方法:操作系统的所有功能模块按功能的调用次序分别排列操作系统的所有功能模块按功能的调用次序分别排列成
10、若干层成若干层(单向依赖或单向调用单向依赖或单向调用)如只允许上层或外层模块调用下层或内层模块如只允许上层或外层模块调用下层或内层模块)层次结构层次结构 THETHE系统:系统:12345处理器分配和多道程序内存和磁盘管理操作员进程通信输入/输出管理用户程序操作员0分层结构的特点分层结构的特点 优点:优点:功能明确,调用关系清晰(高层对低层单向依功能明确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性赖),有利于保证设计和实现的正确性 低层和高层可分别实现(便于扩充);高层错低层和高层可分别实现(便于扩充);高层错误不会影响到低层;避免递归调用误不会影响到低层;避免递归调用分
11、层原则分层原则 被调用功能在低层:如文件系统管理设备管理设被调用功能在低层:如文件系统管理设备管理设备驱动程序备驱动程序 资源管理的公用模块放在最低层:如缓冲区队列、堆栈操资源管理的公用模块放在最低层:如缓冲区队列、堆栈操作作 存储器管理放在次低层:便于利用虚拟存储功能存储器管理放在次低层:便于利用虚拟存储功能 最低层的硬件抽象层:与机器特点紧密相关的软件放在最最低层的硬件抽象层:与机器特点紧密相关的软件放在最低层。如低层。如Windows NTWindows NT中的中的HALHAL 资源分配策略放在最外层,便于修改或适应不同环境资源分配策略放在最外层,便于修改或适应不同环境分层原则分层原则
12、便于将操作系统移植到其他机器上便于将操作系统移植到其他机器上:机器特点紧密相关的软件机器特点紧密相关的软件(如中断处理、输如中断处理、输入输出管理等入输出管理等)放在紧靠硬件的最低层放在紧靠硬件的最低层 与硬件有关的与硬件有关的BIOS(BIOS(管理输入输出设备管理输入输出设备)放放在最内层。所以当硬件环境改变时只需要在最内层。所以当硬件环境改变时只需要修改这一层模块就可以了修改这一层模块就可以了分层原则分层原则 前台处理分时作业,又可在后台以批处理前台处理分时作业,又可在后台以批处理方式运行作业方式运行作业 共同使用的基本部分放在内层共同使用的基本部分放在内层随着这些操随着这些操作方式而改
13、变的部分放在外层作方式而改变的部分放在外层(例如,调度例如,调度程序、键盘命令解释程序和作业控制语言程序、键盘命令解释程序和作业控制语言解释程序等解释程序等)分层原则分层原则 系统调用:为进程提供服务,这些功能模系统调用:为进程提供服务,这些功能模块块(各系统调用功能各系统调用功能)构成操作系统内核,放构成操作系统内核,放在系统的内层。在系统的内层。3 3虚拟机结构虚拟机结构 如如IBMIBM大型机上的系列操作系统大型机上的系列操作系统 基本思想:系统应该提供基本思想:系统应该提供1 1)多道程序能力)多道程序能力2 2)一个比裸机有更方便扩展界面的计算机)一个比裸机有更方便扩展界面的计算机。
14、但。但是二者的实现应该相互独立是二者的实现应该相互独立 优缺点优缺点 虚拟机概念可以实现完全保护虚拟机概念可以实现完全保护 用软件从硬件逐层扩展用软件从硬件逐层扩展 虚拟机方法把多道程序和扩充机器的功能完全分开虚拟机方法把多道程序和扩充机器的功能完全分开370裸机VM/370CMSCMSCMS系统调用陷入I/O指令陷入若干个370虚拟机微内核(客户微内核(客户/服务器结构)服务器结构)非常适宜于应用在网络环境下,应用于分布式处非常适宜于应用在网络环境下,应用于分布式处理的计算环境中理的计算环境中 由下面两大部分组成由下面两大部分组成:“微微”内核内核 若干服务若干服务客户/服务器模型把操作系统
15、分成若干分别完成一组特定功能的服务进程(如内存管理服务、进程创建服务和处理器调度服务),等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递)。微内核(micro-kernel):将更多操作系统功能放在核心之外,作为独立的服务进程运行;服务进程 客户进程 内核消息:是一定格式的数据结构。发起调用,送出请求消息请求消息到达并进行处理送出回答消息整理回答消息,返回结果;Windows 2000/XPWindows 2000/XP系统模型系统模型 融合了分层操作系统和微内核(客户融合了分层操作系统和微内核(客户/服务器)操服务器)操作系统的设计思想,使用面向对象的分析与设作系
16、统的设计思想,使用面向对象的分析与设计,采用整体式的实现计,采用整体式的实现 Windows 2000/XPWindows 2000/XP通过硬件机制实现了核心态以通过硬件机制实现了核心态以及用户态两个特权级别及用户态两个特权级别。对性能影响很大的操作。对性能影响很大的操作系统组件运行在核心态。系统组件运行在核心态。内存管理器、高速缓存管理器、对象及安全管理内存管理器、高速缓存管理器、对象及安全管理器、网络协议、文件系统和所有线程和进程管器、网络协议、文件系统和所有线程和进程管理,都运行在核心态。理,都运行在核心态。Windows 2000/XPWindows 2000/XP的核心态组件使用了
17、面向对象的核心态组件使用了面向对象设计原则设计原则这些组件只能使用外部的接口传送参数这些组件只能使用外部的接口传送参数并访问或修改这些数据并访问或修改这些数据 出于可移植性以及效率因素的考虑,大部分代码出于可移植性以及效率因素的考虑,大部分代码使用了基于使用了基于C C语言的对象实现。语言的对象实现。Windows 2000/XPWindows 2000/XP的很多系统服务运行在核心的很多系统服务运行在核心态,这使得态,这使得Windows 2000/XPWindows 2000/XP更加高效,而且也更加高效,而且也是相当稳定的。是相当稳定的。Windows 2000Windows 2000X
18、PXP的构成的构成 计算机的处理器支持两种模式:用户态和核心计算机的处理器支持两种模式:用户态和核心态。用户应用程序代码在用户态下运行,操作系态。用户应用程序代码在用户态下运行,操作系统代码统代码(如系统服务和设备驱动程序如系统服务和设备驱动程序)在核心态下在核心态下运行运行 目的:目的:保证了应用程序的不当行为在总体上不会保证了应用程序的不当行为在总体上不会破坏系统的稳定性破坏系统的稳定性。装入第三方的设备驱动程序装入第三方的设备驱动程序时一定要谨慎,因为一旦进入核心态,软件就能时一定要谨慎,因为一旦进入核心态,软件就能完全访问所有的操作系统数据。完全访问所有的操作系统数据。系统调用系统调用
19、(SYSTEM CALL)SYSTEM CALL)系统调用是操作系统提供给软件开发人员的唯一系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可利用它使用系统功能。接口,开发人员可利用它使用系统功能。OSOS核心核心中都有一组实现系统功能的过程(子程序)中都有一组实现系统功能的过程(子程序)中断处理程序(系统调用子例程)中断处理程序(系统调用子例程)系统调用描述系统调用描述系统调用描述系统调用描述 用户所需要的功能有些功能可由硬件完用户所需要的功能有些功能可由硬件完成,并设有相应的指令,如启动外设工成,并设有相应的指令,如启动外设工作,就有用于输入作,就有用于输入/输出的硬指令。输出的硬
20、指令。系统资源的分配、控制不能由用户干预,系统资源的分配、控制不能由用户干预,而必须由操作系统统一管理。而必须由操作系统统一管理。MsdosMsdos 通过通过intint 21 21 实现实现 Linux Linux intint 0 x800 x80系统调用目的与使用系统调用目的与使用 1 1 用户程序和内核程序相分离用户程序和内核程序相分离 2 2 内核程序为用户提供相关功能,使用不必内核程序为用户提供相关功能,使用不必了解系统程序内部结构和相关硬件细节,了解系统程序内部结构和相关硬件细节,用户提供系统调用名、参数。用户提供系统调用名、参数。通过高级程序语言内部库函数使用。通过高级程序语
21、言内部库函数使用。系统调用的过程系统调用的过程 1 1 当系统调用发生时,处理器通过一种特殊的机当系统调用发生时,处理器通过一种特殊的机制,通常是中断或者异常处理,把控制流程转移制,通常是中断或者异常处理,把控制流程转移到监控程序内。同时,处理器模式转变为特权模到监控程序内。同时,处理器模式转变为特权模式。式。2 2 由监控程序执行被请求的功能代码。由监控程序执行被请求的功能代码。3 3 处理结束后,监控程序恢复系统调用之前的现处理结束后,监控程序恢复系统调用之前的现场;把运行模式从特权模式恢复成为用户方式;场;把运行模式从特权模式恢复成为用户方式;最后将控制权转移回原来的用户程序。最后将控制
22、权转移回原来的用户程序。系统调用功能分类系统调用功能分类系统调用功能分类系统调用功能分类 1 1设备管理:这类系统调用被用来请求和释放设备,以设备管理:这类系统调用被用来请求和释放设备,以及启动设备操作等。及启动设备操作等。2 2文件管理:这类系统调用包括创建、删除文件,读、文件管理:这类系统调用包括创建、删除文件,读、写文件操作以及移动文件指针等。写文件操作以及移动文件指针等。3 3进程控制:进程是一个在功能上独立的程序的一次执进程控制:进程是一个在功能上独立的程序的一次执行过程。行过程。4 4进程通信:进程间传递消息或信号的系统调用。进程通信:进程间传递消息或信号的系统调用。5 5存储管理
23、:内存块的申请、释放,获取作业占用内存存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等。块的首址、大小等。6 6 线程管理:包括线程的创建、调度、执行、撤销等。线程管理:包括线程的创建、调度、执行、撤销等。系统调用的功能系统调用的功能 每个操作系统都提供几百种系统调用每个操作系统都提供几百种系统调用 1)1)设备管理:设备管理:设备的读写和控制;设备的读写和控制;IoctlIoctl设备配置设备配置OpenOpen 设备打开设备打开CloseClose 设备关闭设备关闭ReadRead读设备读设备WriteWrite 写设备写设备系统调用的功能系统调用的功能2)2)文件管理:文件
24、读写和文件控制;文件管理:文件读写和文件控制;OpenOpen 文件打开文件打开CloseClose 文件关闭文件关闭ReadRead读文件读文件WriteWrite 写文件写文件seekseek读写指针定位读写指针定位CreatCreat 文件创建文件创建StatStat读文件状态读文件状态MountMount 安装文件系统安装文件系统chmodchmod修改文件属性修改文件属性系统调用的功能系统调用的功能3)3)进程控制:创建、中止、暂停等控制;进程控制:创建、中止、暂停等控制;ForkFork创建进程创建进程ExitExit进程自我终止进程自我终止WaitWait阻塞当前进程阻塞当前进程
25、SleepSleep进程睡眠进程睡眠GetpidGetpid 读父进程标识读父进程标识4)4)进程通信:消息队列、共享存储区、进程通信:消息队列、共享存储区、socketsocket等通信渠道的建立、使用等通信渠道的建立、使用和删除;和删除;5)5)存储管理:内存的申请和释放;存储管理:内存的申请和释放;6)6)系统管理:设置和读取时间、读取用户和主机标识等;系统管理:设置和读取时间、读取用户和主机标识等;gtimegtime读取时间读取时间StimeStime设置时间设置时间getuidgetuid读取用户标识读取用户标识陷阱指令(访管指令):控制系统调用服务的机构称为陷阱(trap)处理机
26、构为了实现对这些事先编制好的、具有特定功能的例行子程序的调用,现代计算机系统一般提供访管指令。当处理机执行到这一条指令时就发生中断,该中断称为访管中断,借助中断可使机器状态由目态转为管态。系统调用的实现过程系统调用的实现过程 陷阱指令中功能号陷阱指令中功能号-入口地址表入口地址表 入口地址表入口地址表系统子程序系统子程序 设置系统调用号和参数。设置系统调用号和参数。调用号作为指令的一部分(如早期调用号作为指令的一部分(如早期UNIXUNIX),),或或装入到特定寄存器里(如:装入到特定寄存器里(如:DOS DOS intint 21h21h,AH=AH=调用号。)调用号。)参数装入到特定寄存器
27、里,或以寄存器指针指参数装入到特定寄存器里,或以寄存器指针指向参数表(内存区域)。向参数表(内存区域)。执行执行trap(inttrap(int)指令:入口的一般性处指令:入口的一般性处理,查入口跳转表,跳转到相应功能的理,查入口跳转表,跳转到相应功能的过程。过程。保护保护CPUCPU现场现场(将将PCPC与与PSWPSW入栈入栈),改变,改变CPUCPU执行状态(执行状态(PSWPSW切换)切换)执行操作系统内部代码;执行操作系统内部代码;执行执行iretiret指令:指令:将执行结果装入适当位置将执行结果装入适当位置(类似于参数带入),恢复(类似于参数带入),恢复CPUCPU现场现场(以栈
28、顶内容置(以栈顶内容置PSWPSW和和PCPC)。)。系统调用举例系统调用举例凡是与硬件相关、与应用无关的工作,都通过操作系统程序凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成。来完成。向打印机输出字符向打印机输出字符方法1:调用DOS功能向打印机输出MOV AH,05HMOV DL,ALINT 21H方法2:用OUT指令直接打印L1:MOV A,IIN ADDR1,BOR B,BSJNC L1OUT ADDR2,AINTA=A+1B=B+A.INOUT.(3)可执行代码可执行代码(4)操作系统操作系统可内部代码可内部代码嵌入后嵌入后该系统调该系统调用的操作用的操作系统内部系统内部
29、实现代码实现代码系统调用是动态调用,程序中不包含被调用代系统调用是动态调用,程序中不包含被调用代码,好处:码,好处:(1 1)用户程序长度缩短)用户程序长度缩短(2 2)当)当OSOS升级时,调用方不必改变升级时,调用方不必改变 操作系统环境是由运行于用户模式的组件操作系统环境是由运行于用户模式的组件和运行于核心模式的组件组成的和运行于核心模式的组件组成的Windows 2000/XPWindows 2000/XP的构成的构成 用户态组件用户态组件 系统支持进程(系统支持进程(system support processsystem support process),),不是不是Windows
30、 2000/XPWindows 2000/XP服务,不由服务控制器启动。服务,不由服务控制器启动。服务进程(服务进程(service processservice process),),Windows 2000/XPWindows 2000/XP的服的服务。务。环境子系统(环境子系统(enviromentenviroment subsystemssubsystems),),它们向应用它们向应用程序提供操作系统功能调用接口包括:程序提供操作系统功能调用接口包括:Win32Win32、POSIXPOSIX和和OS/2 1.2OS/2 1.2。应用程序(应用程序(user applicationsu
31、ser applications),),五种类型:五种类型:Win32Win32、Windows 3.1Windows 3.1、MSMS-DOSDOS、POSIX POSIX 或或OS/2 1.2OS/2 1.2。子系统动态链接库:子系统动态链接库:(服务进程和应用程序不能直接调服务进程和应用程序不能直接调用操作系统服务,通过文档化函数转换用操作系统服务,通过文档化函数转换windowwindow内部系内部系统调用统调用系统支持进程系统支持进程 IdleIdle进程进程 系统进程系统进程 会话管理器会话管理器SMSSSMSS Win32Win32子系统子系统CSRSSCSRSS 登录进程登录进
32、程WINLOGINWINLOGIN 本地安全身份验证服务器本地安全身份验证服务器LSASSLSASS 服务控制器服务控制器SERVICESSERVICES及其相关的服务进程及其相关的服务进程IdleIdle进程进程 在在Windows 2000Windows 2000XPXP中中IdleIdle进程的进程的IDID总是总是0 0,而不管进程的名称是什么,而不管进程的名称是什么 对于每一个对于每一个CPU,CPU,统计空闲的统计空闲的CPUCPU时间时间 IdleIdle进程的名称是进程的名称是SystemSystem系统进程和系统线程系统进程和系统线程 系统进程的系统进程的IDID总是总是2
33、2,它是一种特殊类型的、只运,它是一种特殊类型的、只运行在核心态的行在核心态的“系统线程系统线程”的宿主。的宿主。系统线程只能从核心态调用系统线程只能从核心态调用 Windows 2000Windows 2000XPXP以及不同的设备驱动程序在系以及不同的设备驱动程序在系统初始化时创建系统线程以执行那些需要线程描统初始化时创建系统线程以执行那些需要线程描述表的操作。如:发布和等待述表的操作。如:发布和等待I IO O 从系统的内存堆中分配动态存储区从系统的内存堆中分配动态存储区会话管理器会话管理器SMSSSMSS会话管理器是第一个在系统中创建的用户进程会话管理器是第一个在系统中创建的用户进程
34、1)1)创建创建LPCLPC端口对象,等待客户的请求端口对象,等待客户的请求 2)2)创建系统环境变量。创建系统环境变量。3)3)定义用于定义用于MSMS-DOSDOS设备名称的符号链接设备名称的符号链接(例如例如COMICOMI或或LPTlLPTl)。4)4)创建附加的页面调度文件。创建附加的页面调度文件。5)5)打开已知的动态链接库。打开已知的动态链接库。6)6)加载加载Win32Win32子系统的核心态部分子系统的核心态部分(WIN32KWIN32KEXE)EXE)7)7)启动子系统进程。启动子系统进程。8)8)启动登录进程。启动登录进程。9)9)创建用于调试事件消息的创建用于调试事件消
35、息的LPCLPC端口并创建一些线程端口并创建一些线程启动了子系统进程启动了子系统进程csrss.execsrss.exe和登录进程和登录进程WINLOGON,WINLOGON,如果如果这两个进程意外终止,这两个进程意外终止,smss.exesmss.exe将使系统崩溃将使系统崩溃Win32Win32子系统子系统CSRSSCSRSS csrss.execsrss.exe(子系统进程子系统进程)将负责管理将负责管理windows2000windows2000的主子系统的主子系统-win32win32子系统。子系统。登录进程登录进程WINLOGINWINLOGIN 负责处理用户登录和注销的内部活动。
36、负责处理用户登录和注销的内部活动。负责启动负责启动SERVICES.exeSERVICES.exe-系统服务器进程系统服务器进程和和LSASS.exeLSASS.exe-本地安全身份验证服务进本地安全身份验证服务进程程 系统的启动过程,当登录界面出现后,用户输入系统的启动过程,当登录界面出现后,用户输入用户名和密码,用户名和密码,WINLOGON.exeWINLOGON.exe平时是挂起状态平时是挂起状态的,但当从键盘截取到的,但当从键盘截取到ctrl+alt+delctrl+alt+del时,它将被时,它将被激活。激活。本地安全身份验证服务器本地安全身份验证服务器LSASSLSASS 本地安
37、全身份验证服务器进程接收来自本地安全身份验证服务器进程接收来自WINLOGONWINLOGON的身份验证请求,并调用适当的身份验证请求,并调用适当的身份验证包来执行实际的验证,例如检的身份验证包来执行实际的验证,例如检查一个密码是否与存储在查一个密码是否与存储在SAMSAM文件中的密码文件中的密码匹配匹配服务控制器服务控制器SERVICESSERVICES及其相关的服务进程及其相关的服务进程 一些一些Windows 2000Windows 2000组件是作为服务来实现组件是作为服务来实现的,例如假脱机、事件日志、用于的,例如假脱机、事件日志、用于RPCRPC的支的支持和其他各种各样的网络组件。
38、服务由服持和其他各种各样的网络组件。服务由服务控制器启动和停止。务控制器启动和停止。服务控制器是一个运行映像服务控制器是一个运行映像SERVICESSERVICESEXEEXE的特殊系统进程,它负责的特殊系统进程,它负责启动、停止和与服务控制器交互。启动、停止和与服务控制器交互。服务进程服务进程 spoolsv.exespoolsv.exe 缓冲(缓冲(spoolerspooler)服务是管理缓冲池中服务是管理缓冲池中的打印和传真作业。的打印和传真作业。service.exe service.exe 用于管理启动和停止服务用于管理启动和停止服务 winmgmt.exewinmgmt.exe 是
39、是win2000win2000客户端管理的核心组客户端管理的核心组件。透过件。透过Windows Management Instrumentation Windows Management Instrumentation data(WMI)data(WMI)技术处理来自应用客户端的请求技术处理来自应用客户端的请求 SvchostSvchost 进程提供很多系统服务进程提供很多系统服务,系统服务是以动系统服务是以动态链接库(态链接库(dlldll)形式实现的,由形式实现的,由svchostsvchost调用相应调用相应服务的动态链接库来启动服务服务的动态链接库来启动服务环境子系统环境子系统 环境
40、子系统是用户模式进程,建立在环境子系统是用户模式进程,建立在windowswindows执行体服务程序之上。执行体服务程序之上。WindowsWindows得得以运行其他操作系统开发的程序。以运行其他操作系统开发的程序。将基本的执行体系统服务的某些子集以特将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,函数调用不能定的形态展示给应用程序,函数调用不能在不同子系统之间混用,因此每一个可执在不同子系统之间混用,因此每一个可执行的映像都受限于唯一的子系统行的映像都受限于唯一的子系统 三种环境子系统:三种环境子系统:POSIXPOSIX、OS/2OS/2和和Win32Win32(OS/2
41、OS/2 只能用于只能用于x86x86系统)系统)它们提供它们提供apiapi Win32Win32子系统必须始终处于运行状态,其他子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,两个子系统只是在需要时才被启动,Win32Win32子系统是子系统是Windows 2000/XPWindows 2000/XP运行的基本条运行的基本条件之一。件之一。Win32子系统 Win32环境子系统进程CSRSS,包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线程、支持16位DOS虚拟机(VDM)进程的部分。核心态设备驱动程序(WIN32K.SYS)。图形设备接口(GDI,Grap
42、hics Device Interfaces)子系统动态链接库,它调用NTOSKRNL.EXE和WIN32.SYS将文档化的Win32 API函数转化为适当的非文档化的核心系统服务。图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序。其他混杂的函数,如几种自然语言支持函数。POSIXPOSIX子系统子系统 设计的强迫性目标设计的强迫性目标 实现了实现了POSIX.1POSIX.1,功能局限,用处不大功能局限,用处不大 Windows XPWindows XP实际上并不包含实际上并不包含POSIXPOSIX子系子系统统 今后产品的今后产品的POSIX/UNI
43、XPOSIX/UNIX子系统将大大加子系统将大大加强强NTDLLNTDLL 主要用于子系统动态链接库的特殊系统支主要用于子系统动态链接库的特殊系统支持库持库 功能功能 提供系统调用入口提供系统调用入口 为子系统、子系统动态链接库、及其他本机映为子系统、子系统动态链接库、及其他本机映像提供内部支持函数像提供内部支持函数 提供从用户态调用执行体系统服务接口提供从用户态调用执行体系统服务接口核心态组件核心态组件 硬件抽象层(硬件抽象层(HAL,Hardware Abstraction HAL,Hardware Abstraction LayerLayer)将内核、设备驱动程序以及执行体同硬将内核、设
44、备驱动程序以及执行体同硬件分隔开来,实现硬件映射。件分隔开来,实现硬件映射。设备驱动程序(设备驱动程序(Device DriversDevice Drivers)包括文件系统包括文件系统和硬件设备驱动程序等,其中硬件设备驱动程和硬件设备驱动程序等,其中硬件设备驱动程序将用户的序将用户的I/OI/O函数调用转换为对特定硬件设备函数调用转换为对特定硬件设备的的I/OI/O请求。请求。窗口和图形系统包含了实现图形用户界面窗口和图形系统包含了实现图形用户界面(GUIGUI,Graphical User InterfaceGraphical User Interface)的基本函的基本函数。数。核心态组
45、件核心态组件 核心(核心(kernelkernel)包含了最低级的操作系统功包含了最低级的操作系统功能,例如线程调度、中断和异常调度、多处理能,例如线程调度、中断和异常调度、多处理器同步等。同时它也提供了执行体器同步等。同时它也提供了执行体(ExecutiveExecutive)用来实现高级结构的一组例程和用来实现高级结构的一组例程和基本对象。基本对象。执行体包含基本的操作系统服务,例如内存管执行体包含基本的操作系统服务,例如内存管理器、进程和线程管理、安全控制、理器、进程和线程管理、安全控制、I/OI/O以及进以及进程间的通信。程间的通信。系统支撑处理器系统支持进程服务进程 用户程序 环境子
46、系统子系统动态链接库用户态用户态核心态核心态硬件抽象层(HAL)执行体核心设备驱动程序图形引擎windows可移植性的获得 两种手段 分层的设计。依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。提供操作系统可移植性的两个关键组件是HAL和内核。Windows 2000/XP大量使用高级语言执行体、设备驱动程序等用C语言编写,图形用户界面用C+编写。只有那些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少。对称多处理器支持对称多处理器支持 非对称式多处理非对称式多处理(Asymme
47、tric Multiprocessing,Asymmetric Multiprocessing,ASMP)ASMP):又称主从模式又称主从模式(MasterMaster-slave mode)slave mode)。主处理器:只有一个,运行主处理器:只有一个,运行OSOS。管理整个系统的资管理整个系统的资源,为从处理器分配任务;源,为从处理器分配任务;从处理器:可有多个,执行应用程序或从处理器:可有多个,执行应用程序或I/OI/O处理。处理。特点:不同性质任务的负载不均,可靠性不够高特点:不同性质任务的负载不均,可靠性不够高 对称式多处理对称式多处理(Symmetric Multiproces
48、sing,Symmetric Multiprocessing,SMP)SMP):OSOS交替在各个处理器上执行。任务负载较交替在各个处理器上执行。任务负载较为平均,性能调节容易为平均,性能调节容易系统支持进程服务进程应用程序环境子系统服务管理器本地安全验证服务Windows登陆会话管理器任务管理器Windows浏览器用户级应用程序子系统动态链接库系统级线程用户态核心态系统级服务调度进程核心态可调用接口图形驱动程序I/O设备管理器设备、文件系统驱动程序局 部 过 程 调 用注 册 表 配 置 管 理 器进 程 和 线 程虚 拟 存 储 器电 源 管 理 器即 插 即 用 设 备 管理 器对 象
49、管 理 器文 件 系 统 缓 存 管理 器系统核心硬件抽象层(HAL)硬件接口(总线、I/O设备驱动、中断、时钟间隔、直接内存存取(DMA)、存储器缓存控制器等等)安 全 指 向 监 视 器对象管理器对象管理器 对象是一个重要的概念,对象是一个重要的概念,windows windows 的系统的系统管理和程序设计都基于对象。管理和程序设计都基于对象。系统对象包括文件对象、设备对象和系统对象包括文件对象、设备对象和I/O I/O 管管理器所使用的驱动程序对象、执行进程对理器所使用的驱动程序对象、执行进程对象和由进程管理的所使用的线程对象等。象和由进程管理的所使用的线程对象等。I/OI/O管理器管
50、理器 对驱动程序的编写至关重要对驱动程序的编写至关重要 驱动程序所进行的一切操作是以数据包为驱动程序所进行的一切操作是以数据包为基础的,而驱动数据包的正是基础的,而驱动数据包的正是I/O I/O 管理器。管理器。I/O I/O 管理器通过支持创建、读、写、设定信管理器通过支持创建、读、写、设定信息、获取信息和作为对于文件对象其他操息、获取信息和作为对于文件对象其他操作的完全主体来行使它的功能。作的完全主体来行使它的功能。安全监视器安全监视器 安全监视器其主要功能是负责实现安全访安全监视器其主要功能是负责实现安全访问策略。问策略。举例来说,在举例来说,在NTFS NTFS 的文件系统中文件访问的