Windows操作系统-体系结构(一)_第1页
Windows操作系统-体系结构(一)_第2页
Windows操作系统-体系结构(一)_第3页
Windows操作系统-体系结构(一)_第4页
Windows操作系统-体系结构(一)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

Windows操作系统-体系结构(一)第一页,共47页。操作系统结构设计操作系统设计有着不同于一般应用系统设计的特征:复杂程度高研制周期长正确性难以保证解决途径:良好的操作系统结构先进的开发方法和工程化的管理方法高效的开发工具操作系统结构设计2第二页,共47页。操作系统的设计目标可靠性:正确性和健壮性高效性:提高系统的运行效率

易维护性:易读、易扩充、易剪裁、易修改性易移植性:一次开发,多处使用安全性:计算机软件系统安全性的基础可适应性简明性操作系统结构设计3第三页,共47页。Windows的设计目标总原则:市场需求驱动设计目标需求:提供一个真32位抢占式可重入的虚拟内存操作系统能够在多种硬件体系结构和平台上运行能够在对称多处理系统上运行并具有良好的可伸缩性优秀的分布式计算平台,既可作为网络客户,又可作为网络服务器可运行多数现有16位MS-DOS和MicrosoftWindows3.1应用程序符合政府对符合POSLX1003.1的要求符合政府和企业对操作系统安全性的要求支持Unicode,适应全球市场的需要操作系统结构设计4第四页,共47页。可扩充性——当市场需求变化时,代码必须易于扩充改动可移植性——系统必须能够在多种硬件体系结构中运行和相对简单地移入新的体系结构可靠性及健壮性——系统能防止内部故障及外部侵扰造成的损害,应用程序不应该损害操作系统及正在运行的其他应用程序兼容性——用户界面和API应与已有的Windows

版本兼容性能——系统应该在每一种硬件平台上尽可能快地响应Windows的设计目标操作系统结构设计5第五页,共47页。操作系统的设计阶段功能设计:操作系统应具备哪些功能算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能结构设计:选择合适的操作系统结构按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强操作系统结构设计6第六页,共47页。操作系统结构操作系统结构设计操作系统是一种大型软件,为了研制操作系统,必须分析它的体系结构-----也就是要弄清楚如何把这一大型软件划分成若干较小的模块以及这些模块间有着怎样的接口。模块组合结构层次结构虚拟机结构微内核结构7第七页,共47页。几种常见的操作系统结构模块组合结构根据功能划分系统中的模块优点结构紧密,接口简单直接,系统效率高操作系统结构设计8第八页,共47页。模块组合结构

缺点模块间转接随便数据基本上作为全程量处理常常关中断,系统的并发性难以提高操作系统结构设计几种常见的操作系统结构9第九页,共47页。层次结构把操作系统的所有功能模块按功能的调用次序,分别排列成若干层,各层之间的模块只能是单向依赖或单向调用的关系E.W.Dijkstra的THE系统:操作系统结构设计几种常见的操作系统结构10第十页,共47页。层次结构的特点分解成许多功能单一的模块,各模块之间有清晰的组织结构和依赖关系具有更高的可读性和可适应性层次结构是单向依赖的,上层模块建立在下层基础上很容易增加或替换掉一层而不影响其它层次便于修改、扩充操作系统结构设计几种常见的操作系统结构11第十一页,共47页。层次结构的层间关系全序半序操作系统结构设计几种常见的操作系统结构12第十二页,共47页。分层原则为了增加操作系统的可适应性,并且便于将操作系统移植到其它机器上,必须把与机器特点紧密相关的软件,如中断处理,输入输出管理等放在紧靠硬件的最低层。为了便于操作系统从一种操作方式转变到另一种操作方式,通常把多种操作方式共同使用的基本部分放在内层,而把随着这些操作方式而改变的部分放在外层。为了给进程的活动提供必要的环境和条件,因此必须要有一部分软件——系统调用的各功能,来为进程提供服务,通常这些功能模块(各系统调用功能)构成操作系统内核,放在系统的内层。操作系统结构设计几种常见的操作系统结构13第十三页,共47页。操作系统结构设计虚拟机结构

