- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学要求 本章目的: 主要介绍设备管理,即输入输出子系统。 教学目标: 了解设备管理的任务与功能;Linux 的设备管理方式;I/O 控制方式;缓冲技术;设备分配;Linux 的设备管理;Linux 的设备驱动程序。 重点与难点: I/O 控制方式;缓冲技术、中断技术;Linux 的设备管理、设备驱动程序。 专业术语: 设备控制器、存储器映像I/O、驻设备号、从设备号、设备文件。 13.1 概述 13.1.1 外设的分类 按使用特性 存储设备 输入输出(I/O)设备 网络设备 按数据组织分 块设备(block device) 字符设备(character device) 13.1 概述 13.1.2 设备管理的目标和功能 目标 支持计算机与各种外部设备交换信息。 为用户提供方便、统一的界面。 提高外设的利用率。 功能 实现I/O 操作。 对缓冲区的管理。 设备的分配和回收。 13.2 Linux 的设备管理结构 Linux 将输入输出子系统软件组织成一种层次结构,。通过打开(open)、读(read)、写(write)和关闭(close)等函数可对设备进行操作。 13.3 I/O 控制方式 13.3.1 设备控制器 I/O 设备一般分为机械部分和电子部分。机械部分是设备本身。电子部分称做设备控制器(device controller)或适配器(adapter)。 控制器上通常有一个可以插接的连接器,通过信号线电缆将控制器与计算机内部进行连接。 一般操作系统主要是和控制器打交道,而不是与机械设备打交道。 控制器的任务是把采集到的串行比特位流数据转换成字节块,存入控制器内部的缓冲区。 每个控制器有几个寄存器用来与CPU 进行通信。 13.3 I/O 控制方式 13.3.1 设备控制器 PC 机上某些控制器的I/O 地址和中断向量 13.3 I/O 控制方式 13.3.2 循环测试I/O 方式(程序直接控制方式) 这是最简单的I/O 控制方式。控制器中有两个寄存器,一个是状态寄存器,它的一个状态位反映设备的忙闲。另一个寄存器是数据缓冲寄存器。当状态寄存器的启动位为1 时,外设(假设为输入)把数据送往数据缓冲寄存器中,并将状态寄存器的状态位置1。CPU每执行完一条指令就要测试状态位,若为1,就把数据缓冲寄存器中的数据传送到主机;若状态位为0,则再测试。 特点:由于CPU 的速度远远高于I/O 设备的速度,CPU 等待时间过多,利用率太低。 13.3 I/O 控制方式 13.3.3 中断技术及Linux 的中断管理 硬件对中断的支持 中断需要一定的硬件支持和相关的软件协调才能完成。PC 机通过两片8259A 的级联对各个硬件的中断提供支持。中断技术下的数据传送 进程需要外设数据时,通过CPU 向指定设备发出“start”指令 该进程放弃处理机,进入阻塞态,等待外设完成数据输入。 外部设备便自行工作。 在以后的某个时间里,进程调度程序选中这个进程得到输入数据,由阻塞态进入就绪态的进程。 13.3 I/O 控制方式 13.3.3 中断技术及Linux 的中断管理 13.3 I/O 控制方式 13.3.3 中断技术及Linux 的中断管理 Linux 对中断的管理 Linux 内核为了将来自硬件设备的中断传递到相应的设备启动程序,在启动程序初始化时将其对应的中断程序进行登记。 13.3 I/O 控制方式 13.3.3 中断技术及Linux 的中断管理 Linux 对中断的处理 Linux 中断处理子程序的一个基本任务是将中断正确联系(rount)到中断处理代码的正确位置。 当发生中断的时候,Linux 必须首先通过读取系统的可编程中断控制器的状态寄存器确定它的来源。然后把这个来源转换成irq_action 数组中的偏移。 当Linux 内核调用设备驱动程序的中断处理服务子程序的时候,它必须有效地判断为什么被中断,并进行响应。 13.3 I/O 控制方式 13.3.4 直接存储器访问DMA 中断方式读数据的过程为:data – 控制器缓冲区 - 中断 - CPU 从缓冲区取数-内存。 13.3 I/O 控制方式 13.3.5 通道方式 通道:是一个独立于CPU 的专管输入/输出的处理机,它控制设备与内存直接进行数据交换。 13.4 缓冲技术 14.3.3 共享内存 目的: 解决高速的处理机CPU 与低速I/O 设备之间速度的不匹配问题。减少中断次数。 分类:缓冲技术可分为单缓冲、多缓冲及缓冲池。 单缓冲是在设备输及处理机之间设置一个缓冲器,供其交换数据。它是临界资源。 多缓冲是把多个缓冲区连接起来组成两部分,一部分用于输入,一部分用于输出。 缓冲池则是把多个缓冲区连接起来统一管理,即可用于输入又可用于输出的缓冲结构。 13.5
文档评论(0)