




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第八章I O管理 2 第八章输入输出管理 8 1I O管理的概念8 1 1引言计算机外部设备在计算机系统中除CPU和内存储外所有的设备和装置称为计算机外部设备 外围设备 I O设备 3 8 1 1引言 存储设备 用来存放各种信息的设备称为存储设备 例如 软盘 硬盘 光盘和磁带等 I O设备 用来向计算机输入和输出信息的设备 如键盘 鼠标 显示器 打印机等 在现代计算机系统中有些设备既可以做存储设备 也可以做I O设备 例如 软盘 硬盘等 I O管理就是设备管理 它是操作系统的一个重要的组成部分 负责管理系统中所有的外部设备 4 8 1 1引言 计算机外部设备种类繁多 特性各异 主要表现在以下几个方面 1 速度不同的外部设备的传输速度的差别相当大 如键盘的传输速度不过几十 上百个字符 而磁盘的传输速度则是60万字节 每秒 2 传输单位有的设备的传输单位是字节 如键盘 打印机 显示器 有的传输单位是字符块 如软盘 硬盘 磁带等 有的传输单位是位 如个人计算机中的SerialPort s COM1 COM2 5 8 1 1引言 3 容许的操作 操作特性 设备完成的操作种类各不相同 如打印机只允许写操作 键盘只能做读操作 而磁盘既可读 也可写 4 出错条件不同的设备 其出错条件也不相同 即数据传输失败的原因各种各样 如打印机有缺纸错 磁盘I O有奇偶校验错等 6 8 1 1引言 设计目标 1 字符代码的独立性 现在使用的ASCII码 美国信息交换标准码 2 设备独立性 3 效率 4 设备处理的一致性 7 8 1 2I O管理功能 1 状态跟踪设备控制块是存放设备管理和控制信息的数据结构 系统要掌握设备的状态 2 设备存取实现对设备的存取操作 3 设备分配在多用户的环境下 负责设备的分配和回收 4 设备控制设备控制包括设备的驱动 完成和故障中断处理 8 8 1 3设备独立性 一 设备独立性的概念设备独立性是指用户在编程序时所使用的设备与实际设备无关 两类设备独立性 1 一个程序应独立于分配给它的某种类型的具体设备 即在用户程序中只指明I O使用的设备类型即可 如在系统中配备了两台打印机 用户要打印时只要告诉系统要将信息送到打印机即可 2 程序要尽可能地与它使用的设备类型无关 即在用户程序中只要指出要输入或输出信息 至于信息I O使用的设备不需用户指明 9 8 1 3设备独立性 二 设备独立性的实现在UNIX系统中 把设备与文件统一处理 这比前两种设备独立性又前进了一步 对于用户来说 就没有设备的概念 10 8 1 3设备独立性 三 设备独立性的优点1 方便用户编程 2 使用程序运行不受具体的机器环境的限制 如UNIX系统环境下 系统提供标准输入和输出 在用户程序中的输入输出都使用这两个标准的I O 实际运行时 根据具体情况而定 如果配备打印机 则将输出信息送到打印机打印 如果没有配备打印机 就把输出重定向到某个指定文件 把要打印的信息送到该文件中 3 便于程序移植 11 8 1 4设备控制块 一 设备控制块设备控制块是设备管理的数据结构 用来存放设备的管理和控制信息 每类设备有一个设备控制块 12 8 1 4设备控制块 二 设备转换表 设备开关表 设备开关表存放设备驱动和控制程序入口地址 13 8 2缓冲技术8 2 1概述 CPU与各种外部设备的速度上的差异很大 设备与设备之间的速度的差异也很大 系统有时会产生大量的数据需要I O 有时又会很长时间没有I O 造成I O负荷的不均匀要解决这两个方面的问题就要引入缓冲的概念 缓冲是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段 缓冲技术是用来匹配CPU与设备之间速度差异和负荷的不均匀 常用的缓冲技术有三种 双缓冲 环形缓冲 缓冲池 14 8 2 2双缓冲 系统设置两个缓冲区 BUF1和BUF2 各进程使用这两个缓冲区 这种缓冲技术是最简单的 用于低频度I O活动的系统 工作过程 首先输入将数据送入BUF1 然后 申请BUF2 在向BUF2输入数据的同时 输出进程可从BUF1中取数据 同理 向BUF1输入与从BUF2中取数据可以并行 教材p203图8 2是双缓冲技术应用的策略图 15 8 2 3环形缓冲 在系统中设置若干缓冲区 并把这些缓冲区链接起来 这样若干个缓冲区就形成了一个环 故称环形缓冲区 16 8 2 3环形缓冲 环形缓冲技术使用设置一个输入指针in 一个输出指针out 开始指针strat 系统初始时 strat in out 输入时 要判断in是否与out相等 若相等 则要等待 否则 将信息送入in指向的缓冲区 填满后 将缓冲区中的指向下一个缓冲区的指针next置in 如此类推 输出时 首先判断out in 若相等 则等待 意味着系统中没有数据可取 否则 取出缓冲区中的信息 将缓冲区中的next置out 17 8 2 4缓冲池 系统设置多个缓冲区 形成一个缓冲池 这个池中的缓冲区为系统中所有的进程共享使用 例如 UNIX系统中 在块设备管理中设置了一个15个缓冲区组成的缓冲池 P204图8 3 处理机 输出文件队列 输入文件队列 装入队列 出空队列 输出设备 输入设备 后备队列 18 8 3设备分配8 3 1分配原则 一 静态分配和动态分配1 静态分配当一个作业 或进程 运行时 根据作业要求的设备 系统如果能满足 则将其要求的设备全部分配给它 然后开始运行 运行完成释放其占用的所有设备 这种分配方式的优点是系统绝不会出现死锁 缺点是设备利用率太低 2 动态分配这种分配方法是在作业 或进程 运行的过程中 需要使用设备时 就向系统申请 系统根据某种分配原则进行分配 这种方法的优点是设备的利用率高 缺点是系统有出现死锁的可能 19 8 3设备分配8 3 1分配原则 二 设备分配算法1 先来先服务算法2 优先级高者优先三 设备分配的安全性设备分配应避免死锁 对于独占设备 不论采用静态分配还是采用动态分配都不会出现死锁 对于共享设备 采用动态分配有可能造成死锁 独享分配 共享分配 虚拟分配 20 8 4I O控制8 4 1I O控制方式 一 循环测试I O方式早期的设备控制方式采用 二 I O中断方式为了提高CPU和设备的利用率 就应使CPU与设备并行工作 采用I O中断方式 采用这种方式要求控制寄存器中有一个中断位 21 8 4I O控制8 4 1I O控制方式 在I O中断方式下 数据的输入 或输出 步骤如下 设备驱动程序工作 1 要求输入数据的进程把一个启动命令和允许中断位 1 写入相应设备的控制状态寄存器中 从而启动了该设备 2 该进程因等待输入的完成进入睡眠状态 3 当输入完成后 输入设备向CPU发出完成中断请求信号 22 8 4I O控制8 4 1I O控制方式 4 处理机响应中断 处理该中断 并唤醒等待输入完成的进程 5 在以后的某个时期 该程序被调度到后 继续运行 这种方式的优点是大大地提高了CPU的利用效率 缺点是每次I O都要CPU的干预 如果系统中配备了多台 套 设备时 CPU的利用率也会降低 解决的方法是采用通道技术 23 8 4I O控制8 4 1I O控制方式 通道 是计算机系统中专门用于I O的处理机 在大 中 小型计算机中一般称为通道 结构如图所示 在个人计算机系统中采用微通道 就是教材中所讲的DMA 24 8 4 2I O控制功能 控制设备I O工作的核心模块通常称为设备驱动程序 它包括三个方面的功能 1 解释用户I O命令2 设备驱动3 中断处理 25 8 4 2I O控制功能 不论是哪种设备驱动程序 它的功能是相同的 接受用户的I O请求命令 并把用户的请求转换成I O请求块 挂到相应设备的I O请求队列 每类设备有一个I O请求队列 在系统初始化时 将系统中所有设备的I O请求队列置为空 在系统初启时 系统为每类设备创建一个进程 执行程序就是该设备的设备驱动程序 由于系统初启时 相应的I O请求队列为空 则在该队列上睡眠 26 8 4 2I O控制功能 一旦有I O请求块挂入 唤醒该设备驱动进程 它被调度到时 从队列中取出一个I O请求块 并按该块的内容执行一次I O操作 发出I O完成 或出错 中断信号 然后 检查请求队 若为空 则进入睡眠状态 否则 取下一个请求块 27 8 5unix系统设备管理 两种设备类型1 块设备以字符块 一般情况下是512字节 为基本I O单位的设备称为块设备 如磁盘 磁带 光盘等 2 字符设备以字符为基本I O单位的设备称为字符设备 28 8 5UNIX系统的设备管理 8 5 1UNIX系统设备管理的特点1 外部设备看作文件 由文件系统统一处理 2 系统设备配置改变灵活 方便 3 有效地使用了块设备缓冲技术 大大地提高了块设备存取操作的速度 29 8 5 2UNIX设备驱动程序接口 30 8 5 3设备管理数据结构 1 主设备号和次设备号在系统内部使用的设备名称为设备号 它由两个部分组成 主设备号和次设备号 主设备号 设备的类型编号 次设备号 同类设备的设备台号 31 8 5 3设备管理数据结构 2 设备开关表 块设备 structbdevsw int d open int d close int d strategy int d tab bdevsw 字符设备开关表structcdevsw int d open int d close int d read int d write int d sgtty cdevsw 32 8 5 3设备管理数据结构 3 块设备表structdevtal chard active 执行一个I O请求的标志 chard errcnt 出错计数器 structbuf b forw 设备缓冲队列前指针 structbuf b back 设备缓冲队列后指针 structbuf b actf I O请求队列头指针 structbuf b actl I O请求队列尾指针 33 8 5 3设备管理数据结构4 设备管理数据结构的关系 34 8 5 4缓冲区管理一 缓冲区结构 在UNIX系统中采用缓冲池的缓冲技术 系统中设置一个有15个缓冲区的缓冲池 每个缓冲区占514个字节 其中512个字节用来存放数据 2个字节用作校验用 为了管理缓冲区 系统还设置了一个数据结构 称为缓冲区首部 其结构如下 35 8 5 4缓冲区管理一 缓冲区结构 structbuf intb flags 标志 structbuf b forw 设备缓冲队列前指针 structbuf b back 设备缓冲队列后指针 structbuf av forw 空闲缓冲队列前指针 structbuf ac back 空闲缓冲队列后指针 intb dev 设备号 intb wcount 请求传送的字节数 char b addr 缓冲区的首地址 char b blkno 设备的物理块号 charb error 出错信息 char b resid 出错时尚末传送的剩余字数 buf NBUF 36 8 5 4缓冲区管理一 缓冲区结构 b flags包括 B WRITE写 将信息写到磁盘上去 B READ读 从磁盘上读取信息到缓冲区中 B DONEI O操作结束B ERROR因I O出错而中止B BUSY相应的缓冲区正在使用中B WANTED有进程正在等待使用该buf 清B BUSY时要唤醒这种进程B ASYNC异步I O标志B DELWRI延迟写 在相应缓存移作它用时 要将缓存中的内容写到相应的磁盘块中 37 8 5 4缓冲区管理二 空闲缓冲队列和设备缓冲队列 1 空闲缓冲区队列当系统中某个进程释放缓冲区时 将释放的缓冲区的buf挂到该队列的队尾 分配缓冲区是从该队列队首取出一个buf 分配给申请者 38 8 5 4缓冲区管理二 空闲缓冲队列和设备缓冲队列 2 设备缓冲区队列当某个设备使用缓冲区时 将该缓冲区的buf挂入到相应的设备缓冲队列 并且一直保留在该队列中 直至该缓冲区分配给其它设备为止 这种处理的目的是让缓冲区中的信息尽可能长时间地保留在缓冲区中 以便以后重用 39 8 5 4缓冲区管理二 空闲缓冲队列和设备缓冲队列 40 三 缓冲区管理算法 41 三 缓冲区管理算法 1 读操作的过程以读的磁盘块号和设备号找到相应的设备缓冲队列 若已读过 缓冲区中仍保存已读的磁盘块 则把缓冲区的内容复制到用户指定的内存中 假读 若相应设备缓冲队列中无 说明没有读过 则申请一个空闲缓冲区 作读磁盘块的操作 然后 把读入缓冲区中的内存复制到用户指定的内存区中 真读 释放缓冲区 把释放的缓冲区挂到空闲缓冲区队列的尾部 42 三 缓冲区管理算法 2 写操作以用户申请的写的磁盘块号和设备号查相应设备的缓冲队列 找到相应的块 原来写过 则将该缓冲区从空闲缓冲队列中摘出 将指定内存的内容写到缓冲区中 若写满缓冲区 则将该缓冲区的内容写到磁盘中去 然后 释放缓冲区 若没有写满一个缓冲区 则将缓冲区置为延迟写标志 并释放该缓冲区 则没有找到 则申请一个空闲的缓冲区 操作同前 43 四 缓冲队列的初始状态 缓冲区管理的初始化 1 空闲缓冲区队列2 设备缓冲队列 每类设备都有一个设备缓冲区队列 按UNIX系统的规定 每个空闲缓冲区同时要存在于两个队列中 空闲缓冲队列和某个设备缓冲队列 也有的系统在实现时 不设设备缓冲队列 而是设置一个全系统的设备缓冲的散列 为了保证上述规定 在系统初启时 系统设置了一个特别设备 NODEV 44 四 缓冲队列的初始状态 45 五 缓冲区分配与释放 缓冲区的分配总是先查相应的设备缓冲队列 若存在于设备缓冲队列中 说明该缓冲区中的内容已经有用户使用过 可重复使用 减少物理读 写磁盘的物理操作 加快I O的速度 释放一个缓冲区时 把释放的缓冲区首部插入空闲缓冲队列的尾部 仍然留在相应的设备缓冲队列中 缓冲区的分配和释放有五种情况 46 五 缓冲区分配与释放 1 用户申请读 或写 的块在某个设备缓冲队列中 散列中 且该缓冲区空闲 把buf中的b flags置为 忙 并将该缓冲首部从空闲缓冲队列中摘出 使用缓冲区中的信息 用户要求读 则把缓冲区中的内容复制到用户指定的内存中 释放该缓冲区 即将其buf挂到空闲缓冲队列尾 用户要求写 则把用户指定的内容写到缓冲区中 缓冲区满 则把其内容写到磁盘上 然后释放 没有写满 则把b flags置延迟写 释放该磁盘块 47 五 缓冲区分配与释放 2 设备缓冲队列中没有找到申请的块 因此 要为申请者分配一个空闲的缓冲区 从空闲缓冲队列的队首取出一个空闲的缓冲区 并且 b flags中 延迟写 的标志没有置上 把该缓冲区的buf从原设备缓冲队列中移人申请的设备缓冲队列 使用该缓冲区 读操作 把申请的磁盘块读入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 礼堂使用协议书
- 实习自愿放弃协议书
- 家具安装保修协议书
- 物业被盗协议书
- 家庭车位买卖协议书
- 球赛赞助协议书
- 小三怀孕赔偿协议书
- 理疗服务协议书
- 宠物机构领养协议书
- 法院派遣协议书
- 常州大学课程设计报告
- 劳务外包服务项目投标方案(技术方案)
- 酒店明住宿清单(水单)
- 垃圾渗滤液处理站运维及渗滤液处理投标方案(技术标)
- GCP相关人员职责课件
- 中职中国旅游地理教案:长江中下游旅游区(七)安徽省
- 融资租赁实际利率计算表
- 【解析】陕西省西安市长安区2023年小升初数学试卷
- 全国青少年机器人技术等级考试一二级讲稿124张课件
- 2023年科普知识生活常识知识-粮食知识考试历年高频考点试题含答案
- 人教版九年级数学下册《特殊角的三角函数值及用计算器求角的三角函数值》评课稿
评论
0/150
提交评论