系统的核心

----虚拟机监控程序(VM)VM/370在裸机上运行并且具备了多道程序功能。该系统向上层提供了若干台虚拟机。这些虚拟机仅仅是精确复制的裸机硬件,包含:核心态/用户态,I/O功能,中断,及其它真实硬件所具有的全部内容。几种常见的操作系统结构14第十四页,共47页。操作系统结构设计虚拟机结构

由于每台虚拟机都与裸机相同,所以每台虚拟机可以运行一台裸机所能够运行的任何类型操作系统。会话监控系统(CMS)程序在执行系统调用时,它的系统调用陷入其虚拟机中的操作系统。然后CMS发出硬件I/O指令,在虚拟机者执行为该系统调用所需的其它操作。这些I/O指令被VM/370捕获,作为对真实硬件模拟的一部分,VM/370随后就执行这些指令。几种常见的操作系统结构15第十五页,共47页。微内核结构CMU的Mach、早期的WindowsNT……非常适宜于应用在网络环境下,应用于分布式处理的计算环境中由两大部分组成:“微”内核服务进程操作系统结构设计几种常见的操作系统结构16第十六页,共47页。微内核运行在核心态的内核提供所有操作系统基本都具有的那些操作,包括线程调度、虚拟存储、消息传递、设备驱动以及内核的原语操作集和中断处理等。这些部分通常采用层次结构并且只提供了一个很小的功能集合,通常称为微内核。微内核结构操作系统结构设计服务进程运行在用户态的并以客户/服务器方式运行的进程。操作系统所有的其它部分被分成若干个相对独立的服务进程,提供各种系统功能、文件系统服务以及网络服务等。客户进程与服务器进程之间使用消息进行通信。几种常见的操作系统结构17第十七页,共47页。主要优点机制与策略分离机制(mechanism)----任务在系统中完成的方法策略(policy)----决定应该执行哪个任务,何时执行等等可靠灵活适合分布式计算的需求缺点效率较低微内核结构操作系统结构设计几种常见的操作系统结构18第十八页,共47页。Windows操作系统设计模型融合了分层操作系统和微内核操作系统的设计思想Windows通过硬件机制实现了核心态以及用户态两个特权级别。对性能影响很大的操作系统组件运行在核心态。核心内没有保护。设计充分体现了机制与策略分离的思想19第十九页,共47页。Windows的核心态组件使用了面向对象的设计原则出于可移植性以及效率因素的考虑,大部分代码使用了基于C语言的对象实现。Windows的很多系统服务运行在核心态,这使得Windows更加高效,而且也是相当稳定的。Windows操作系统设计模型Windows操作系统设计模型20第二十页,共47页。可移植性的获得两种手段分层的设计。依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。提供操作系统可移植性的两个关键组件是HAL和内核。依赖于体系结构的功能在内核中实现,在相同体系结构中,因计算机而异的功能在HAL中实现。Windows大量使用高级语言——执行体、设备驱动程序等用C语言编写,图形用户界面用C++编写。只有那些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少。Windows操作系统设计模型Windows操作系统设计模型21第二十一页,共47页。对称多处理支持非对称多处理(AsymmetricMultiprocessing,ASMP):又称主从模式(Master-slavemode)。主处理器:只有一个,运行OS。管理整个系统的资源,为从处理器分配任务;从处理器:可有多个,执行应用程序或I/O处理。特点:不同性质任务的负载不均,可靠性不够高,不易移植(通常要求硬件也是非对称的)。对称多处理(SymmetricMultiprocessing,SMP):操作系统交替在各个处理器上执行。任务负载较为平均,性能调节容易——"傻瓜式"Windows操作系统设计模型Windows操作系统设计模型22第二十二页,共47页。对称多处理支持Windows操作系统设计模型Windows操作系统设计模型23第二十三页,共47页。Windows操作系统设计模型对称多处理支持Windows操作系统设计模型Windows是一个支持SMP的操作系统,操作系统本身和用户线程可以在任何处理器上运行——不存在主处理器不同版本支持的处理器数目不同:Professional 2Server 4AdvancedServer 8DatacenterServer 3224第二十四页,共47页。Windows的体系结构系统支持进程服务进程用户程序环境子系统子系统动态链接库执行体内核设备驱动程序硬件抽象层(HAL)窗口与图形25第二十五页,共47页。硬件抽象层(HAL)HAL=HardwareAbstractionLayerHAL是一个核心态模块(HAL.DLL),它为运行Windows的硬件平台提供低级接口。HAL隐藏各种与硬件有关的细节,例如I/O接口、中断控制器以及多处理器通信机制等实现多种硬件平台上的可移植性Windows操作系统体系结构26第二十六页,共47页。硬件抽象层(HAL)在Windows发行介质上有许多HAL:Hal.dll 标准PCHalsmp.dll 多处理器PCHalsp.dll CompaqSystemPro……安装时根据硬件平台选择的模块复制到系统中,并改名为Hal.dllWindows操作系统体系结构27第二十七页,共47页。硬件抽象层(HAL)为了维护可移植性,Windows内部组件和用户编写的设备驱动程序并不直接访问硬件,而是通过调用Hal.dll中的例程。READ_PORT_XXXWRITE_PORT_XXXREAD_PORT_BUFFER_XXXWRITE_PORT_BUFFER_XXXREAD_REGISTER_XXXWRITE_REGISTER_XXXREAD_REGISTER_BUFFER_XXXWRITE_REGISTER_BUFFER_XXXXXX——UCHAR、USHORT、ULONG读(写)I/O端口从连续的I/O端口读(写)一组数据读(写)内存映射的设备寄存器Windows操作系统体系结构28第二十八页,共47页。设备驱动程序可加载的核心态模块I/O系统和相关硬件之间的接口WDM=WindowsDriverModel设备驱动程序的分类硬件设备驱动程序操作硬件。文件系统驱动程序接受面向文件的I/O请求,并把它们转化为对特殊设备的I/O请求。过滤器驱动程序截取I/O并在传递I/O到下一层之前执行某些特定处理。Windows操作系统体系结构29第二十九页,共47页。内核NTOSKRNL.EXE的下层内核是对处理器体系结构的抽象,将执行体与处理器体系结构的差异相隔离,保证系统的可移植性。大多数代码用C编写,部分依赖于硬件体系结构的代码用汇编编写功能线程安排和调度陷阱处理和异常调度中断处理和调度多处理器同步供执行体使用的基本内核对象始终运行在核心态,代码精简,可移植性好。除了中断服务例程,正在运行的线程不能抢先内核。Windows操作系统体系结构30第三十页,共47页。内核对象内核实现了一组简单的对象,称为内核对象,以帮助内核控制中心处理并支持执行体对象的创建。控制对象——包括异步过程调用(APC,asynchronousprocedurecall)对象、延迟过程调用(DPC,deferredprocedurecall)对象和几个由I/O系统使用的对象,例如中断对象。调度程序对象——负责同步操作并影响线程调度。调度程序对象包括内核线程、互斥体(Mutex)、事件(Event)、内核事件对、信号量(Semaphore)、定时器和可等待定时器内核Windows操作系统体系结构31第三十一页,共47页。硬件支持使得执行体和设备驱动程序同硬件无关实现手段:一组在多个体系结构上可移植的、同语义的接口内核也有部分代码不具有移植性支持虚拟8086模式的代码,用以运行一些古老的16位DOS程序高速缓存管理描述表切换内核Windows操作系统体系结构32第三十二页,共47页。执行体Windows操作系统体系结构执行体(Executive)是NTOSKRNL.EXE的上层执行体应该从两种角度来理解:1.执行体提供了一组函数调用2.执行体本身由若干组件组成33第三十三页,共47页。执行体提供的函数调用从用户态导出并且可以调用的函数。这些函数的接口在NTDLL.DLL中。通过Win32API或一些其他的环境子系统可以对它们进行访问。从用户态导出并且可以调用的函数,但当前通过任何文档化的子系统函数都不能使用。在WindowsDDK中已经导出并且文档化的核心态调用的函数。在核心态组件中调用但没有文档化的函数。例如在执行体内部使用的内部支持例程。组件内部的函数。Windows操作系统体系结构34第三十四页,共47页。包含的功能实体进程和线程管理器创建及中止进程和线程。对进程和线程的基本支持在Windows2000内核中实现,而执行体给这些低级对象添加附加语义和功能。虚拟内存管理器实现“虚拟内存”。内存管理器也为高速缓存管理器提供基本的支持。安全引用监视器在本地计算机上执行安全策略。它保护了操作系统资源,执行运行时对象的保护和监视。I/O管理器执行独立于设备的输入/输出,并进一步处理调用适当的设备驱动程序。高速缓存管理器通过将最近引用的磁盘数据驻留在主内存中来提高文件I/O的性能,并且通过在把更新数据发送到磁盘之前将它们在内存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速访问。Windows2000/XP操作系统体系结构执行体35第三十五页,共47页。对象管理器:创建、管理以及删除Windows的执行体对象和用于代表操作系统资源的抽象数据类型,例如进程、线程和各种同步对象。本地过程调用(LPC,LocalProcedureCall)机制,在同一台计算机上的客户进程和服务进程之间传递信息。LPC是一个灵活的、经过优化的“远程过程调用”(RPC,RemoteProcedureCall)版本。一组广泛的公用运行时函数,例如字符串处理、算术运算、数据类型转换和完全结构处理。执行体支持例程,例如系统内存分配(页交换区和非页交换区)、互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体。执行体包含的功能实体Windows操作系统体系结构36第三十六页,共47页。NTDLL子系统动态链接库功能提供系统调用入口为子系统、子系统动态链接库、及其他本机映像提供内部支持函数NTDLL也包含许多支持函数,例如映像加载程序、堆管理器和Win32子系统进程通信函数以及通用运行库。用户态异步过程调用(APC)调度器和异常调度器。Windows操作系统体系结构37第三十七页,共47页。环境子系统将基本的执行体系统服务的某些子集以特定的形态展示给应用程序三种环境子系统:POSIX、OS/2和Win32(OS/2只能用于x86系统)Win32子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,Win32子系统是Windows运行的基本条件之一。函数调用不能在不同子系统之间混用,因此每一个可执行的映像都受限于唯一的子系统Windows操作系统体系结构38第三十八页,共47页。Win32子系统Win32环境子系统进程(CSRSS.EXE):包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线程、支持16位DOS虚拟机(VDM)进程的部分。Win32子系统动态链接库(User32.dll、Kernel32.dll、GDI32.dll),将文档化的Win32API函数转化为适当的非文档化的核心系统服务(调用NTOSKRNL.EXE和WIN32.SYS)核心态设备驱动程序(WIN32K.SYS):窗口管理器(User):控制窗口显示,管理屏幕输出,实现用户界面图形设备接口(GDI,GraphicsDeviceInterfaces)图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序。环境子系统Windows操作系统体系结构39第三十九页,共47页。环境子系统Win32子系统Win32应用程序(client)CSRSS(server)Win32子系统DLL子系统动态链接库(NTDLL)用户态核心态WIN32K.SYSLPC机制Windows操作系统体系结构40第四十页,共47页。环境子系统当一个应用程序调用子系统动态链接库中的函数时,可能会出现下面三种情况之一:

函数完全在子系统动态链接库的用户态部分中实现,这时并没有消息发送到环境子系统进程,也没有调用执行体服务。函数在用户态中执行,结果返回到调用者。例如:GetCurrentProcessId

函数需要一个或多个对执行体函数的调用。例如:ReadFile,由子系统动态链接库调用Windows系统服务NtRead

温馨提示

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

评论

0/150

提交评论