- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统教程北京大学出版第7章设备管理
系统设备表SDT 整个系统一张表,记录系统中所有I/O设备的信息,表目包括: 设备类型、设备标识符、进程标识符、DCT表指针等 设备控制表DCT 主要内容:设备类型、设备标识符、设备状态、与此设备相连的COCT、重复执行的次数或时间、等待队列的队首和队尾指针、I/O程序地址 COCT、CHCT与DCT类似 根据用户请求的I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找SDT,找到该设备所连接的DCT;继续查找与该设备连接的COCT和CHCT,就找到了一条通路 由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,要有一套合理的分配原则 考虑的因素: I/O设备的固有属性 I/O设备的分配算法 设备分配的安全性 与设备的无关性 2.设备分配策略 独占设备的分配 要考虑充分发挥效率,避免由于不合理的分配策略造成死锁 静态分配:在进程运行前, 完成设备分配;运行结束时,收回设备 缺点:设备利用率低 动态分配: 在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回 优点:效率好 缺点:分配策略不好时, 产生死锁 共享设备分配 由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好 为了控制I/O传输,系统为每类设备编制设备驱动程序 任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作 2.设备驱动程序 (1) 预置设备的初始状态 (2) 根据请求传输的数据量,组织I/O缓冲队列,利用I/O缓冲对数据进行加工,包括数据格式处理和编码转换 (3) 构造I/O程序(在有通道系统中,是通道程序) (4) 启动设备进行I/O操作 (1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备 (2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配 (3)设备驱动程序设置设备寄存器、检查设备的执行状态 (4)中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层实现物理I/O的操作 1.设备组成 I/O设备一般由机械和电子两部分组成 把这两部分分开处理,以提供更加模块化,更加通用的设计 三、I/O硬件特点 (1)物理设备 机械部分是设备本身(物理装置) (2)设备控制器 电子部分叫做设备控制器或适配器。 在小型和微型机中,它常采用印刷电路卡插入计算机中(接口) 完成设备与主机间的连接和通讯 控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准 CPU 外 部 设 备 控 制 逻 辑 电 路 控制寄存器 状态寄存器 数据寄存器 一次I/O 传送过程: 准备?传送?后处理 例:一个打印机有两个I/O设备寄存器 状态寄存器 数据寄存器 设备完成技术 四、设备有关技术 1.Spooling(虚拟设备)技术 一个虚拟设备 一个资源转换技术 (用空间,如输入,输出等换取CPU时间) 解决问题: 在进程所需物理设备不存在或被占用时使用该设备 (1)预输入程序 预输入程序的任务是预先把作业的全部信息输入到磁盘的输入井中存放,以便在需要作业信息以及作业运行过程中需要数据时,都可以从输入井中直接得到,而无须与输入机交往,避免了等待使用输入机的情况发生。 (2)缓输出程序 缓输出程序总是定期查看“输出井”中是否有等待输出的作业信息。如果有,就启动输出设备(比如打印机)进行输出。因此,由于作业的输出信息都暂时存放在输出井中,输出设备有空就去输出,不会出现作业因为等待输出而阻塞。 (3)井管理程序 井管理程序分为“井管理读程序”和“井管理写程序”。当请求输入设备工作时,操作系统就调用井管理读程序,它把让输入设备工作的任务,转换成从输入井中读取所需要的信息;当作业请求打印输出时,操作系统就调用井管理写程序,它把让输出设备工作的任务,转换成为往输出井里输出。 假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了! 解决方案: 创建值班(精灵)进程(daemon)、SPOOLing目录 进程首先生成要打印的文件,放入SPOOLing目录 值班进程:唯一获准使用打印机特殊文件的进程 用以打印SPOOLing目录里的文件 通过禁止对特殊文件的直接使用、提高了使用效率 打印机的SPOOLing值班进程 (1)定义:通道是独立于CPU的专门负责数据输入/
文档评论(0)