- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 设备管理 首先回顾操作系统的总体构架,从而定位设备管理所处地位 然后学习设备管理的基本原理 最后了结LINUX设备管理实例 设备管理 引言 硬件设备与控制软件之间的联系: 设备—控制器—内存映射地址—处理机 驱动程序—I/O管理程序—文件系统—用户的I/O请求 设备管理的主要任务 设备分配 实现数据传输 提供用户使用接口 提高并行操作度 设备管理程序提供的功能 为进程管理提供接口(将进程的请求转给设备管理) 实施设备分配(设备分类、调度算法、等待队列) 实现设备之间以及设备与CPU之间并行操作(DMA、通道) 缓冲区管理 输入/输出硬件 电子设备 设备分类 字符设备 块设备 设备控制器 DMA存储器直接存取 通道 磁带 磁盘 通道方式的数据传送结构 DMA 输入/输出软件 输入/输出软件的作用 程序直接控制方式 中断控制方式的传送结构 中断控制方式的处理过程 DMA方式的数据传送处理过程 通道控制方式的描述过程 从CPU执行的角度来描述通道控制方式 : Channel control procedure: repeat IR←M[pc] pc←pc+1 execute(IR) if require accessing with I/O Device then Command (I/O operation,Address of I/O device,channel) fi if I/O Done Interupt then Call Interrupt processing control fi until machine halt Interrupt processing control procedure ? 中断处理过程 用户进程请求设备服务的流程驱动程序所处地位 设备无关软件的功能 (设备文件管理) 用户层输入/输出软件 用户层I/O软件包含用于I/O操作的库例程 例如:read(fd,buf,nbytes)是读文件的系统调用,由它调用的库函数read将和用户程序连接在一起,放在可执行程序中。 Spooling系统 “Simultaneous Peripheral Operation On-Line” Spooling是在多道程序系统中处理独占设备的一种方法。 例如:一般的打印机是一种独占资源,每次只能有一个程序使用打印机,但如果一个进程打开打印机而不使用它,那么其它的进程都无法打印。 创建一个特殊的守护进程(daemon)以及一个特殊的目录,称为Spooling目录。 这时,打印一个文件之前,进程首先产生完整的待打印文件并将其放在Spooling目录下。当进程把该文件放到Spooling系统中之后就可以认为打印过程已经完成,虽然打印机还没有进行该文件的打印,因此也称为打印的“假脱机”过程。而整个的打印作业由该守护进程进行处理,只有该守护进程能够真正使用打印机设备文件。通过禁止用户直接使用打印机设备文件就解决了打印机的独占问题。 设备分配采用的数据结构 设备分配流程图 缓冲区管理技术 单缓冲区 多缓冲区 缓冲池 I/O控制 I/O控制的实现 I/O控制过程在系统中可以按三种方式实现 作为请求I/O操作的进程的一部分实现 作为当前进程的一部分实现 I/O控制由专门的系统进程 —— I/O进程完成: 每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行 整个系统设一I/O进程,全面负责系统的数据传送工作 每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行 小结 设备管理的基本过程 设备管理用的数据结构 通道、控制器、 DMA、中断、缓冲区、 数据传送控制方式 主设备号、次设备号(对应驱动程序及其参数) 设备分类 设备分配算法 I/O控制 LINUX输入/输出系统概述 Linux输入/输出的过程概述 设备驱动程序基础 Linux的中断处理 设备驱动程序的框架 字符设备驱动程序 块设备驱动程序 概述 Linux文件系统的层次结构 设备驱动分层结构 设备驱动程序基础 文件系统数据结构 Linux的中断处理 设备驱动程序框架 设备驱动程序代码功能 驱动程序的注册与注销 字符设备用:register_chrdev向内核注册,un register_chrdev从内核注销 块设备用:register_blkdev ()向内核注册,un register_blkdev从内核注销 设备的打开与释放 各自的open()和release() 设备的读写 各自的read()和write 设备的控制操作
文档评论(0)