资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第八章 输入,/,输出管理,I/O,管理是,OS,中最庞杂、琐碎的部分。系统配置的外设种类繁多,功能各异,特性和操作方法完全不同,如:,速度,传送单位,顺序访问或随机访问,出错条件等,I/O,设备的分类,按,操作特性分类,存储设备:存储信息的设备,I/O,设备:向,CPU,输入信息和输出经加工处理的信息,I/O,设备的分类,2.,按,信息交换单位分类(如,UNIX,系统采用),字符设备:信息传送的单位是字节,块设备:信息传送的单位是块,如,512B,整数倍,/,块,I/O,设备的分类,3.,按,共享属性分类,独占设备:在一段时间内只允许一个进程访问的设备。如打印机,共享设备:在一段时间内只允许多个进程访问的设备。如磁盘,虚拟设备:通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户使用,通常将经过虚拟技术处理后的设备称为虚拟设备。如虚拟打印机,二、,I/O,设备管理的功能,目标:方便用户的使用,提高设备利用率,1,、,状,态跟踪,:,由,设备控制块(,DCB,)动态记录设备状态的变化及有关信息。,2,、,设,备存取与分配,按,照设备类型和相应的分配算法,决定将,I/O,设备分配给哪一个要求该设备的进程。,静态分配:作业进入系统时就进行分配,退出系统时就收回全部资源。,动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。,3,、,设,备控制,将用户的,I/O,请求转换为设备能识别的,I/O,指令,并实施设备驱动和中断处理工作。主要由设备驱动程序完成。,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,:字符串指针,count,:传送的字节数,设备独立性的优点:,屏,蔽了设备的物理特性,方便用户使用,改善了资源的利用率,提高了系统的可扩展性和可适应性。,8.1.4,设备控制块,是记录,设备的硬件特性、链接和使用情况等信息的数据结构,当设备装入系统时,,DCB,被创建,基本内容有:,设备名,设备属性:描述设备现行状态的一组属性,如传输速度;工作方式:如全双工或半双工校验方式:如奇偶校验、,CRC,校验等延迟时间等。,8.1.4,设备控制块,3.,指,向命令转换表的指针,每,个,I/O,请求都要转换成调用一个能执行,I/O,操作的设备例程,。,P220,设备开关表,相,当于一个二维矩阵,每一行含有同一主设备号的设备驱动程序入口地址;每一列是不同类设备的同一驱动程序的入口地址。,主设备号:每类设备给一个编号,次设备号:同一类设备的若干设备进行编号,主设备号,次设备号,8.1.4,设备控制块,4.,在,I/O,总线上的设备地址 每个设备都有地址,可以采用统一编址,也可以采用单独编址,5.,设,备状态:如设备控制器或通道,忙或空闲,6.,当,前用户进程指针:当前正在使用该设备的进程,7.I/O,请求队列指针:指向因请求设备而未得到满足的进程队列,8.2,缓冲技术,8.2.1,缓冲概述,缓,冲区:在内存中划出一块存储区,专门用来临时存放,I/O,数据。,在,OS,中引入缓冲的主要原因,缓和,CPU,和,I/O,设备间速度不匹配的矛盾;,减少对,CPU,的中断频率,放宽对中断响应时间的限制。,例,如:假设每传送,1bit,便中断,1,次,如果增加一个,8,位的寄存器,当传输,1B,时才中断,1,次,否则需要中断,8,次。,提,高,CPU,和,I/O,设备的并行性。,缓冲技术分为:,单,缓冲,双缓冲,环形缓冲,缓冲池,8.2.2,双缓冲,在这种方案下,为输入或输出分配两个缓冲区。,例:在输入时,输入设备首先填满,buf1,,进程,P,从,buf1,提取数据,进程,P,计算的同时,输入设备填充,buf2.,当,buf1,空、,buf2,满时,进程,P,又可以从,buf2,提取数据,然后计算的同时,输入设备又可以填充,buf1,。这两个缓冲区如此交替使用,使,CPU,与设备的并行操作进一步提高,。,它对于低频度活动的,I/O,系统是比较有效的。当,buf1,、,buf2,均不满时,而进程还要提取数据时,该进程才等待。,Buf1,Buf2,输入设备,P,8.2.3,缓冲池(,buffer pool,),从,主存中分配一组缓冲区组成缓冲池。,为了,提高缓冲区的利用率,广泛采用公共缓冲池,池中缓冲区可供多个进程共享。,使用缓冲池的主要原因是避免消费者多次访问相同的数据时会重复产生相同数据的问题。,系统把各缓冲区按使用情况分成三个队列。,(,1,)空缓冲队列(,emq,),(,2,)输入队列(,inq,):由装满输入数据,的,缓冲,区所链成的队列,(,3,),输,出队列(,outq,):由装满输出数据,的,缓,冲区所链成的队列,8.3,设备分配,8.3,1,设备分配的原则,一设备分配方式及安全性,1,.,静,态分配是作业开始执行之前,由系统一次分配该作业所要求的全部设备,直到该作业被撤销。独占设备一般采用静态分配,但设备的使用效率低,由于破坏“部分分配条件”,静态分配方式不会出现死锁。,8.3,设备分配,8.3,1,设备分配的原则,一设备分配方式及安全性,2.,动态分配是进程在执行过程中需要设备时,通过系统调用命令向系统提出设备请求,系统按照分配策略实施分配,一旦,I/O,完成,就释放该设备。共享设备采用动态分配方法,有利于提高设备利用率。,动态分配分两种情况:,当,进程发出,I/O,请求后,便立即进入阻塞状态,直至,I/O,请求完成后才被唤醒。此时,一个进程只能提出一个,I/O,请求,因而它不可能同时去操作多个外部设备,由于破坏了“环路条件”,因此不会死锁。,允许某些进程发出,I/O,请求后仍可继续运行,且在需要时又可发出多个请求,仅当进程所请求的设备为另一个进程占用时,才进入阻塞状态。在一个进程同时操作多个设备的情况下是有可,能,出现,死,锁的。,二设备分配算法,1.,先请求先服务,当,需要设备服务时,均要形成,I/O,请求块(,iorb,)。,iorb,按请求的先后次序排成一个等待该设备的队列,当设备空闲时,它将处理,队列中的第一个,iorb,。,2.,优先级最高者优先,设,备等待队列中的,iorb,按进程的优先级进行排序,因为进程的优先级高,它的,I/O,请求也赋予高的优先级。,设备控制块,:,:,:,:,I/O,请求队列指针,iorb1,iorb2,iorbn,8.3.4,虚拟设备,问,题的提出:独占设备往往采用静态分配,设备利用率底下,且在该设备空闲时,申请该设备的其它作业被拒绝分配。,为了克服独占设备的缺点,提出了,SPOOL,技术(,Simultaneous Peripheral Operation On_Line,)即外设联机同时操作技术,又称假脱机技术。,SPOOL,系统的组成:,输入设备,打印机,输入井,输出井,虚拟输入机,1,Pa,虚拟输入机,2,虚拟打印机,1,虚拟打印机,2,Pb,Pc,Pd,在,作业执行之前,,OS,已将作业信息通过独占设备预先输入到磁盘上,称为“预输入”。此后,作业执行使用数据时,不必再启动独占设备读入,而只要从磁盘上输入数据就可以了。,SPOOL,系统的组成:,输入设备,打印机,输入井,输出井,虚拟输入机,1,Pa,虚拟输入机,2,虚拟打印机,1,虚拟打印机,2,Pb,Pc,Pd,在,作业执行时,也不必直接启动独占设备输出数据,而只要将作业输出数据写入磁盘中存放,在作业执行完毕后,由,OS,来组织信息输出,称为“缓输出”。,SPOOL,技术的特点:,提,高了,I/O,速度,缓和了,CPU,与低速,I/O,设备的矛盾。,将独占设备改造为共享设备。,实现了虚拟设备功能。,多道程序系统中,供用户使用的内存空间有,100KB,,磁带机,2,台,打印机,1,台。,系统采用可变式分区分配方式管理内存,对磁带机和打印机采用静态分配方式,并假设输入,/,输出操作的时间忽略不计。现有一作业序列如下:,假设作业调度采用,FCFS,算法,优先分配内存的低地址区域且不准移动已在内存中的作业,在内存中的作业平分,CPU,时间,试问:,作业调度的次序是什么?,写出所有作业的周转时间。(,10,分),作业号,到达时间,要求计算时间,要求内存量,申请磁带机数,申请打印机数,1,8:00,25,分,15K,1,台,1,台,2,8:20,10,分,30K,-,1,台,3,8:20,20,分,60K,1,台,-,4,8:30,20,分,20K,1,台,-,5,8:35,15,分,10K,1,台,1,台,解:要求写出分析过程:,作业调度次序:,1,,,3,,,4,,,2,,,5,;,(,5,分),作业,1,的周转时间是,8,:,308,:,00=30,分,作业,2,的周转时间是,9,:,158,:,20=55,分,作业,3,的周转时间是,9,:,008,:,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,采用的方法。设备作为特殊文件,根据设备文件名找到相应的设备驱动程序。,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,接口程序,它的功能是把逻辑设备映射为相应的物理设备,检查提供给它的参数的正确性,启动所需要的服务。,例:设备驱动程序包括,:,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,界面,
展开阅读全文