1、 第六章第六章 设备设备管理管理 设备管理是操作系统中负责直接处理硬件设备的部分,它对硬件设备进行抽象,使用户程序通过操作系统完成对I/O设备的操作。6.1 概述6.2 I/O软件的组成6.3 I/O硬件特点6.4 有关技术6.5 网络设备6.6 设备处理6.7 典型外部设备 1.6.1 概述6.1.1 I/O管理的重要性1.I/O设备就像计算机系统的五官和四肢2.I/O性能经常成为系统性能的瓶颈(1)CPU性能不等于系统性能 响应时间也是一个重要因素(2)CPU性能越高,与I/O差距越大 弥补:更多的进程(3)进程切换多,系统开销大2.3.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来
2、自I/O4.理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键5.I/O技术很实用6.与其他功能联系密切,特别是文件系统3.6.1.2 设备的分类1.按使用特性分 存储型设备 输入型设备(外设主机)输出型设备(主机外设)输入输出型设备(交互型设备)2.按数据组织分 块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息4.3.按外部设备的从属关系分 系统设备 指操作系统生成时,登记在系统中的标准设备(如终端、打印机、磁盘机等)用户设备 指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。(如A/D
3、D/A转换器,CAD所用专用设备)5.4.按按资资源分配角度分源分配角度分 独占设备 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。(如打印机,磁带等)共享设备 在一段时间内可有多个进程以交叉的方式来共同使用的设备,其资源利用率高。(如硬盘)虚设设备 在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备。目的是将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率。(实例:SPOOLing技术,利用虚设备技术 用硬盘模拟输入输出设备)6.5.从程序使用角度分 逻辑设备 物理设备6.按数据传输率分 高速设备 低速设备 中速设备
4、7.6.1.3 设备管理的目标和任务1.按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换,最终完成用户的I/O请求完成功能:(1)设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路(2)建立统一的独立于设备的接口(3)完成设备驱动程序,实现真正的I/O操作(4)处理外部设备的中断处理(5)管理I/O缓冲区8.2.向用户提供使用外部设备的方便接口,屏蔽了硬件细节(设备的物理细节,错误处理,不同I/O的差异性)使用户摆脱繁琐的编程负担。方便性、友好界面、透明性3.利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的
5、并行工作能力,提高资源利用率 并行性 均衡性(使设备充分忙碌)4.保证在多道环境下,多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作5.保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的9.6.与设备无关性(设备独立性)用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换。用户能独立于具体物理设备而方便的使用设备,用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程。7.统一性:对不同的设备采取统一的操作方式,在用户程序
6、中使用的是逻辑设备。优点是:设备忙碌或设备故障时,用户不必修改程序改善了系统的可适应性和可扩展性10.6.1.4典型的外部设备一一.磁磁盘盘几乎所有计算机都使用磁盘来存储信息。从存储角度,与内存比较起来,磁盘有三个主要的优点:1.可用的存储容量非常大2.每位的价格非常低3.电源关掉后信息不会丢失11.实际的硬盘都组织成许多柱面,每一个柱面上的磁道数和垂直放置的磁头个数相同磁道又被分成许多扇区,每条磁道上扇区数目典型为8至32,每个扇区包含相同的字节数磁盘驱动程序有重要设备特性:控制器可以同时控制两个或多个驱动器进行寻道,这就是重叠寻道(overlapped seeks)当控制器和软件等待一个驱
7、动器完成寻道时,控制器可以启动另一个驱动器进行寻道。许多控制器也可以在对一个或多个其他驱动器寻道的同时在一个驱动器上进行读写操作但是控制器不能同时读写两个驱动器(读写数据要求控制器在微秒级范围传输数据,所以一个传输就基本用完了所有的计算能力)12.二二.时钟时钟 时钟时钟(clockclock),又称),又称为为定定时时器(器(timertimer)(1)(1)时钟负责时钟负责提供一天的提供一天的时间时间 (2)(2)防止一个防止一个进进程程垄垄断断CPUCPU 时钟时钟既不是既不是块设备块设备,也不是字符,也不是字符设备设备,但,但时钟软时钟软件通常也件通常也采用采用设备驱动设备驱动程序的形
8、式。程序的形式。两种两种类类型:型:比比较简单较简单的的时钟时钟被被连连到到110V110V或或220V220V的的电电源源线线上,每个上,每个电压电压周周期期产产生一个中断,生一个中断,频频率是率是50Hz50Hz或或60Hz60Hz另一种另一种时钟时钟由三个部件构成:晶体振由三个部件构成:晶体振荡荡器、器、计计数器和存数器和存储储寄寄存器存器 石英晶体石英晶体产产生的精确的周期信号,典型的范生的精确的周期信号,典型的范围围是是5 5到到100MHz100MHz 信号送到到信号送到到计计数器,使其数器,使其递递减减计计数至数至0 0。当。当计计数器数器变为变为0 0时时,产产生一个生一个CP
9、UCPU中断信号中断信号13.可编程时钟操作方式:在单脉冲方式(one-shot mode)下,当时钟启动时,它把存储寄存器的值拷贝到计数器中,然后,晶体的每一个脉冲使计数器减1。当计数器为0时,产生一个中断,并停止工作,直到软件再一次显式启动它在方波方式(square-wave mode)下,当计数器为0并产生中断时,存储寄存器的值自动拷贝到计数器,这个过程不断地重复下去。周期性的中断称为时钟滴答(clock tick)可编程时钟的优点是其中断频率可由软件控制时钟硬件所做的工作是每隔一定的时间间隔产生一个中断涉及时间的其他所有工作都必须由软件时钟驱动程序完成14.时钟软件的功能:1维护日期时
10、间 2防止进程超时运行 3对CPU的使用情况记帐 4处理用户进程提出的ALARM系统调用 5为系统本身各部分提供监视定时器 6绘制CPU运行直方图,完成监视和统计信息收集15.三三.终终端端每台计算机都配有一个或多个终端与之通信为了使操作系统中与设备无关部分和用户程序对于不同型号的终端不必重写,终端驱动程序隐藏了各种类型终端的差异根据与操作系统的通信方法将终端分为两大类:(1)RS232标准接口 (2)存储映像终端 RS232终端由键盘和显示器构成,通过串行接口一次一位地与计算机系统进行通信。这些终端使用25针的连接器,其中一针用于发送数据,一针用于接收数据,一针接地,其余22针用于各种控制功
11、能(大部分未使用)16.存存储储映像映像终终端端本身是计算机的组成部分通过专用存储器接口与计算机通信,称为视频RAM(video RAM),是计算机地址空间的一部分,CPU对它的寻址与对其他存储器的寻址是一样视频控制器(video controller),从视频RAM中取出字符,产生用于驱动显示器视频信号当CPU将一个字符写到视频RAM时,在一帧显示周期内显示在屏幕上17.6.2 I/O软件的组成IO软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口18.I/O软件的层次结构及功能19.IO软软件的目件
12、的目标标 设备独立性 是设计IO软件时的关键概念。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序。统一命名 文件或设备有统一命名,名字只应是一个简单的字符串或一个整数,不应依赖于设备。出错处理 数据传输中的错误应尽可能在接近硬件层上处理 可共享设备和独占设备的处理20.中断处理程序每个进程在启动一个IO操作后阻塞 直到IO操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为止21.设备驱动程序与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令
13、并监督它们正确执行。一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求 在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成22.与设备无关的I/O软件虽然IO软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的。独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口。主要功能:设备命名;设备保护;与
14、设备无关的块大小;数据缓冲;数据块的分配;对独占设备的分配与释放;错误处理等。23.6.3 I/O硬件特点硬件特点IO设备一般由机械和电子两部分组成1.物理设备 机械部分是设备本身(物理装置)2.设备控制器 电子部分叫做设备控制器或适配器。在小型和微型机中,它常采用印刷电路卡插入计算机中控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准24.一一.DMA.DMA(直接存(直接存储储器器访问访问)方式)方式为了进一步减少CPU对I/O的干预引入DMA控制方式,它有以下特点:数据在内存与I/O设备之间传送的基本单位是数
15、据块。数据是直接在设备内存之间传送的。仅在传送一个或多个数据块的开始和结束时才需要CPU对I/O的干预,传送工作本身是由DMA控制器完成的。DMA需要附加的辅助硬件,且该DMA硬件属于设备的电子部分的功能(由控制器实现)。许多控制器,尤其是块设备控制器都支持DMA。25.DMA控制器的组成1)主机与DMA控制器的接口数据寄存器(DR)内存地址寄存器(MAR)数据计数器(DC)命令/状态寄存器(CR)1)DMA控制器与块设备的接口2)I/O控制逻辑DRMARDCCRI/O控制逻辑 块设备接口控制器与内存CPUcout26.DMA方式的工作流程(1)设置AR和DC初值;(2)启动DMA传送命令;(
16、3)挪用存储器周期传送数据字;(4)存储器地址增加1,字计数器DC减1;(5)DC=0 则到(6),否则到(3)(6)请求中断27.CPU向控制器向控制器发发出启出启动动DMA通知和有关参数通知和有关参数控制器向内存控制器向内存发发出出询问请询问请求求访问访问内存(内存(读读、写)、写)计计数器减数器减1结结束否束否发发中断中断NYDMA的的实现实现流程流程28.二二.通道技通道技术术1.定义:通道是独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入、输出操作可与CPU并行操作。2.引入通道的目的 为了使CPU从I/O事
17、务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力 29.3.3.分分类类1)1)字字节节多路通道多路通道 字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息。主要连接以字节为单位的低速I/O设备。如打印机,终端。以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节30.31.2)2)选择选择通道通道 选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输当这台设备数据
18、传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序 主要连接磁盘,磁带等高速I/O设备 选择选择通道通道32.3)3)成成组组多路通道多路通道 它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令 主要连接高速设备 这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现33.4.硬件连接结构 34.35.交叉连接36.5.5.通道工作原理通道工作原理 通道相当于一个功能简单的处理机,包
19、含通道指令(空操作,读操作,写操作,控制,转移操作),并可执行用这些指令编写的通道程序 通道运算控制部件:通道地址字 CAW:记录通道程序在内存中的地址通道命令字 CCW:保存正在执行的通道指令通道状态字 CSW:存放通道执行后的返回结果通道数据字 CDW:存放传输数据通道和CPU共用内存,通过周期窃取方式取得37.工作原理 CPU:执行用户程序,当遇到I/O请求时,可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入CAW中;之后执行“启动I/O”指令,启动通道工作。通道:接收到“启动I/O”指令后,从CAW中取出通道程序的首地址,并根据首地址取出第一条指令放
20、入CCW中,同时向CPU发回答信号,使CPU可继续执行其他程序,而通道则开始执行通道程序,完成传输工作38.(通道程序完成实际I/O,启动I/O设备,执行完毕后,如果还有下一条指令,则继续执行,否则表示传输完成)当通道传输完成最后一条指令时,向CPU发I/O中断,并且通道停止工作。CPU接收中断信号,从CSW中取得有关信息,决定下一步做什么39.6.3 6.3 缓缓冲技冲技术术1.缓冲技术的引入 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。在操作系统中采用缓冲是为了实现数据的I/O操作,以缓解CPU与外部设备之间速度不匹配的矛盾,提高资源利用率缓冲技术减少了I/O设备对处理器的中断请求
21、次数简化了中断机制节省了系统开销40.2.缓冲区设置 硬缓冲:在设备中设置缓冲区,由硬件实现 软缓冲:在内存中开辟一个空间,用作缓冲区3.缓冲区管理 单缓冲:操作系统中设置一个缓冲区 双缓冲:操作系统中为某一设备设置两个缓冲区 缓冲池:多个缓冲区连接起来统一管理,常采用多缓冲管理41.42.缓缓冲池的冲池的组组成成 空空缓缓冲冲链队链队列列emp:由空由空缓缓冲区冲区组组成成 输输入入缓缓冲冲链队链队列列inq:由装由装满输满输入数据的入数据的缓缓冲区冲区组组成成 输输出出缓缓冲冲链队链队列列out:由装由装满输满输出数据的出数据的缓缓冲区冲区组组成成 4种工作种工作缓缓冲区冲区 收容收容输输
22、入、提取入、提取输输入、收容入、收容输输出、提取出、提取输输出。出。从某从某队队列上取下来操作完后再挂到另一列上取下来操作完后再挂到另一队队列上列上2.对缓对缓冲池冲池队队列操作的两个列操作的两个过过程程 缓缓冲池中的冲池中的队队列是列是临临界界资资源要考源要考虑虑互斥与同步互斥与同步43.3.缓缓冲区工作方式冲区工作方式提取提取输输出出收容收容输输入入提取提取输输入入收容收容输输出出缓缓冲池冲池hinsinsouthout用用户户程程序序empinqout收容收容输输入的工作方式入的工作方式:当当输输入入进进程需要程需要输输入数据入数据时时(1)调调用用Getbuf(emp,hin)过过程程
23、从从emp队队列首摘下空列首摘下空缓缓 冲区作冲区作为为收容收容输输入工作入工作缓缓冲区冲区hin(2)把数据把数据输输入到工作入到工作缓缓冲区冲区hin(3)调调用用Putbuf(inq,hin),将将hin挂到挂到inq队队列尾列尾提取提取输输入工作方式:入工作方式:当当计计算算进进程需要提取程需要提取输输入数据入数据时时(1)调调用用Getbuf(inq,sin)过过程程,从从inq队队列列头头摘下摘下缓缓冲区冲区作作为为提取提取输输入工作入工作缓缓冲区冲区sin(2)计计算算进进程从工作程从工作缓缓冲区冲区sin中提取数据中提取数据(3)调调用用Putbuf(emp,sin),将将s
24、in挂在挂在emp队队列尾列尾44.Procedure Getbuf(q,buf);从从q队队列列头头摘下摘下缓缓冲区冲区buf begin Wait(RS(q);信号量信号量RS(q)是是队队列列q的的长长度度 Wait(MS(q);MS(q)是是对对q操作的互斥信号量操作的互斥信号量 buf:=Takbuf(q);Signal(MS(q);endProcedure Putbuf(q,buf);buf加到加到q队队列的列的队队尾尾 begin Wait(MS(q);Addbuf(q,buf);Signal(MS(q)Signal(RS(q);end45.6.5 磁磁盘调盘调度度 当多个当多个
25、进进程都需要程都需要访问访问磁磁盘时盘时,访盘请访盘请求在等待求在等待,应应采用一定的策略采用一定的策略,对这对这些些请请求的服求的服务顺务顺序序调调整安排整安排,旨在降低平均磁旨在降低平均磁盘盘服服务时间务时间,达到公平、高效。达到公平、高效。公平:一个公平:一个I/O请请求在有限求在有限时间时间内内满满足。足。高效:减少高效:减少设备设备机械运机械运动动所所带带来的来的时间时间浪浪费费。磁磁盘调盘调度考度考虑虑的的问题问题:一次一次访盘时间访盘时间=寻寻道道时间时间+旋旋转转延延迟时间迟时间+存取存取时间时间 磁磁盘调盘调度算法度算法:46.1.先来先服先来先服务务FCFS(First-C
26、ome First Served)按按访问请访问请求到达的先后次序服求到达的先后次序服务务优优点:点:简单简单,公平;公平;缺点:效率低缺点:效率低,相相邻邻两次两次请请求可能会造成最内到最外的求可能会造成最内到最外的柱面柱面寻寻道道,使磁使磁头头反复移反复移动动,增加了平均增加了平均寻寻道道时间时间设设磁磁盘访问盘访问序列序列:80,55,58,39,18,90,160,150,38,18418 38 39 55 58 80 90 150 160 184 47.2.最短最短寻寻道道时间优时间优先先SSTF(Shortest Seek Time First)优优先先选择选择距当前磁距当前磁头头
27、最近的最近的访问请访问请求求进进行服行服务务,主要,主要考考虑寻虑寻道道优优先先 优优点:磁点:磁盘盘的平均的平均寻寻道道时间时间最小最小 缺点:缺点:进进程程饥饿饥饿现现象象,有有时时会造成与当前磁道距离会造成与当前磁道距离远远的的访问请访问请求求长长期等待得不到服期等待得不到服务务(不公平不公平)磁磁盘访问盘访问序列序列:80,55,58,39,18,90,160,150,38,18418 38 39 55 58 80 90 150 160 184 48.3.扫扫描算法描算法SCAN电电梯梯调调度算法度算法 克服最短克服最短寻寻道道优优先的缺点先的缺点,既考既考虑虑距离距离,又考又考虑虑方
28、向方向 具体做法具体做法:当当设备设备无无访问请访问请求求时时,磁磁头头不不动动;当有当有访问访问请请求求时时,磁磁头头按一个方向移按一个方向移动动,在移在移动过动过程中程中对对遇到的遇到的访问请访问请求求进进行服行服务务,然后然后,判断判断该该方向上是否方向上是否还还有有访问访问请请求求,如果有如果有则继续扫则继续扫描描;否否则则改改变变移移动动方向方向,并并为经过为经过的的访问请访问请求服求服务务,如此反复。如此反复。18 38 39 55 58 80 90 150 160 184 49.4.循循环扫环扫描描(CSCAN)算法算法 SCAN算法算法对对两端磁道两端磁道请请求不利求不利,可改
29、可改进为进为循循环扫环扫描算法描算法CSCAN。本算法本算法规规定磁定磁头单头单向移向移动动(如向外如向外),移移动动到最外磁到最外磁道后立即返回最里面要道后立即返回最里面要访问访问的磁道的磁道,构成循构成循环扫环扫描。描。18 38 39 55 58 80 90 150 160 184 50.6.6 设备设备分配分配多道程序多道程序环环境下境下 用用户进户进程提出程提出I/O请请求,求,设备设备分配程序按一定策分配程序按一定策略把用略把用户户所需的所需的设备设备分配分配给给用用户进户进程程。OS是怎是怎样对设备进样对设备进行分配的?行分配的?采用了哪些数据采用了哪些数据结结构?构?51.6.
30、6.1 设备设备分配中的数据分配中的数据结结构构具有通道的具有通道的I/O系系统结统结构构存存储储器器通道通道1 1通道通道2 2控制器控制器1 1控制器控制器2 2设备设备1 1设备设备2 2设备设备3 3设备设备4 452.1.设备设备控制表(控制表(DCT)表目表目1.表目表目i.设备类设备类型型设备标识设备标识符符设备设备状状态态:忙忙/闲闲指向控制器表的指指向控制器表的指针针设备队设备队列首指列首指针针重复重复执执行次数或行次数或时间时间设设备备控控制制表表DCT 每个每个设备设备一一张张DCT53.2.控制器控制表、通道控制表控制器控制表、通道控制表COCTCHCT每个控制器每个控
31、制器设设一一张张COCT,每个通道每个通道设设一一张张CHCT控制器控制器标识标识符符控制器状控制器状态态:忙忙/闲闲指向相指向相连连通道表的指通道表的指针针控制器控制器队队列的首指列的首指针针控制器控制器队队列的尾指列的尾指针针通道通道标识标识符符通道状通道状态态:忙忙/闲闲相相连连控制器表的指控制器表的指针针通道通道队队列的首指列的首指针针通道通道队队列的尾指列的尾指针针54.系系统设统设一一张张系系统设备统设备表表,纪录纪录系系统统中全部中全部设备设备的的情况情况,每个每个设备设备占一个表目。占一个表目。SDT设备类设备类型型设备标识设备标识符符设备设备控制表的入口控制表的入口驱动驱动程
32、序入口程序入口55.6.6.2 I/O调调度程序度程序1.设备设备的固有属性的固有属性 独占、共享、虚独占、共享、虚拟拟2.设备设备分配算法分配算法 先来先服先来先服务务、优优先先级级高者高者优优先先3.设备设备分配的安全性分配的安全性安全分配方式安全分配方式:进进程程发发出出I/O请请求便被阻塞直到求便被阻塞直到I/O完成完成.优优点点:破坏了破坏了请请求保持条件求保持条件,不会死不会死锁锁;程序程序编编写写简单简单缺点缺点:进进程推程推进进速度速度缓缓慢慢不安全分配方式不安全分配方式:进进程程发发出出I/O请请求后求后继续执继续执行行,需要需要时时又又发发出第二个、第三个出第二个、第三个I
33、/O请请求求.优优点:点:进进程推程推进进速度速度块块。缺点:可能引起死缺点:可能引起死锁锁。4.设备设备的独立性的独立性56.单单通路通路I/O系系统统的的设备设备分配分配:(1)分配分配设备设备:根据物理根据物理设备设备名名,查查找系找系统设备统设备表表SDT,找出找出该设备该设备的的设备设备控制表控制表DCT,再根据再根据DCT中的中的设备设备状状态态字忙否字忙否执执行行,若忙将若忙将请请求求I/O的的进进程挂在程挂在设备设备等待等待队队列上列上,否否则检查则检查安全性安全性,安全安全则则分配。分配。(2)分配控制器分配控制器:分配了分配了设备设备之后之后,再到再到DCT中找出与中找出与
34、之之连连接的控制器控制表接的控制器控制表COCT,再根据再根据COCT中的状中的状态态字忙否字忙否执执行等待或分配控制器。行等待或分配控制器。(3)分配通道分配通道:在在COCT中找到与之中找到与之连连接的通道控制表接的通道控制表CHCT,再根据再根据CHCT中的状中的状态态字忙否字忙否执执行等待或分行等待或分配通道。配通道。6.6.3 设备设备的分配的分配57.多通路多通路I/O系系统统的的设备设备分配分配:(1)分配分配设备设备:根据根据设备类设备类型型,查查找系找系统设备统设备表表SDT,找找出第一个出第一个该类设备该类设备的的设备设备控制表控制表DCT,再根据再根据DCT中中的的设备设
35、备状状态态字忙否字忙否,若忙将若忙将检查检查第二个第二个设备设备的的DCT,若若设备设备全部忙碌,全部忙碌,请请求求I/O的的进进程挂在程挂在设备设备等待等待队队列上列上,否否则检查则检查安全性安全性,安全安全则则分配,分配的分配,分配的设备设备假假设为设为i。(2)分配控制器分配控制器:分配分配设备设备i之后之后,再到再到DCT中找出与之中找出与之连连接的控制器控制表接的控制器控制表COCT,再根据再根据COCT中的状中的状态态字字忙否,若忙,忙否,若忙,则检查则检查下一个下一个COCT,若所有控制器都忙,若所有控制器都忙,则则表明没有控制器可分配,只要表明没有控制器可分配,只要设备设备i不
36、是不是该类设备该类设备的的最后一个,便返回到步最后一个,便返回到步骤骤(1).否否则则,将,将进进程插入控制程插入控制器的等待器的等待队队列,分配的控制器假列,分配的控制器假设为设为j.58.(3)分配通道分配通道:在在COCT中找到与之中找到与之连连接的通道控接的通道控制表制表CHCT,再再查查看看CHCT中的状中的状态态字忙否,若字忙否,若与此控制器相与此控制器相连连的通道全忙,只要控制器的通道全忙,只要控制器j不是不是设设备备i的最后一个控制器,的最后一个控制器,则则返回到步返回到步骤骤(2).否否则则,将将进进程插入程插入该该通道的等待通道的等待队队列。若有空列。若有空闲闲的通道,的通
37、道,则则此次此次设备设备分配成功。分配成功。59.5.4.5 SPOOLing 技技术术Simultaneous Peripheral Operations On-Line 脱机脱机输输入入输输出是指利用外出是指利用外围围机脱机机脱机进进行行I/O操作。操作。SPOOLing是是联联机情况的同机情况的同时时外外围围操作操作(假脱机操作假脱机操作)用用输输入入进进程程 SPI 模模拟拟脱机脱机输输入入时时外外围围机的功能机的功能,把低速把低速输输入入设备设备的数据送到高速磁的数据送到高速磁盘盘上。上。用用输输出出进进程程 SPO模模拟拟脱机脱机输输出出时时外外围围机的功能机的功能,把高速磁把高速
38、磁盘盘的数据送到低速的数据送到低速输输出出设备设备上。上。SPOOLing系系统统特点特点 提高了提高了I/O速度速度,缓缓和和CPU高速与高速与I/O慢速的矛盾。慢速的矛盾。将独占将独占设备设备改造改造为为共享共享设备设备。实现实现虚虚拟设备拟设备,一台物理一台物理设备变为设备变为多台多台逻辑设备逻辑设备。60.SPOOLing 系系统统的的组组成成(1)输输入井、入井、输输出井出井:收容收容输输入入/出的数据出的数据(2)输输入入/出出缓缓冲区冲区Bi/Bo:内存内存缓缓冲区冲区,暂暂存存输输入入/出数据出数据(3)输输入入/出出进进程程SPi/SPo:模模拟拟脱机脱机输输入入/出出时时的
39、外的外围围机机输输入入缓缓冲区冲区Bi输输出出缓缓冲区冲区Bo高速磁高速磁盘盘输输入入进进程程SPi输输出出进进程程SPo输输入井入井输输出井出井输输入入设备设备输输出出设备设备61.实实例例:共享打印机共享打印机把一台打印机改造把一台打印机改造为为多个用多个用户户可共享可共享(1)由由输输出出进进程程 SPo 将打印的数据从内存送到将打印的数据从内存送到输输出井出井(2)由由SPo将用将用户户要求填入要求填入请请求打印表中求打印表中,并将并将请请求打印表挂到求打印表挂到请请求打印求打印队队列上列上(4)若打印机空若打印机空闲闲,SPo将从将从请请求打印求打印队队列的列的队队首取一首取一张请张请求打印表求打印表,根据打印要求将打印数根据打印要求将打印数据从据从输输出井送到出井送到Bo,再由打印机打印。再由打印机打印。62.作业:P200 1,3,4,5,6,10,1163.






