欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Windows操作系统-体系结构(二).ppt

    • 资源ID:71844017       资源大小:948KB        全文页数:34页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Windows操作系统-体系结构(二).ppt

    1第二章第二章 Windows操作系统操作系统的体系结构(下)的体系结构(下)F陷阱调度陷阱调度中断调度中断调度异常调度异常调度系统服务调度系统服务调度F对象管理器对象管理器F本地过程调用本地过程调用FWindows的系统机制的系统机制2陷阱调度当异常或中断当异常或中断发生生时,硬件或,硬件或软件可以件可以检测到,到,处理器理器会从用会从用户态切切换到核心到核心态,并将控制,并将控制转交交给内核的陷阱内核的陷阱处理程序,理程序,该模模块检测异常和中断的异常和中断的类型,并将控制交型,并将控制交给处理相理相应情况的代情况的代码 3异常和中断异常和中断中断是异步事件,可能随中断是异步事件,可能随时发生,与生,与处理器正在理器正在执行的行的内容无关。中断主要由内容无关。中断主要由I/O设备、处理器理器时钟或定或定时器器产生,可以被启用或禁用生,可以被启用或禁用异常是同步事件,它是某一特定指令异常是同步事件,它是某一特定指令执行的行的结果。在相果。在相同条件下,异常可以重同条件下,异常可以重现。例如内存。例如内存访问错误、调试指指令以及被零除。令以及被零除。系系统服服务调用也用也视作异常。作异常。软件和硬件都可以件和硬件都可以产生异常和中断。生异常和中断。陷阱调度4中断调度中断请求级别(中断请求级别(IRQL=Interrupt Request Level)Windows 操作系统运行操作系统运行的不同机器,其中断处的不同机器,其中断处理机制是各不相同的,理机制是各不相同的,为了可移植性的需要,为了可移植性的需要,Windows将与中断控制将与中断控制器硬件相关的中断级别器硬件相关的中断级别映射为一个标准的与硬映射为一个标准的与硬件无关的中断级别,即件无关的中断级别,即中断请求级别中断请求级别IRQL。这一映射由这一映射由HAL实现。实现。IRQL采用符号名来命名采用符号名来命名HIGH_LEVEL POWER_LEVELIPI_LEVEL CLOCK_LEVELPROFILE_LEVELDEVICE_LEVELDISPATCH_LEVELAPC_LEVELPASSIVE_LEVEL 5中断调度在不同机器上,在不同机器上,IRQL的实际取值不的实际取值不尽相同尽相同由于由于IRQL与硬件无与硬件无关,所以可以将非关,所以可以将非硬件中断(软件中硬件中断(软件中断)映射到断)映射到IRQL体体系结构中。软件中系结构中。软件中断主要用于启动调断主要用于启动调度操作。度操作。6中断调度处理器的处理器的IRQL在多处理器系统中,任一处理器都可以接收中断请求,所以在多处理器系统中,任一处理器都可以接收中断请求,所以Windows为每一个处理器维护一个独立的为每一个处理器维护一个独立的IRQL。7中断调度中断对象中断对象当处理器收到中断请求时,要通知相应设备的驱动程序进行当处理器收到中断请求时,要通知相应设备的驱动程序进行处理。为此,设备驱动程序应该向处理。为此,设备驱动程序应该向I/O管理器注册一个管理器注册一个ISR,可以通过调用可以通过调用IoConnectInterrupt来实现。来实现。IoConnectInterrupt初始化一个中断对象,来存放关于中断初始化一个中断对象,来存放关于中断及其及其ISR的信息。同时使处理器的中断服务表(中断向量表的信息。同时使处理器的中断服务表(中断向量表/中断描述符表)的相应表项指向该中断对象。中断描述符表)的相应表项指向该中断对象。8中断调度硬件中断处理过程硬件中断处理过程9中断调度延迟过程调用延迟过程调用DPC当处理器处于较高当处理器处于较高IRQL时,将屏蔽低于或等于处理器当前时,将屏蔽低于或等于处理器当前IQRL的中断,可能使某些设备的中断得不到及时响应。的中断,可能使某些设备的中断得不到及时响应。为此,为此,Windows要求处理器在较高要求处理器在较高IRQL上运行的时间尽可能上运行的时间尽可能短,故引入延迟过程调用机制。短,故引入延迟过程调用机制。10中断调度延延迟过程程调用用11结构化异常处理结构化异常处理Windows在系统底层提供了一种称为结构化异常处理在系统底层提供了一种称为结构化异常处理(SEH)的系统机制。利用的系统机制。利用SEH可以把程序主要的工作可以把程序主要的工作同错误处理分离开来,这样的分离,可以使程序员集同错误处理分离开来,这样的分离,可以使程序员集中精力关注程序要完成的任务,而将可能发生的错误中精力关注程序要完成的任务,而将可能发生的错误放在后面处理。放在后面处理。异常是在应用程序的正常执行过程中发生的不正常事异常是在应用程序的正常执行过程中发生的不正常事件。件。CPU引发的异常称为引发的异常称为硬件异常硬件异常,操作系统和应用,操作系统和应用程序直接引发的异常,称为程序直接引发的异常,称为软件异常软件异常异常调度12SEH是操作系统的一种系统机制,与特定的程序是操作系统的一种系统机制,与特定的程序设计语言无关。设计语言无关。应用程序要利用系统提供的应用程序要利用系统提供的SEH机制,则必须借机制,则必须借助于特定程序设计语言的相关语法。助于特定程序设计语言的相关语法。因此,因此,SEH不但涉及操作系统,而且与编译器有不但涉及操作系统,而且与编译器有密切的关系。密切的关系。结构化异常处理结构化异常处理异常调度13_try./guarded section_except(exception filter)./exception handler结构化异常处理结构化异常处理异常调度14异常过滤器返回如下三个异常标识符之一异常过滤器返回如下三个异常标识符之一FECXEPTION_EXECUTE_HANDLERFECXEPTION_CONTINUE_EXECUTIONFECXEPTION_CONTINUE_SEARCH结构化异常处理结构化异常处理异常调度15异常调度异常调度异常调度每个线程拥有一个称为每个线程拥有一个称为TEB的数据结构,其中包含指向的数据结构,其中包含指向EXCEPTION_REGISTRATION_RECORD结构的指针结构的指针EXCEPTION_REGISTRATION_RECORD结构包含两个域:结构包含两个域:next指向下一个指向下一个EXCEPTION_REGISTRATION_RECORD 结构结构handler指向指向_except_handler16异常调度异常调度异常调度Thread Environment Block(FS:0)EXCEPTION_REGISTRATION_RECORDOther FieldsEXCEPTION_REGISTRATION_RECORDHandlerCallback PointerNext_except_handler()/except code here17异常调度_except_handler()(Doesnt handle it)_except_handler()(Doesnt handle it)_except_handler()(Does handle it)12345678910Exception Generated18系统服务调度系统服务是操作系统提供的一组函数,系统服务是操作系统提供的一组函数,系统服务由执行体实现。系统服务由执行体实现。为方便用户编程,为方便用户编程,Windows以以DLL的形的形式式提供了提供了API,用户可以通过调用,用户可以通过调用API函函数来使用系统服务。数来使用系统服务。利用利用API间接调用系统服务的优点:间接调用系统服务的优点:方便方便增加应用程序的可移植性增加应用程序的可移植性19系统服务调度API调用与系统服务不存在一一对应的关调用与系统服务不存在一一对应的关系系20系统服务调度在在Alpha处理器上理器上执行行syscall指令或在指令或在Intel x86处理器上理器上执行行int 2E指令都会引指令都会引起系起系统服服务调度。度。mov eax,xxxx;系系统服服务号号mov edx,xxxx;参数指参数指针int 2eh21系统服务调度内核使用执行内核使用执行int 2E指令时设置的系统服务号在指令时设置的系统服务号在系统服务调度表系统服务调度表中查找对应的系统服务。中查找对应的系统服务。系统服务调度表是一个核心数据结构,其中包含系统服务调度表是一个核心数据结构,其中包含了指向各个系统服务的指针。了指向各个系统服务的指针。22系统服务调度程序将依次作下面几件事:系统服务调度程序将依次作下面几件事:校验参数校验参数调用者的参数从线程的用户堆栈复制到它的调用者的参数从线程的用户堆栈复制到它的核心堆栈中核心堆栈中执行系统服务执行系统服务 系统服务调度23系统服务调度24对象管理器Windows的核心的核心态组件使用了面向件使用了面向对象象设计原原则,从而,从而为执行体行体实现的内部服的内部服务提提供了一致且安全的供了一致且安全的访问机制机制对象管理器(象管理器(Object Manager)是)是执行体行体组件之一:件之一:用于用于创建、建、删除、保除、保护和跟踪和跟踪对象象实现对象的集中保象的集中保护实现了了资源的源的访问控制控制对象管理器有一套象管理器有一套对象命名方案和象命名方案和统一的保留一的保留规则,能能够容易地操容易地操纵现有有对象象 25执行体行体对象象由由执行体的各种行体的各种组件件实现 进程管理器、内存管理器、程管理器、内存管理器、I/O子系子系统等等 内核内核对象象由内核由内核实现的原始的的原始的对象集合象集合这些些对象象对用用户态代代码是不可是不可见的,它的,它们仅在在执行体内行体内创建和使建和使用用 内核内核对象提供了一些基本功能,象提供了一些基本功能,许多多执行体行体对象内包含着一个象内包含着一个或多个内核或多个内核对象。象。对象管理器26对象管理器对象的结构对象的结构对象头对象头 由对象管理器控制由对象管理器控制对象名:使对象可以被其它进程所引用对象名:使对象可以被其它进程所引用安全描述符:包含访问许可安全描述符:包含访问许可打开句柄信息:包含哪些进程使用该对象的信息打开句柄信息:包含哪些进程使用该对象的信息引用计数:包含未完成的引用该对象的句柄数引用计数:包含未完成的引用该对象的句柄数对象体对象体由各执行体组件控制由各执行体组件控制27执行体对象执行体对象内核对象内核对象执行体执行体内核内核应用程序应用程序句柄句柄对象管理器用户态用户态核心态核心态28对象管理器对于某些表示共享对于某些表示共享资源的对象,如果资源的对象,如果一个对象已经创建,一个对象已经创建,当第二个进程试图当第二个进程试图再次创建对象时,再次创建对象时,执行体只是创建一执行体只是创建一个新的句柄个新的句柄29本地过程调用LPC=Local Procedure Call(本地本地过程程调用用)通常在一个服通常在一个服务器器进程与程与该服服务器的一个器的一个或多个客或多个客户进程之程之间进行通信行通信时使用使用LPC机制。机制。一个用于消息一个用于消息传输的的进程程间通信机制通信机制使用使用LPC的例子:的例子:用用户程序程序调用某些用某些Win32 API将将导致致给Win32子系子系统服服务进程(程(CSRSS.EXE)发送消息送消息30LPC的两种交的两种交换消息的方法:消息的方法:使用包含信息的使用包含信息的缓冲区冲区调用用LPC可以可以发送少于送少于256字字节的信息。然后,的信息。然后,这个信息又从个信息又从发送送进程程的地址空的地址空间复制到系复制到系统地址空地址空间,再从那里拷,再从那里拷贝到接收到接收进程的地址空程的地址空间。如果用如果用户和服和服务器想交器想交换大于大于256字字节的数据,的数据,那么他那么他们可以可以选择使用双方都映射了的共享区。使用双方都映射了的共享区。发送方将信息数据放到共享区,然后向接收方送方将信息数据放到共享区,然后向接收方发送一小段信息表明在共享区的什么地方可以送一小段信息表明在共享区的什么地方可以找到数据。找到数据。本地过程调用31本地过程调用LPC导出一个称为端口对象导出一个称为端口对象(port object)的执行的执行体对象,用它来维护通信所需要的状态。体对象,用它来维护通信所需要的状态。端口对象拥有四种类型的端口:端口对象拥有四种类型的端口:服务器连接端口服务器连接端口是一个已命名的服务器连接请求指是一个已命名的服务器连接请求指向端口,客户可通过与这个端口连接从而连接到服向端口,客户可通过与这个端口连接从而连接到服务器上。务器上。服务器通信端口服务器通信端口是服务器用来与特殊客户进行通信是服务器用来与特殊客户进行通信的一个未命名的端口,服务器与每一个活动客户都的一个未命名的端口,服务器与每一个活动客户都有一个这样的端口。有一个这样的端口。客户通信端口客户通信端口是特殊客户线程用来与特殊服务器通是特殊客户线程用来与特殊服务器通信的未命名的端口。信的未命名的端口。未命名通信端口未命名通信端口为用于同一进程中的两个线程而创为用于同一进程中的两个线程而创建的未命名的端口建的未命名的端口。32本地过程调用33Win32子系统子系统Win32应用程序应用程序(client)CSRSS(server)Win32子系统子系统DLL用户态用户态核心态核心态WIN32K.SYSLPC机制机制本地过程调用34本地过程调用

    注意事项

    本文(Windows操作系统-体系结构(二).ppt)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开