操作系统第八章输入输出管理_第1页
操作系统第八章输入输出管理_第2页
操作系统第八章输入输出管理_第3页
操作系统第八章输入输出管理_第4页
操作系统第八章输入输出管理_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 输入/输出管理 I/O管理是OS中最庞杂、琐碎的部分。系统配置的外设种类繁多,功能各异,特性和操作方法完全不同,如: 速度 传送单位 顺序访问或随机访问 出错条件等一I/O设备的分类1. 按操作特性分类 存储设备:存储信息的设备 I/O设备:向CPU输入信息和输出经加工处理的信息一I/O设备的分类2. 按信息交换单位分类(如UNIX系统采用) 字符设备:信息传送的单位是字节 块设备:信息传送的单位是块,如512B整数倍/块一I/O设备的分类3. 按共享属性分类 独占设备:在一段时间内只允许一个进程访问的设备。如打印机 共享设备:在一段时间内只允许多个进程访问的设备。如磁盘 虚拟设备:通

2、过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户使用,通常将经过虚拟技术处理后的设备称为虚拟设备。如虚拟打印机二、二、I/O设备管理的功能设备管理的功能目标:方便用户的使用,提高设备利用率1、状态跟踪 :由设备控制块(DCB)动态记录设备状态的变化及有关信息。2、设备存取与分配 按照设备类型和相应的分配算法,决定将I/O设备分配给哪一个要求该设备的进程。静态分配:作业进入系统时就进行分配,退出系统时就收回全部资源。动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。3、设备控制 将用户的I/O请求转换为设备能识别的I/O指令,并实施设备驱动和中断处理工作。主要由

3、设备驱动程序完成。4、实现其它功能 缓冲区的管理 实现设备独立性8.1.3设备独立性 是指用户在编制程序时所使用的设备与实际使用的设备无关,也就是用户程序中仅使用逻辑设备名。例如:UNIX系统中,每一类物理设备都有一个设备文件与之对应,在/dev目录下。当使用某一设备时,只需使用与之对应的设备文件名即可。fd1=open(“/dev/lp”,O_WRONLY);fd1:返回的文件描述符/dev/lp:打印机对应的设备文件名O_WRONLY:只写方式number=write(fd1,buf,count); /向打印机打印count个字符number:返回打印的实际字节数buf:字符串指针coun

4、t:传送的字节数设备独立性的优点:1. 屏蔽了设备的物理特性,方便用户使用2. 改善了资源的利用率3. 提高了系统的可扩展性和可适应性。8.1.4设备控制块 是记录设备的硬件特性、链接和使用情况等信息的数据结构,当设备装入系统时,DCB被创建,基本内容有:1. 设备名2. 设备属性:描述设备现行状态的一组属性,如传输速度;工作方式:如全双工或半双工校验方式:如奇偶校验、CRC校验等延迟时间等。8.1.4设备控制块3. 指向命令转换表的指针 每个I/O请求都要转换成调用一个能执行I/O操作的设备例程。P220 设备开关表 相当于一个二维矩阵,每一行含有同一主设备号的设备驱动程序入口地址;每一列是

5、不同类设备的同一驱动程序的入口地址。主设备号:每类设备给一个编号次设备号:同一类设备的若干设备进行编号主设备号主设备号次设备号次设备号8.1.4设备控制块4. 在I/O总线上的设备地址 每个设备都有地址,可以采用统一编址,也可以采用单独编址5. 设备状态:如设备控制器或通道,忙或空闲6. 当前用户进程指针:当前正在使用该设备的进程7. I/O请求队列指针:指向因请求设备而未得到满足的进程队列8.2 缓冲技术8.2.1缓冲概述 缓冲区:在内存中划出一块存储区,专门用来临时存放I/O数据。在OS中引入缓冲的主要原因 缓和CPU和I/O设备间速度不匹配的矛盾; 减少对CPU的中断频率,放宽对中断响应

6、时间的限制。 例如:假设每传送1bit便中断1次,如果增加一个8位的寄存器,当传输1B时才中断1次,否则需要中断8次。 提高CPU和I/O设备的并行性。缓冲技术分为:1. 单缓冲2. 双缓冲3. 环形缓冲4. 缓冲池8.2.2 双缓冲双缓冲在这种方案下,为输入或输出分配两个缓冲区。例:在输入时,输入设备首先填满buf1,进程P从buf1提取数据,进程P计算的同时,输入设备填充buf2.当buf1空、buf2满时,进程P又可以从buf2提取数据,然后计算的同时,输入设备又可以填充buf1。这两个缓冲区如此交替使用,使CPU与设备的并行操作进一步提高。 它对于低频度活动的I/O系统是比较有效的。当

