版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、输入输出系统概述输入输出软件结构窗口输入输出系统结构窗口输入输出系统重要数据结构窗口驱动程序窗口输入输出处理,第6章输入输出系统,2、输入输出系统概述,输入输出系统是操作系统的重要组成部分,负责管理系统中所有外部设备。计算机外部设备计算机系统中除了中央处理器和内部存储器以外的所有设备和装置都称为计算机外部设备(外围设备、输入输出设备)。3.存储设备:用于存储各种信息的设备称为存储设备,如软盘、硬盘、光盘和磁带;输入输出设备:用于向计算机输入输出信息的设备,如键盘、鼠标、显示器、打印机等。输入/输出系统概述,外部设备分类,4,输入/输出系统功能,1。状态跟踪应掌握设备的状态。2.设备访问实现
2、对设备的访问操作。3。设备分配在多用户环境中,负责设备分配和回收。4.设备控制设备控制包括设备驱动、完成和故障中断处理。输入/输出系统概述,5。I/o软件结构,I/O设备管理软件结构,其基本思想是分层结构,也就是说,设备管理软件被组织成一系列的层,其中较低层与硬件相关,将硬件与较高层的软件分开。顶层的软件为应用程序提供了友好、清晰和统一的界面。6、设备独立性,设备独立性指用户在编程中使用的设备与实际设备无关。两种设备的独立性:1 .一个程序应该独立于分配给它的特定类型设备的特定设备。也就是说,在用户程序中只能指示输入/输出使用的设备类型。如果系统配有两台打印机,用户只需告诉系统在打印时将信息发
3、送给打印机。2.程序应尽可能与所使用的设备类型无关,即只需指出用户程序中要输入或输出的信息,用于信息输入输出的设备不需要用户指出。7,设备独立性的优势1。方便用户编程。运行程序不受特定机器环境的限制。便于程序移植,实现设备独立性。在视窗系统中,设备和文件是统一处理的。对于用户来说,没有设备的概念。8、输入/输出系统的层次结构和主要功能,9、输入/输出系统的结构,以及输入/输出系统是重要的执行组件设计目标。输入/输出可以在单处理器或多处理器系统中快速处理。使用标准的视窗2000/XP安全机制来保护共享资源。满足由微软Win32、OS/2和POSIX子系统指定的输入/输出服务的需求。提供服务使设备
4、驱动程序的开发尽可能简单,并允许用高级语言编写驱动程序。根据用户的配置或系统中硬件设备的添加和删除,允许在系统中动态添加或删除相应的设备驱动程序。通过添加驱动程序,透明地修改其他驱动程序或设备的行为。它为各种可调度文件系统提供支持,包括FAT、CDROM文件系统(CDFS)、UDF(通用磁盘格式)文件系统和Windows 2000/XP文件系统(NTFS)。允许整个系统或单个硬件设备进入和退出低功耗状态,这样可以节约能源。输入/输出管理器将应用程序和系统组件连接到各种虚拟、逻辑和物理设备,并定义支持设备驱动程序的基本框架。设备驱动程序为特定类型的设备提供输入/输出接口。设备驱动程序从输入/输出
5、管理器接收处理命令,并在处理完成时通知输入/输出管理器。设备驱动程序之间的协作也是通过输入/输出管理器实现的。即插即用管理器通过与输入/输出管理器和总线驱动程序协作来检测硬件资源的分配,并检测相应硬件设备的添加和删除。电源管理器通过与输入输出管理器的配合来检测整个系统和单个硬件设备,并完成不同电源状态的转换。输入/输出系统组件,12。WMI(Windows management instrumentation)支持例程,也称为Windows驱动程序模型(WDM) wmi提供程序,允许驱动程序使用这些支持例程作为与以用户模式运行的WMI服务通信的媒介。作为数据库,注册表存储基本硬件设备的描述信息
6、以及驱动程序的初始化和配置信息。硬件抽象层(HAL)I/O访问例程将设备驱动程序与各种硬件平台隔离开来,使它们在给定的体系结构中可二进制移植,而源代码在Windows 2000/XP支持的硬件体系结构中可移植。输入/输出系统组件,13,输入/输出管理器,它定义了一个有序的工作框架,其中输入/输出请求被提交给设备驱动程序。大多数输入输出请求由“输入输出请求数据包(IRP)”表示,输入输出系统由“数据包”驱动。这些包从一个输入/输出系统组件移动到另一个组件。输入输出管理器创建代表每个输入输出操作的IRP,并将IRP传递给正确的驱动程序。当输入/输出操作完成时,输入/输出管理器还为不同的驱动程序提供
7、公共代码,驱动程序调用这些代码来执行它们的输入/输出处理。14.PnP管理器,PnP PnP管理器收集硬件资源需求(中断、输入/输出地址等)。)通过称为资源仲裁的过程来实现硬件资源的优化分配,并满足系统中每个硬件设备的资源需求。PnP管理器通过硬件标识选择应该加载的设备驱动程序。PnP管理器还提供了应用程序和驱动程序之间的接口,用于检测硬件配置变化。因此,在视窗2000/XP中,当硬件配置改变时,相应的应用程序和驱动程序将被通知。15,电源管理器,电源管理要求底层硬件符合ACPI标准。ACPI为系统和设备定义了不同的能耗状态,从S0(正常运行)到S5(完全关闭)。功耗:计算机系统消耗的能量。软
8、件运行恢复:当计算机系统恢复正常运行时,软件能否恢复运行。硬件延迟:计算机系统恢复正常运行的时间延迟,16,Windows 2000/XP电源管理策略电源管理器是系统电源策略的所有者,因此整个系统的能耗状态转换由电源管理器决定,并调用相应设备的驱动程序来完成。电源管理器根据以下因素确定当前能耗状态、系统活动状态、系统电源状态、应用程序关闭和休眠请求用户的操作。例如,用户可以按下电源按钮来设置控制面板上的电源设备驱动程序,以独立控制设备的能耗状态。电源管理器,17,视窗2000/XP输入/输出功能,在视窗2000/XP中,所有输入/输出操作都是通过虚拟文件执行的,隐藏了输入/输出操作目标的实现细
9、节。它为应用程序到设备提供了统一的接口。用户模式应用程序调用记录的函数,这些函数又调用内部输入/输出子系统函数来读取文件、写入文件和执行其他操作。输入/输出管理器动态地将这些虚拟文件请求指向适当的设备驱动程序,18,典型的输入/输出请求过程,19,重要的系统对象,文件对象驱动程序对象,设备对象输入/输出请求包(IRP),20,文件对象,它们提供基于存储器的共享物理资源的表示,21,以及打开文件对象,文件对象,22,22。设备对象表示系统中的物理、逻辑或虚拟设备,并描述其特征。23,驱动程序对象和设备对象,24,输入/输出请求包,当存储处理输入/输出请求所需信息的线程调用输入/输出服务时,输入/
10、输出管理器构造一个IRP来表示整个系统的输入/输出过程中要执行的操作。I/O管理器在IRP中保存一个指向调用者文件对象的指针,它由两部分组成:固定部分(称为标题):请求的类型和大小,无论它是同步请求还是异步请求,以及缓冲区I/O指向缓冲区和状态信息的指针随请求的进度而变化。一个或多个堆栈单元:一个功能代码、特定于功能的参数和一个指向调用者文件对象的指针、25、输入/输出系统对象之间的关系、26、视窗2000/XP设备驱动程序、支持各种类型设备驱动程序的分类文件系统驱动程序和编程环境的核心驱动程序接受输入/输出访问文件的请求。与即插即用管理器和电源管理器相关的设备驱动程序。为视窗NT编写的设备驱
11、动程序。Win32子系统显示驱动程序和打印驱动程序将独立于设备的图形(GDI)请求转换为特定于设备的请求。符合视窗驱动程序模式(WDM)的WDM驱动程序包括对即插即用、电源管理和WMI的支持。27,有三种类型的WDM驱动程序总线驱动程序管理逻辑或物理总线,如PCMCIA、PCI、USB、IEEE 1394和ISA。总线驱动程序需要检测并通知PnP管理器总线上的设备,并可以管理电源。特定设备由功能驱动程序管理,硬件设备上的所有操作都通过功能驱动程序执行。过滤器驱动程序与函数驱动程序一起工作,以增加或改变函数驱动程序的行为。Windows 2000/XP设备驱动程序,28,用户模式驱动程序虚拟设备
12、驱动程序(VDD)通常用于模拟16位MSDOS应用程序。它们捕获MSDOS应用程序对输入/输出端口的引用,并将它们转换为本机Win32输入/输出函数。Windows 2000/XP中的用户模式MSDOS应用程序不能直接访问硬件,但必须通过真正的核心设备驱动程序。Win32子系统的打印驱动程序将独立于设备的图形请求转换成与打印机相关的命令,然后发送到核心模式驱动程序,如并行端口驱动程序(Parport.sys)、通用串行总线打印机驱动程序(Usbprint.sys)等。Windows 2000/XP设备驱动程序、29和硬件支持驱动程序可分为以下几类驱动程序,用于为特定类型的设备(如磁盘、磁盘等)
13、执行I/O处理。端口驱动程序实现了对特定类型的输入/输出端口(如SCSI)的输入/输出请求的处理。portlet驱动程序将端口类型的一般输入/输出请求映射到适配器类型。例如,特定的SCSI适配器。30,文件系统操作的示例,31,驱动程序的结构,设备驱动程序包括一组在不同阶段被调用来处理输入/输出请求的例程,32,初始化例程,并且当输入/输出管理器将驱动程序加载到操作系统中时,它执行驱动程序的初始化例程。添加设备例程以支持PnP管理器的操作。一系列调度例程是设备驱动程序提供的主要功能。启动输入/输出例程,驱动程序可以使用该例程初始化与设备的数据传输。中断服务程序。当一个设备被中断时,内核的中断调
14、度程序将控制权转移给这个例程。ISR在高级设备中断请求级别(IRQL)运行,越简单越好,以避免不必要的低优先级中断阻塞。中断服务DPC例程,在ISR执行后执行大多数设备中断处理工作。当DPC例程低于ISR的IRQ时执行,以避免对其他中断的不必要的阻塞。DPC例程初始化输入/输出完成,并在设备的下一个队列上开始输入/输出操作。此外,在以下部分中通常有一个或多个完成例程,这些例程确定何时通过较低级别的驱动程序完成IRP的处理。取消输入输出程序。如果一个输入/输出操作可以被取消,驱动程序可以定义一个或多个取消输入/输出例程。卸载例程,释放驱动程序正在使用的任何系统资源,以便输入/输出管理器可以从内存
15、中删除它们。系统关闭通知程序,允许驱动程序在系统关闭时进行清理。错误记录例程:当意外错误发生时,驱动程序的错误记录例程将记录发生的情况并通知输入/输出管理器。输入/输出管理器将此信息写入错误日志文件。驱动程序结构,34,驱动程序同步问题,它们必须同步执行对全局驱动程序数据的访问。驱动程序的执行可能被高优先级线程抢占,或者被时间片(或时间段)中断,或者被其他中断中断。在多处理器系统中,windows 2000/XP可以同时在多个处理器上运行驱动程序代码,35、Windows 2000/XP中的I/O处理,I/O类型I/O请求用于单层驱动程序处理I/O请求用于多层驱动程序,36、Windows 2
16、000/XP中的I/O类型,同步I/O和异步I/O“同步”:当I/O完成时,设备执行数据传输并返回状态代码。然后程序可以立即“异步”访问传输的数据:应用程序发出输入/输出请求,然后当设备传输数据时,应用程序继续执行快速输入/输出:允许输入/输出系统直接向文件系统驱动程序或缓存管理器执行输入/输出请求,而不产生IRP;映射文件输入输出和文件缓存;将磁盘中的文件视为进程虚拟内存的一部分,程序可以在不缓冲数据或不执行磁盘输入/输出的情况下将文件作为一个大数组进行访问。分散/集中输入/输出:应用程序执行读或写操作,从虚拟内存中的多个缓冲区读取数据,并将其写入磁盘上文件的连续区域。37.单层驱动程序的输
17、入/输出请求被处理,输入/输出请求通过子系统动态链接库传递。子系统动态链接库调用输入输出管理器的服务。输入输出管理器以IRP的形式向驱动程序(这里是设备驱动程序)发送请求。驱动程序启动一个输入输出操作。当设备完成操作并中断中央处理器时,设备驱动程序提供中断服务。输入输出管理器完成输入输出请求。38、单层驱动的输入/输出请求处理,39、多层驱动的输入/输出请求,在单层输入/输出处理的基础上改变。输入输出管理器调用顶层设备驱动,上层设备驱动调用底层驱动,形成输入输出请求的转换、传输和嵌套。设备操作最终形成的分层驱动程序主要用于几个设备或复杂功能实体(如文件和网络)的协作。40.为了处理中断,输入/输出设备中断生成处理器将控制转移到内核
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应聘老师试题及答案
- 经营性店长试题及答案
- 共享课表试题及答案
- 人员进出洁净区管理规程
- 食品厂仓储管理标准
- 制药厂人员进出管理制度
- DBJT13-517-2025福建省建筑防水技术标准
- AI生成式技术创作传统戏曲音乐
- 北京华恒智信为酒店行业搭建科学后备人才选拔体系
- 2026年培训学员管理规范试题及答案
- 2026年学法减分考试题库【原创题】附答案详解
- 贵州省贵阳市环西小学小学三年级下册期末试卷(含答案)
- 2026年学校财务人员招聘题库及答案
- VDA 6.5 产品审核培训
- 2025年浙江省卫生高级职称评审医学期刊目录大全
- 情感咨询话术
- 2025-2026学年人教版(2024)七年级生物学第一学期期末模拟卷(含答案)
- 医疗机构名称与商标的知识产权保护
- 2026年高考新高考二卷数学题库试题附答案完整版
- 2025年新版麻醉记录单
- DB41∕T 2886-2025 矿产地质勘查规范 花岗伟晶岩型高纯石英矿
评论
0/150
提交评论