1、自考操作系统原理自考操作系统原理-设设备管理备管理设备管理的功能设备管理的功能n把文件存放到存储介质上时,必须要对外围设把文件存放到存储介质上时,必须要对外围设备进行启动和控制,这部分功能由操作系统中备进行启动和控制,这部分功能由操作系统中的的设备管理设备管理完成。完成。设备管理的功能设备管理的功能n外围设备的分类外围设备的分类q存储设备:磁盘机、磁带机存储设备:磁盘机、磁带机q输入输入/输出型设备:显示器、输入机、打印机输出型设备:显示器、输入机、打印机n存储型设备能使大量信息存储到存储介质上,能存储型设备能使大量信息存储到存储介质上,能做为主存的扩充,也成为辅存。做为主存的扩充,也成为辅存
2、。n输入输出型设备把外界的信息输入到计算机,把输入输出型设备把外界的信息输入到计算机,把运算结果输出。运算结果输出。设备管理的功能设备管理的功能n主存和外设之间的信息传送称为主存和外设之间的信息传送称为输入输入/输出操输出操作作。n对对存储型设备存储型设备,输入,输入/输出操作的信息传送单输出操作的信息传送单位为位为“块块”。n对输入对输入/输出型设备,输入输出型设备,输入/输出操作的信息传输出操作的信息传送单位为送单位为“字符字符”。设备管理的功能设备管理的功能n设备管理带来的好处:设备管理带来的好处:q启动外设的事务不由用户承担启动外设的事务不由用户承担q实现外设的共享,提高设备的利用率实
3、现外设的共享,提高设备的利用率q实现外设和其他计算机部件的并行操作,提高系统实现外设和其他计算机部件的并行操作,提高系统利用率利用率q处理故障,防止用户错误的使用外设,提高系统可处理故障,防止用户错误的使用外设,提高系统可靠性和安全性靠性和安全性设备管理的功能设备管理的功能n实现对外围设备的分配和回收实现对外围设备的分配和回收n实现外围设备的启动实现外围设备的启动n实现对磁盘的驱动调度实现对磁盘的驱动调度n处理外设的中断事件处理外设的中断事件n实现虚拟设备实现虚拟设备外围设备的分类外围设备的分类n从使用的角度分析外围设备的特性,可以把外从使用的角度分析外围设备的特性,可以把外设分成两类:设分成
4、两类:独占设备独占设备和和可共享设备可共享设备。n作业执行过程中只允许一个作业独占的设备称作业执行过程中只允许一个作业独占的设备称为独占设备。为独占设备。n可以让若干个作业同时使用可以让若干个作业同时使用(交替使用交替使用)的设备的设备称为可共享设备。称为可共享设备。独占设备的管理独占设备的管理n实现多道程序设计的计算机系统可以同时接纳实现多道程序设计的计算机系统可以同时接纳多个用户作业,每个作业都需要使用一些外设,多个用户作业,每个作业都需要使用一些外设,有的时候几道作业可能要求使用同样的外设,有的时候几道作业可能要求使用同样的外设,对于设备管理来说,必须决定分配外设的策略,对于设备管理来说
5、,必须决定分配外设的策略,尽可能满足作业的要求和提供设备利用率。尽可能满足作业的要求和提供设备利用率。设备的绝对号与相对号设备的绝对号与相对号n计算机系统中配置有各种不同类型的设备,每一计算机系统中配置有各种不同类型的设备,每一类设备又可以有多台,为了对设备进行管理,为类设备又可以有多台,为了对设备进行管理,为每台设备确定一个编号,这个编号称为每台设备确定一个编号,这个编号称为设备的绝设备的绝对号对号。n用户无法知道哪台设备空闲,用户申请设备时用户无法知道哪台设备空闲,用户申请设备时不不能能使用绝对号。只要向系统说明所要设备的类型,使用绝对号。只要向系统说明所要设备的类型,实际分类哪一台由系统
6、决定。实际分类哪一台由系统决定。设备的绝对号与相对号设备的绝对号与相对号n用户可能同时使用几台同类型设备,为了避免使用户可能同时使用几台同类型设备,为了避免使用时的混乱,用户可以把自己要求使用的若干台用时的混乱,用户可以把自己要求使用的若干台设备编号,由用户对自己需要使用的若干台设备设备编号,由用户对自己需要使用的若干台设备给出的编号称为设备的给出的编号称为设备的相对号相对号。n用户总是用用户总是用“设备类、相对号设备类、相对号”来提出使用设备。来提出使用设备。n系统在为用户分配具体设备时就建立系统在为用户分配具体设备时就建立“设备类、相设备类、相对号对号”和和“绝对号绝对号”的对应关系。的对
7、应关系。独占设备的分配独占设备的分配n作业申请独占设备时,应指定所需的是什么设作业申请独占设备时,应指定所需的是什么设备,指定的方式有两种:备,指定的方式有两种:q指定指定“绝对号绝对号”:系统把与绝对号对应的设备分配系统把与绝对号对应的设备分配给作业,如果已占用或有故障,作业等待。给作业,如果已占用或有故障,作业等待。q通常,用户不用指定具体设备,而是指定哪种设备通常,用户不用指定具体设备,而是指定哪种设备多少台,用户在程序中使用多少台,用户在程序中使用“设备类、相对号设备类、相对号”定义定义逻辑设备。由系统将逻辑设备转换成物理设备,并逻辑设备。由系统将逻辑设备转换成物理设备,并启动设备工作
8、。用户编制程序时使用的设备与实际启动设备工作。用户编制程序时使用的设备与实际占用的设备无关,这种特性称为占用的设备无关,这种特性称为设备的独立性设备的独立性。独占设备的分类独占设备的分类n设备独立性带来的好处:设备独立性带来的好处:q系统只要从指定类别的设备中找出系统只要从指定类别的设备中找出“好的且尚未分好的且尚未分配的配的”设备来分配设备来分配q万一设备出现故障,系统可以再找一台万一设备出现故障,系统可以再找一台“好的且尚好的且尚未分配的未分配的”设备来替换设备来替换独占设备的分类独占设备的分类n在设备分配策略上,对磁带机、输入机、打印在设备分配策略上,对磁带机、输入机、打印机等只适合机等
9、只适合独占的设备独占的设备总是采用总是采用静态分配静态分配策略。策略。n静态分配:仅当一个作业所需的独占设备能够静态分配:仅当一个作业所需的独占设备能够得到满足时,该作业才能被装入主存执行,作得到满足时,该作业才能被装入主存执行,作业撤离时,收回分配给它的设备。业撤离时,收回分配给它的设备。独占设备的分类独占设备的分类p为了记录设备的分配情况,系统可以设置设备分配表,指出系统所配置的独占设备类型、数量以及分配和使用的情况。p设备分配表由两部分组成:设备类表、设备表设备类总台数现存台数设备表始址打印机11输入机21磁带机22设备类表设备类表绝对号好/坏已/未分配占用作业名相对号001好未分配00
10、2好已分配J1001003好未分配004好未分配005好未分配设备表设备表独占设备的分类独占设备的分类n用户申请使用某台设备时,先查用户申请使用某台设备时,先查设备类表设备类表。n若果现存的台数能够满足申请要求,则依次检查若果现存的台数能够满足申请要求,则依次检查该类设备,找出该类设备,找出“好的且尚未分配的好的且尚未分配的”设备分配给设备分配给用户。用户。n分配后修改分配后修改“现存台数现存台数”,“已已/未分配未分配”标志,填上标志,填上作业名和作业中定义的相对号,并把设备的绝对作业名和作业中定义的相对号,并把设备的绝对号和相对号对应关系通知用户。号和相对号对应关系通知用户。独占设备的分类
11、独占设备的分类n作业撤离时回收作业占用的全部设备作业撤离时回收作业占用的全部设备n根据作业名在设备表中找到该作业占用的全部根据作业名在设备表中找到该作业占用的全部设备,把标志改为设备,把标志改为“未分配未分配”,清除作业名。,清除作业名。n把回收的台数加到把回收的台数加到“现存台数现存台数”中。中。访问磁盘的操作时间访问磁盘的操作时间n任何一个访问磁盘的请求,都应给出访问磁盘的存储空间任何一个访问磁盘的请求,都应给出访问磁盘的存储空间地址:地址:柱面号、磁头号、扇区号柱面号、磁头号、扇区号。n先把移动臂移到指定柱面,再等待指定的扇区旋转到磁头先把移动臂移到指定柱面,再等待指定的扇区旋转到磁头下
12、面,让指定的磁头进行读下面,让指定的磁头进行读/写。写。n磁盘执行一次输入磁盘执行一次输入/输出操作所花费的时间:输出操作所花费的时间:寻道时间寻道时间、延迟时间延迟时间、传送时间传送时间三个部分组成。三个部分组成。磁道磁盘的驱动调度磁盘的驱动调度n磁盘是一种共享设备,同时会有若干个进程要磁盘是一种共享设备,同时会有若干个进程要求访问磁盘,但每个时刻只允许一个访问者启求访问磁盘,但每个时刻只允许一个访问者启动。动。n系统会采用一定的调度策略来决定等待访问者系统会采用一定的调度策略来决定等待访问者的执行次序,这项决定访问者执行次序的工作的执行次序,这项决定访问者执行次序的工作称为称为驱动调度驱动
13、调度,采用的调度策略称为,采用的调度策略称为驱动调度驱动调度算法算法。磁盘的驱动调度磁盘的驱动调度n磁盘驱动调度包括:磁盘驱动调度包括:移臂调度移臂调度和和旋转调度旋转调度两部两部分。分。n一般先进行移臂调度,再进行旋转调度。一般先进行移臂调度,再进行旋转调度。n移臂调度的目标是尽可能移臂调度的目标是尽可能减少寻找时间减少寻找时间。n旋转调度的目标是尽可能旋转调度的目标是尽可能减少延迟时间减少延迟时间。移臂调度移臂调度n根据等待访问者指定的柱面位置来决定次序的根据等待访问者指定的柱面位置来决定次序的调度称为调度称为“移臂调度移臂调度”。n先来先服务调度算法先来先服务调度算法q按照访问者提出访问
14、请求的先后次序。按照访问者提出访问请求的先后次序。q假设磁盘位于假设磁盘位于53号柱面,等待者依次要求号柱面,等待者依次要求 98,183,37,122,14,124,65,67号柱面号柱面0 143753656798122124183199最短寻找时间优先调度算法最短寻找时间优先调度算法n最短寻找时间优先调度算法总是从等待访问者中挑选最短寻找时间优先调度算法总是从等待访问者中挑选寻找寻找时间最短时间最短的那个请求先执行。的那个请求先执行。n假设磁盘位于假设磁盘位于53号柱面,等待者依次要求号柱面,等待者依次要求 98,183,37,122,14,124,65,67号柱面号柱面01437536
15、5 6798122 124183电梯调度算法电梯调度算法n电梯调度算法总是电梯调度算法总是沿着臂的移动方向沿着臂的移动方向选择最近的那个柱面选择最近的那个柱面的访问者,如果移动方向上无请求,就改变臂的移动方向的访问者,如果移动方向上无请求,就改变臂的移动方向再进行选择。再进行选择。n假设磁盘位于假设磁盘位于53号柱面,号柱面,假设磁臂移动方向从内向外假设磁臂移动方向从内向外(向向0号柱面方向号柱面方向),等待者依次要求等待者依次要求 98,183,37,122,14,124,65,67号柱面号柱面014375365 6798122 124183电梯调度算法电梯调度算法n假设磁盘位于假设磁盘位于
16、53号柱面,号柱面,假设磁臂移动方向从外向内假设磁臂移动方向从外向内(向向柱面号增大方向柱面号增大方向),等待者依次要求等待者依次要求 98,183,37,122,14,124,65,67号柱面号柱面014375365 6798122 124183旋转调度旋转调度n移臂定位之后,可能会有多个访问者访问该柱移臂定位之后,可能会有多个访问者访问该柱面,从效率考虑应优先面,从效率考虑应优先选择延时时间最短选择延时时间最短的访的访问者去执行,根据延迟时间来决定执行次序的问者去执行,根据延迟时间来决定执行次序的调度称为调度称为旋转调度旋转调度。旋转调度旋转调度n若干请求者要求访问若干请求者要求访问相同磁
17、头下的不同扇区相同磁头下的不同扇区。0扇区1扇区2扇区3扇区旋转方向磁头4扇区5扇区2号请求1号请求旋转调度旋转调度n若干请求者要求访问若干请求者要求访问不同磁头下的不同扇区不同磁头下的不同扇区。0扇区1扇区2扇区3扇区磁头4扇区5扇区1号请求0扇区1扇区2扇区3扇区旋转方向磁头4扇区5扇区2号请求旋转调度旋转调度n若干请求者要求访问若干请求者要求访问不同磁头下的相同扇区不同磁头下的相同扇区。0扇区1扇区2扇区3扇区磁头4扇区5扇区1号请求0扇区1扇区2扇区3扇区旋转方向磁头4扇区5扇区2号请求例例1:p 有四个访问5号柱面的访问者,访问要求如表所示:请求次序柱面号磁头号扇区号(1)541(2
18、)515(3)545(4)528n练习练习 P187 9信息的优化分布信息的优化分布n信息在磁道上的排列方式也会影响旋转调度时间。信息在磁道上的排列方式也会影响旋转调度时间。n例:磁盘每个盘面例:磁盘每个盘面8个扇区,每次请求从磁盘上读一个记个扇区,每次请求从磁盘上读一个记录,对读出的记录花录,对读出的记录花5ms的时间进行处理,然后再读下一的时间进行处理,然后再读下一个记录,直至处理结束,假设磁盘转速每周个记录,直至处理结束,假设磁盘转速每周20ms,记录,记录在磁盘上的分布如图所示:在磁盘上的分布如图所示:L7L5L4L3L2L1L6L8始点旋转方向处理完这8个记录需要多长时间信息的优化分
19、布信息的优化分布L3L5L2L7L4L1L8L6始点旋转方向处理所有记录花的时间为:8*(2.5+5)=60ms练习练习 P187 10通道结构和通道程序通道结构和通道程序n现代计算机系统引入了现代计算机系统引入了通道结构通道结构,主存和外设之间传送信,主存和外设之间传送信息的操作不再由中央处理器承担,而改由通道承担。息的操作不再由中央处理器承担,而改由通道承担。n中央处理器只需启动通道,通道就能按指定的要求独立地中央处理器只需启动通道,通道就能按指定的要求独立地完成输入完成输入/输出操作,中央处理器做其他工作,从而使得输出操作,中央处理器做其他工作,从而使得中央处理器与外设可以并行工作。中央
20、处理器与外设可以并行工作。n由于通道可以独立工作,各通道上的外围设备也能并行工由于通道可以独立工作,各通道上的外围设备也能并行工作。作。n由于通道能单独地完成输入由于通道能单独地完成输入/输出操作,所以把通道称为输出操作,所以把通道称为I/O处理机处理机。通道结构和通道程序通道结构和通道程序通道命令通道命令(channel command word,CCW)n计算机计算机硬件提供硬件提供一组一组“通道命令通道命令”,每一条通道,每一条通道命令规定了设备的一种操作,命令规定了设备的一种操作,通道命令由通道通道命令由通道执行执行。n操作系统操作系统可以用若干条通道命令来规定通道应可以用若干条通道命
21、令来规定通道应做的工作,若干条通道命令就构成了做的工作,若干条通道命令就构成了通道程序通道程序。通道命令通道命令CCWn不同的操作系统通道命令格式不同,一般由不同的操作系统通道命令格式不同,一般由命令码命令码、数据主存地址数据主存地址、传送字节数传送字节数、标志码标志码组成。组成。n例如例如IBM系统通道命令用系统通道命令用8字节表示:字节表示:n要控制外围设备完成指定工作,首先要用通道程序把要控制外围设备完成指定工作,首先要用通道程序把要求表示出来,然后启动通道,通道按照通道程序的要求表示出来,然后启动通道,通道按照通道程序的要求指定外设工作。要求指定外设工作。命令码命令码传送字节数传送字节
22、数标志码标志码数据主存地址数据主存地址063通道命令通道命令CCW例:用户要求从打印机上输出一行信息“operating system”,信息打印在新的一页第4行,“operating system”存放在主存001000号单元,占16个字节,编制一个含有三条命令的通道程序,程序存放在主存的K号单元开始的区域中。(16进制表示)走到新页开始,继续下一条命令走纸到第四行,继续下一条命令打印主存001000开始的16个字节数据,通道程序结束07 000000 60 000001EF 000000 60 000001F9 001000 00 000010KK+8K+1600100000100FOpe
23、rating System主存通道地址字通道地址字(channel address word,CAW)n编制好的通道程序是放在主存的,主存中设置编制好的通道程序是放在主存的,主存中设置一个固定单元存放通道程序首地址,这个存放一个固定单元存放通道程序首地址,这个存放通道程序首地址的主存固定单元称为通道程序首地址的主存固定单元称为通道地址通道地址字字(CAW)。07 000000 60 000001EF 000000 60 000001F9 001000 00 000010KK+8K+16主存主存KCAW通道状态字通道状态字(channel status word,CSW)n当通道被启动后,在执行
24、通道程序时,需要把当通道被启动后,在执行通道程序时,需要把通道和设备执行操作的情况记录下来。通道和设备执行操作的情况记录下来。n通道程序执行结束时,被记录的执行情况存储通道程序执行结束时,被记录的执行情况存储到主存的一个固定单元中,这个单元称为到主存的一个固定单元中,这个单元称为通道通道状态字状态字(CSW)通道状态字通道状态字(channel status word,CSW)nIBM系统的通道状态字:系统的通道状态字:n通道命令地址:下一条通道指令在主存中的地址通道命令地址:下一条通道指令在主存中的地址n设备状态:设备和设备控制器识别的状态,忙、出设备状态:设备和设备控制器识别的状态,忙、出
25、错、结束等错、结束等n通道状态:通道识别的状态通道状态:通道识别的状态n剩余字节数:最近的一次通道命令执行后还剩多少剩余字节数:最近的一次通道命令执行后还剩多少字节没有传输完字节没有传输完通道命令地址通道命令地址剩余字节数剩余字节数通道状态通道状态设备状态设备状态06348474039323187外围设备的启动外围设备的启动准备阶段准备阶段文件管理确定文件物理地址以及信息存放的主存地址用户请求存取文件设备管理组织通道程序,把通道程序在主存的首地址写入通道地址字(CAW)告知设备管理外围设备的启动外围设备的启动启动启动I/O阶段阶段设备管理程序组织“启动I/O”指令,参数为通道号和设备号,CPU
26、执行“启动I/O”指令通道收到指令后,根据自己和设备的工作情况形成条件码,向中央处理器报告是否成功启动分析条件码,若成功启动,中央处理器继续执行其他进程从通道地址字中取出通道程序首地址,装入通道状态字,按照程序要求控制设备工作,执行的情况记录在通道状态字中外围设备的启动外围设备的启动结束处理阶段结束处理阶段通道发现通道状态字中有结束、出错等情况将产生中断的通道号、设备绝对号报给中断控制器,中断状态字CSW写入主存发出I/O中断保护断点,分析中断原因,转向中断处理程序设备处理一致性设备处理一致性n具有通道的计算机系统,从启动外设到输入具有通道的计算机系统,从启动外设到输入/输出完成,都不考虑物理
27、设备的特性,使用统输出完成,都不考虑物理设备的特性,使用统一方法进行处理,这种不考虑设备的具体物理一方法进行处理,这种不考虑设备的具体物理特性的处理方法称为特性的处理方法称为设备处理一致性设备处理一致性。I/O中断事件的处理中断事件的处理nI/O中断事件可以分为操作中断事件可以分为操作正常结束正常结束和操作和操作异异常结束常结束两大类,这两类中断的处理原则如下:两大类,这两类中断的处理原则如下:n操作正常结束操作正常结束q通道状态字中有通道结束、设备结束、控制器结束通道状态字中有通道结束、设备结束、控制器结束时,表示通常完成了通道程序规定的操作。时,表示通常完成了通道程序规定的操作。q操作系统
28、根据通道号、设备号查询设备分配表,得操作系统根据通道号、设备号查询设备分配表,得到进程名称,将进程状态由到进程名称,将进程状态由“等待等待”变成变成“就绪就绪”I/O中断事件的处理中断事件的处理n操作异常结束操作异常结束q设备故障设备故障n执行输入执行输入/输出操作时,发现硬件故障等情况时形成操作输出操作时,发现硬件故障等情况时形成操作异常结束的异常结束的I/O中断。中断。n操作系统处理这类事件的原则是操作系统处理这类事件的原则是让通道程序复执让通道程序复执。q设备特殊设备特殊n打印机缺纸、磁带到了末尾等特殊情况打印机缺纸、磁带到了末尾等特殊情况n操作系统分类处理,通知操作员装纸,换磁带等。操
29、作系统分类处理,通知操作员装纸,换磁带等。缓冲技术缓冲技术n缓和缓和CPU与与I/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。n在主存中开辟在主存中开辟缓冲区缓冲区,用来临时存放输入,用来临时存放输入/输输出信息。出信息。n在操作系统中,把利用缓冲区来缓解处理器与在操作系统中,把利用缓冲区来缓解处理器与外设之间速度不匹配的矛盾而采用的技术称为外设之间速度不匹配的矛盾而采用的技术称为缓冲技术缓冲技术。n核心:核心:“提前读,延迟写提前读,延迟写”无缓冲无缓冲I/O设备工作区用户进程T处理p不采用缓冲技术,一块数据的平均处理时间为T+p单缓冲单缓冲I/O设备缓冲区工作区用户进程Tt处理p采用
30、单缓冲,一块数据的平均处理时间为采用单缓冲,一块数据的平均处理时间为max(T,p)+tT1t1p1T2t2p2T3p3t3T4p4t4T5p5t5假设p TT2T1t1p1t2p2T3p3t3T4p4t4T5p5t5假设p TT2T1t1p1t2p2T3p3t3T4p4t4T5p5t5假设 p+t Tp1T2T1t1t2p2T3p3t3T4p4t4T5p5t5缓冲池缓冲池p 主存中设置一组缓冲区,这一组缓冲区称为缓冲池。缓冲池是公共资源,可供各进程共享,由操作系统统一分配和管理。缓冲池缓冲池n用户请求用户请求读读磁盘文件,首先为其分配一个或几个缓冲区,磁盘文件,首先为其分配一个或几个缓冲区,
31、然后启动磁盘将文件读到缓冲区中,当把缓冲区的信息传然后启动磁盘将文件读到缓冲区中,当把缓冲区的信息传送到工作区后,送到工作区后,缓冲区信息保留缓冲区信息保留。n用户请求把文件用户请求把文件保存保存在磁盘上时,首先为其分配一个或几在磁盘上时,首先为其分配一个或几个缓冲区,然后把主存中的文件信息复制到缓冲区中,个缓冲区,然后把主存中的文件信息复制到缓冲区中,不不启动磁盘保存该文件启动磁盘保存该文件。直到缓冲区要被回收时,才写会磁。直到缓冲区要被回收时,才写会磁盘盘-“延迟写延迟写”。虚拟设备虚拟设备n操作系统利用操作系统利用共享设备共享设备来模拟来模拟独占设备独占设备的工作,的工作,并且让每个作业
32、都感觉自己独占设备,操作系并且让每个作业都感觉自己独占设备,操作系统采用的这种技术成为统采用的这种技术成为“虚拟设备虚拟设备”。为什么要提供虚拟设备为什么要提供虚拟设备n独占设备通常采用静态分配方式独占设备通常采用静态分配方式q占有打印机的作业,只有一部分时间使用打印机,占有打印机的作业,只有一部分时间使用打印机,其余时间即使不用,也不允许其他作业用,其余时间即使不用,也不允许其他作业用,不能有不能有效利用设备效利用设备q当系统只配有一台输入机、一台打印机的时候,就当系统只配有一台输入机、一台打印机的时候,就不能接受两个以上的作业同时运行,不能接受两个以上的作业同时运行,不利用多道并不利用多道
33、并行行q独占设备大多是低速设备,作业执行过程中等待时独占设备大多是低速设备,作业执行过程中等待时间长而间长而延长了作业的执行时间延长了作业的执行时间虚拟设备的基本条件虚拟设备的基本条件n硬件条件硬件条件q大容量的硬盘大容量的硬盘q中断装置中断装置q通道通道n软件条件软件条件q支持多道程序设计支持多道程序设计虚拟设备的实现原理虚拟设备的实现原理输入机主存J1J3J2打印机结果输入机主存J1J3J2打印机结果磁盘磁盘虚拟设备的实现技术虚拟设备的实现技术n为了实现虚拟设备,必须在磁盘上划出称为为了实现虚拟设备,必须在磁盘上划出称为“井井”的专用空间。的专用空间。q输入井输入井:存放作业的初始信息:存
34、放作业的初始信息q输出井输出井:作业的执行结果:作业的执行结果SPOOLING系统系统n操作系统中实现虚拟设备的功能模块是在计算操作系统中实现虚拟设备的功能模块是在计算机控制下通过机控制下通过联机的外围设备同时操作联机的外围设备同时操作(simultaneous peripheral operation on line),简称简称spooling。Spooling系统组成系统组成输入输入机机主主存存J1J3J2打印打印机机结果结果预输入程序预输入程序缓输出程序缓输出程序J1J2J3输入井输入井J1结果结果J2结果结果J3结果结果输出井输出井井管理读程序井管理读程序井管理写程序井管理写程序Spo
35、oling系统数据结构系统数据结构作业名作业状态文件数其他预输入表位置缓输出表位置A执行B收容n作业表作业表输入井中的作业状态输入井中的作业状态 输入态输入态:正在将作业信息传输到输入井正在将作业信息传输到输入井 收容态:收容态:作业已经存放在输入井中,但尚未被选中执行作业已经存放在输入井中,但尚未被选中执行 执行态执行态:作业被选中并装入主存执行作业被选中并装入主存执行 完成态:完成态:作业已执行结束,执行结果在输出井中作业已执行结束,执行结果在输出井中等待输出等待输出Spooling系统数据结构系统数据结构文件名设备类长度其他文件存放始址F1输入机150第 78块F2输入机210第 24块
36、预输入表预输入表文件名设备类长度其他文件存放始址F1打印机150第 200块F2打印机210第 216块缓输出表缓输出表功能实现功能实现作业名作业状态文件数预输入表位置缓输出表位置输入输入机机J1J3J2预输入程序预输入程序输入井输入井J1文件名设备类长度 文件存放始址F1输入机150第78块F2输入机210第24块J1输入功能实现功能实现主主存存J1J2J3输入井输入井井管理读程序井管理读程序作业名作业状态文件数预输入表位置缓输出表位置文件名设备类长度 文件存放始址F1输入机150第78块F2输入机210第24块J1收容功能实现功能实现主主存存J2结果结果J3结果结果输出井输出井井管理写程序
37、井管理写程序作业名作业状态文件数预输入表位置缓输出表位置J1执行文件名设备类长度文件存放始址F1打印机150第 200块F2打印机210第 216块J1结果结果功能实现功能实现打印打印机机结果结果缓输出程序缓输出程序J1结果结果J2结果结果J3结果结果输出井输出井作业名作业状态文件数预输入表位置缓输出表位置J1完成文件名设备类长度文件存放始址F1打印机150第 200块F2打印机210第 216块UNIX的设备的设备n设备分类设备分类q块设备块设备:以以块块为单位和主存交换信息,是用来存为单位和主存交换信息,是用来存储信息的设备,块设备也称储信息的设备,块设备也称存储设备存储设备。q字符设备字
38、符设备:以以字节字节为单位与主存交换信息,也称为单位与主存交换信息,也称输入输入/输出设备输出设备。nUNIX对每一类设备给出一个编号,称对每一类设备给出一个编号,称为主设为主设备号备号,每台设备有一个编号,称为,每台设备有一个编号,称为次设备号次设备号。n请求设备工作时,给出主设备号和次设备号。请求设备工作时,给出主设备号和次设备号。设备文件设备文件nUNIX把设备当做文件来对待,每个设备文件把设备当做文件来对待,每个设备文件有文件名,并对它像文件一样操作。有文件名,并对它像文件一样操作。文件名索引节点号printer21#2#3#4#5#索引节点区索引节点区文件存储区文件存储区1#2#3#
39、4#5#/dev目录目录di_mode:字符设备:字符设备主设备号:主设备号:2次设备号次设备号:32#索引节点:索引节点:nfd=open(“/dev/tty13”,o_RDWR);文件名索引节点号abc5user.h15tty1318不在主存从硬盘读入118/dev目录:目录:i_modei_mode:字符:字符主设备号:主设备号:1 1次设备号:次设备号:2 2活动索引节点f_flag:o_RDWRf_count:1f_inode:f_offset:0系统打开文件表系统打开文件表fd进程打开文件表进程打开文件表openclosereadwrite0coopencoclosecoreadc
40、owrite1tyopentyclosetyreadtywrite2dzopendzclosedzreaddzwritenclose(fd);i_modei_mode:字符:字符主设备号:主设备号:1 1次设备号:次设备号:2 2活动索引节点f_flag:o_RDWRf_count:1f_inode:f_offset:0系统打开文件表系统打开文件表fd进程打开文件表进程打开文件表openclosereadwrite0coopencoclosecoreadcowrite1tyopentyclosetyreadtywrite2dzopendzclosedzreaddzwriteUNIX块设备缓冲技
41、术块设备缓冲技术n系统设置一批缓冲区,构成系统设置一批缓冲区,构成缓冲池缓冲池。n读操作读操作(缓冲区信息全部传送至用户区后,缓冲区信息全部传送至用户区后,内容保留内容保留)n写操作写操作(推迟写,不得不写时才往磁盘写推迟写,不得不写时才往磁盘写)I/O设备缓冲区工作区用户进程I/O设备缓冲区工作区用户进程缓冲区控制块缓冲区控制块nUNIX为磁盘的读写操作设置了一组缓冲区。为磁盘的读写操作设置了一组缓冲区。n每个缓冲区两部分构成:每个缓冲区两部分构成:q缓冲区数据区:存放文件信息缓冲区数据区:存放文件信息q缓冲区控制块:用于缓冲区的管理缓冲区控制块:用于缓冲区的管理状态设备号块号指向数据区空闲
42、缓冲队列向前指针设备缓冲队列向前指针空闲缓冲队列向后指针设备缓冲队列向后指针缓冲区控制块缓冲区队列缓冲区队列缓冲区1缓冲区2缓冲区3缓冲区4空闲缓冲区队列缓冲区3缓冲区2缓冲区7缓冲区8缓冲区1缓冲区4缓冲区5缓冲区6设备2缓冲区队列设备1缓冲区队列队列管理队列管理缓冲区1缓冲区2缓冲区3缓冲区4空闲队列缓冲区2缓冲区3缓冲区4空闲队列缓冲区5某设备缓冲队列缓冲区6设备请求分配一个缓冲区某设备缓冲队列缓冲区1Flag:busy缓冲区5缓冲区6队列管理队列管理缓冲区2缓冲区3缓冲区4空闲队列某设备缓冲队列缓冲区1缓冲区5缓冲区6归还5号缓冲区延迟写延迟写缓冲区2缓冲区3缓冲区4缓冲区5空闲队列延
43、迟延迟写写某设备缓冲队列缓冲区1缓冲区5缓冲区6延迟延迟写写队列管理队列管理缓冲区2缓冲区3缓冲区4空闲队列某设备缓冲队列缓冲区1缓冲区5缓冲区6归还5号缓冲区缓冲区2缓冲区3缓冲区4缓冲区5空闲队列某设备缓冲队列缓冲区1缓冲区5缓冲区6队列管理队列管理某设备缓冲队列缓冲区1缓冲区5缓冲区6缓冲区5缓冲区3缓冲区4空闲缓冲另一设备申请一个缓冲区缓冲区3缓冲区4空闲缓冲某设备缓冲队列缓冲区1缓冲区6另一设备缓冲队列缓冲区5缓冲区7队列管理队列管理某设备缓冲队列缓冲区1缓冲区5缓冲区6缓冲区5缓冲区3缓冲区4空闲缓冲另一设备申请一个缓冲区延迟写延迟写退出空闲缓冲队列,请求I/O,写磁盘,清除”延迟写”标记,挂到空闲队列尾缓冲区3缓冲区4缓冲区5空闲缓冲某设备缓冲队列缓冲区1缓冲区5缓冲区6缓冲区的检索缓冲区的检索n进程读文件或者写文件时,需要知道具体的磁盘进程读文件或者写文件时,需要知道具体的磁盘块号,块号,UNIX中,读写信息通过缓冲区来传送,中,读写信息通过缓冲区来传送,因而需要为磁盘块寻找缓冲区。因而需要为磁盘块寻找缓冲区。n检索缓冲区的过程由检索缓冲区的过程由getblk(设备号,块号设备号,块号)完成完成Getblk(2,5)过程过程状态设备号:2块号:5状态设备号:2块号:5空闲缓冲设备缓冲空闲缓冲状态:busy设备号:2块号:5设备缓冲