7、buf1、buf2均不满时,而进程还要提取数据时,该进程才等待。Buf1Buf2输入设备P8.2.3缓冲池(buffer pool) 从主存中分配一组缓冲区组成缓冲池。 为了提高缓冲区的利用率,广泛采用公共缓冲池,池中缓冲区可供多个进程共享。 使用缓冲池的主要原因是避免消费者多次访问相同的数据时会重复产生相同数据的问题。系统把各缓冲区按使用情况分成三个队列。(1)空缓冲队列(emq)(2)输入队列(inq):由装满输入数据的 缓冲区所链成的队列 (3)输出队列(outq):由装满输出数据的 缓冲区所链成的队列8.3设备分配8.31设备分配的原则一设备分配方式及安全性1. 静态分配是作业开始执行

8、之前,由系统一次分配该作业所要求的全部设备,直到该作业被撤销。独占设备一般采用静态分配,但设备的使用效率低,由于破坏“部分分配条件”,静态分配方式不会出现死锁。8.3设备分配8.31设备分配的原则一设备分配方式及安全性2.动态分配是进程在执行过程中需要设备时,通过系统调用命令向系统提出设备请求,系统按照分配策略实施分配,一旦I/O完成,就释放该设备。共享设备采用动态分配方法,有利于提高设备利用率。动态分配分两种情况:1. 当进程发出I/O请求后,便立即进入阻塞状态,直至I/O请求完成后才被唤醒。此时,一个进程只能提出一个I/O请求,因而它不可能同时去操作多个外部设备,由于破坏了“环路条件”,因

9、此不会死锁。2. 允许某些进程发出I/O请求后仍可继续运行,且在需要时又可发出多个请求,仅当进程所请求的设备为另一个进程占用时,才进入阻塞状态。在一个进程同时操作多个设备的情况下是有可能出现死锁的。二设备分配算法二设备分配算法1. 先请求先服务 当需要设备服务时,均要形成I/O请求块(iorb)。 iorb按请求的先后次序排成一个等待该设备的队列,当设备空闲时,它将处理队列中的第一个iorb。2.优先级最高者优先 设备等待队列中的iorb按进程的优先级进行排序,因为进程的优先级高,它的I/O请求也赋予高的优先级。设备控制块设备控制块:I/O请求队列指针iorb1iorb2iorbn8.3.4虚

10、拟设备 问题的提出:独占设备往往采用静态分配,设备利用率底下,且在该设备空闲时,申请该设备的其它作业被拒绝分配。 为了克服独占设备的缺点,提出了SPOOL技术(Simultaneous Peripheral Operation On_Line)即外设联机同时操作技术,又称假脱机技术。SPOOL系统的组成:系统的组成:输入设备打印机输入井输出井虚拟输入机1Pa虚拟输入机2虚拟打印机1虚拟打印机2PbPcPd 在作业执行之前 ,OS已将作业信息通过独占设备预先输入到磁盘上,称为“预输入”。此后,作业执行使用数据时,不必再启动独占设备读入,而只要从磁盘上输入数据就可以了。SPOOL系统的组成:系统的

11、组成:输入设备打印机输入井输出井虚拟输入机1Pa虚拟输入机2虚拟打印机1虚拟打印机2PbPcPd 在作业执行时,也不必直接启动独占设备输出数据,而只要将作业输出数据写入磁盘中存放,在作业执行完毕后,由OS来组织信息输出,称为“缓输出”。SPOOL技术的特点:1. 提高了I/O速度,缓和了CPU与低速I/O设备的矛盾。2. 将独占设备改造为共享设备。3. 实现了虚拟设备功能。多道程序系统中,供用户使用的内存空间有100KB,磁带机2台,打印机1台。系统采用可变式分区分配方式管理内存,对磁带机和打印机采用静态分配方式,并假设输入/输出操作的时间忽略不计。现有一作业序列如下:假设作业调度采用FCFS

12、算法,优先分配内存的低地址区域且不准移动已在内存中的作业,在内存中的作业平分CPU时间,试问: 作业调度的次序是什么? 写出所有作业的周转时间。(10分)作业号作业号到达时间到达时间 要求计算时间要求计算时间 要求内存量要求内存量 申请磁带机数申请磁带机数 申请打印机数申请打印机数18:0025分15K1台1台28:2010分30K-1台38:2020分60K1台-48:3020分20K1台-58:3515分10K1台1台解:要求写出分析过程:作业调度次序:1,3,4,2,5; (5分)作业1的周转时间是8:308:00=30分作业2的周转时间是9:158:20=55分作业3的周转时间是9:0

13、08:20=40分作业4的周转时间是9:108:30=40分作业5的周转时间是9:308:35=55分 (5分) 8.4输入/输出控制8.4.1 I/O硬件8.4.2 I/O控制方式1.循环测试I/O方式2.中断方式3.DMA方式4.通道方式8.4.3I/O子系统 控制设备I/O工作的核心模块称为设备驱动程序。设备驱动程序与设备类型是一一对应的。对于某一类设备,OS具有相同的设备驱动程序。设备驱动程序的实现方式:一设备驱动程序有一个接口程序,它复杂解释进程的I/O系统调用命令,将其转换成I/O控制模块认识的命令形式,然后唤醒设备驱动程序,启动物理的I/O操作。二UNIX采用的方法。设备作为特殊

14、文件,根据设备文件名找到相应的设备驱动程序。P220设备开关表例:设备驱动程序包括: I/O接口程序和 I/O处理进程:Doio(ldev,mode,amount,addr);/*等待I/O完成*/:标识设备;检查参数;构成iorb;将iorb加入该设备的请求队列;唤醒因等待I/O请求而睡眠的I/O处理进程取iorb;如无iorb则等待;启动I/O操作;/*等I/O完成*/执行出错检查;:唤醒等待I/O的用户进程;I/O设备:中断服务;唤醒I/O处理进程;:OS界面用户进程I/O接口程序I/O处理进程启动设备中断信号控制关系同步关系1、I/O接口程序它的功能是把逻辑设备映射为相应的物理设备,检

15、查提供给它的参数的正确性,启动所需要的服务。例:设备驱动程序包括: I/O接口程序和 I/O处理进程:Doio(ldev,mode,amount,addr);/*等待I/O完成*/:标识设备;检查参数;构成iorb;将iorb加入该设备的请求队列;唤醒因等待I/O请求而睡眠的I/O处理进程取iorb;如无iorb则等待;启动I/O操作;/*等I/O完成*/执行出错检查;:唤醒等待I/O的用户进程;I/O设备:中断服务;唤醒I/O处理进程;:OS界面用户进程I/O接口程序I/O处理进程启动设备中断信号控制关系同步关系2、I/O处理进程 从I/O请求队列中取出iorb,启动相应的I/O操作,然后进

16、入等待状态,直至I/O完成。 当设备的I/O完成后,发出中断信号,启动中断服务程序,进行数据的传送,然后唤醒I/O处理进程,由I/O处理进程把数据送到目的地,然后,删除此iorb,唤醒请求I/O的用户进程。例:设备驱动程序包括: I/O接口程序和 I/O处理进程:Doio(ldev,mode,amount,addr);/*等待I/O完成*/:标识设备;检查参数;构成iorb;将iorb加入该设备的请求队列;唤醒因等待I/O请求而睡眠的I/O处理进程取iorb;如无iorb则等待;启动I/O操作;/*等I/O完成*/执行出错检查;:唤醒等待I/O的用户进程;I/O设备:中断服务;唤醒I/O处理进

17、程;:OS界面用户进程I/O接口程序I/O处理进程启动设备中断信号控制关系同步关系3、中断服务程序 可以由硬件厂商提供 由程序设计人员完成。磁盘调度算法:1、先来先服务(FCFS)按进程访问磁道的先后次序进行调度。缺点:未对寻道进行优化。2、最短寻道时间优先(SSTF)选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。缺点:某些进程的请求总也得不到服务。3、扫描算法(SCAN)在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。又称电梯调度算法。4、循环扫描算法(CSCAN)它规定磁头单向移动。例如:在某个运行时刻,有如下表示的磁盘访问的请求队列,假设磁头当前在第15个柱面,磁头移动方向为从小到大:请求序列柱面号11522039416

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论