《[精选]操作系统设备管理培训教材(PPT 79页).pptx》由会员分享,可在线阅读,更多相关《[精选]操作系统设备管理培训教材(PPT 79页).pptx(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4/18/20231第五章第五章第五章第五章 设备管理设备管理设备管理设备管理qI/O系统系统 qI/O控制方式控制方式 q缓冲管理缓冲管理 q设备分配设备分配q设备处理设备处理q磁盘存储器管理磁盘存储器管理4/18/20232缓冲管理缓冲管理缓冲管理缓冲管理q缓冲的引入缓冲的引入q单缓冲和双缓冲单缓冲和双缓冲q循环缓冲循环缓冲q缓冲池缓冲池Buffer Pool4/18/20233缓冲的引入缓冲的引入缓冲的引入缓冲的引入q缓和缓和CPU与与I/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾 数据到达速率与其离去速率不同数据到达速率与其离去速率不同q减少对减少对CPU的中断频率,放宽对的中断频
2、率,放宽对CPU中断响应时中断响应时间的限制间的限制1位缓冲位缓冲9.6 Kb/s(a)中断中断CPU的频的频率为率为9.6Kb/s,每,每100 s中中断一次断一次CPUCPU必须在必须在100 s内响内响应,否则数据应,否则数据会被冲掉会被冲掉8位缓冲寄存器位缓冲寄存器送内存送内存9.6 Kb/s(b)中断中断CPU的频率降的频率降低为低为9.6Kb/8 4/18/20234缓冲的引入缓冲的引入缓冲的引入缓冲的引入8位缓冲寄存器位缓冲寄存器9.6 Kb/s送内存送内存(c)q提高提高CPU和和I/O设备之间的并行性设备之间的并行性v提高系统的吞吐量和设备的利用率提高系统的吞吐量和设备的利用
3、率每每800 s中断一中断一次次CPU4/18/20235缓冲管理缓冲管理缓冲管理缓冲管理q缓冲的引入缓冲的引入q单缓冲和双缓冲单缓冲和双缓冲q循环缓冲循环缓冲q缓冲池缓冲池Buffer Pool4/18/20236单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲q单缓冲单缓冲Single Buffer CT时时,每块数每块数据的处理时间是据的处理时间是M+T;反之,为;反之,为M+C,即,即由于由于C和和T可并行,可并行,M和和C或或M和和T不能并行不能并行因此处理一块数据时间:因此处理一块数据时间:MaxC,T+M4/18/202372.双缓冲双缓冲Double Buffer 为了
4、加快输入、输出速度和提高设备利用率,又引入了双缓冲工作方式,也称为缓冲对换Buffer Swapping方式。在设备输入时,先将数据输入第一缓冲区,装满后便转向第二缓冲区。操作系统可从第一缓冲区中移出数据送用户进程区,接着由CPU对数据进行计算。4/18/20238单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲q双缓冲双缓冲Double Buffer 效率有所提高,且进一步平滑了传输峰值。效率有所提高,且进一步平滑了传输峰值。系统处理一块数据的时间约为:系统处理一块数据的时间约为:MAXC,T4/18/20239单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲单缓冲和双缓冲只能实现单向只能
5、实现单向的数据传输的数据传输为了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区。4/18/202310缓冲管理缓冲管理缓冲管理缓冲管理q缓冲的引入缓冲的引入q单缓冲和双缓冲单缓冲和双缓冲q循环缓冲循环缓冲q缓冲池缓冲池Buffer Pool4/18/202311循环缓冲循环缓冲循环缓冲循环缓冲q循环缓冲的引入循环缓冲的引入v当输入与输出速度基本匹配时,双缓冲能获得较好效当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度相差较大时,可引入多个大小相等缓果;当速度相差较大时,可引入多个大小相等缓冲,组织成循环缓冲的形式冲,组织成循环缓冲的形式q循
6、环缓冲的组成循环缓冲的组成v多个缓冲区多个缓冲区用于装输入数据的空缓冲区用于装输入数据的空缓冲区R已装满数据的满缓冲区已装满数据的满缓冲区G计算进程正在使用的现行工作缓冲区计算进程正在使用的现行工作缓冲区Cv多个指针多个指针指示计算进程下一可用缓冲区指示计算进程下一可用缓冲区Nextg指示输入进程下一可用空缓冲区指示输入进程下一可用空缓冲区Nexti指示计算进程正在使用的缓冲区指示计算进程正在使用的缓冲区Current4/18/202312循环缓冲循环缓冲循环缓冲循环缓冲类型:类型:R:空缓冲;空缓冲;G:满缓冲;:满缓冲;C:当前缓冲:当前缓冲4/18/202313循环缓冲循环缓冲循环缓冲循
7、环缓冲q循环缓冲区的使用循环缓冲区的使用vGetbuf过程过程为计算进程和输入进程提供缓冲区,并移动指针为计算进程和输入进程提供缓冲区,并移动指针vReleasebuf过程过程当计算进程或输入使用完缓冲区后,调用过程将缓当计算进程或输入使用完缓冲区后,调用过程将缓冲区释放冲区释放q进程同步进程同步输入、计算进程并行输入、计算进程并行vNexti指针追赶上指针追赶上Nextg指针指针输入进程速度大于计算进程,全部空缓冲区已满,输入进程速度大于计算进程,全部空缓冲区已满,无可用缓冲区,输入进程阻塞系统受计算限制无可用缓冲区,输入进程阻塞系统受计算限制vNextg指针追赶上指针追赶上Nexti指针指
8、针计算进程速度大于输入进程,全部缓冲区空,无可计算进程速度大于输入进程,全部缓冲区空,无可用数据,计算进程阻塞系统受用数据,计算进程阻塞系统受I/O限制限制4/18/202314缓冲管理缓冲管理缓冲管理缓冲管理q缓冲的引入缓冲的引入q单缓冲和双缓冲单缓冲和双缓冲q循环缓冲循环缓冲q缓冲池缓冲池Buffer Pool4/18/202315缓冲池缓冲池缓冲池缓冲池Buffer PoolBuffer Poolq缓冲池的组成缓冲池的组成v专用缓冲的利用率不高,与环形缓冲不同的是缓冲池专用缓冲的利用率不高,与环形缓冲不同的是缓冲池中的缓冲区是系统的公用资源,可供多个进程共享,中的缓冲区是系统的公用资源,
9、可供多个进程共享,既能用于输入,也能用于输出既能用于输入,也能用于输出v缓冲区类型缓冲区类型空闲缓冲区空闲缓冲区装满输入数据的缓冲区装满输入数据的缓冲区装满输出数据的缓冲区装满输出数据的缓冲区v缓冲队列:按其使用情况缓冲队列:按其使用情况空缓冲队列空缓冲队列emq输入队列输入队列inq输出队列输出队列outq4/18/202316缓冲池缓冲池缓冲池缓冲池Buffer PoolBuffer Poolq缓冲池的组成缓冲池的组成v四种工作缓冲区四种工作缓冲区用于收容输入数据的工作缓冲区用于收容输入数据的工作缓冲区hin用于提取输入数据的工作缓冲区用于提取输入数据的工作缓冲区sin用于收容输出数据的工
10、作缓冲区用于收容输出数据的工作缓冲区hout用于提取输出数据的工作缓冲区用于提取输出数据的工作缓冲区sout4/18/202317缓冲池缓冲池缓冲池缓冲池Buffer PoolBuffer Poolq两个对缓冲区操作的过程两个对缓冲区操作的过程vGetbuftype,type-队列类型队列类型 vPutbuftype,number,number-指某缓冲指某缓冲区区v队列是临界资源需设置队列是临界资源需设置互斥信号量互斥信号量MS,每个队列一个,每个队列一个MStype资源信号量资源信号量RS,每个队列一个,每个队列一个RStypev队列操作过程队列操作过程Takebuftype:取:取typ
11、e所指队列队首缓所指队列队首缓冲区冲区Addbuftype,number:将:将number所指所指缓冲区加到缓冲区加到type所指队列尾所指队列尾4/18/202318缓冲池缓冲池缓冲池缓冲池Buffer PoolBuffer Pool Procedure Getbuftype begin WaitRStype;WaitMStype;Bnumber:=Takebuftype;/从队首摘下一个从队首摘下一个缓冲区缓冲区 SignalMStype;end Procedure Putbuftype,number begin WaitMStype;Addbuftype,number;/将指定缓冲区挂
12、在将指定缓冲区挂在type指定队指定队列上列上 SignalMStype;SignalRStype;end 互斥信号量MStype资源信号量RStype4/18/202319缓冲池缓冲池缓冲池缓冲池Buffer PoolBuffer Poolq缓冲池的组成缓冲池的组成v四种工作缓冲区四种工作缓冲区用于收容输入数据的工作缓冲区用于收容输入数据的工作缓冲区hin用于提取输入数据的工作缓冲区用于提取输入数据的工作缓冲区sin用于收容输出数据的工作缓冲区用于收容输出数据的工作缓冲区hout用于提取输出数据的工作缓冲区用于提取输出数据的工作缓冲区sout4/18/202320缓冲池缓冲池缓冲池缓冲池Bu
13、ffer PoolBuffer Poolq缓冲区工作方式缓冲区工作方式hinsoutsinhout收容输入收容输入提取输出提取输出用用户户进进程程提取输入提取输入收容输出收容输出缓冲池缓冲池GetbufemqPutbufinq,hinGetbufinqPutbufemp,sinGetbufemqPutbufoutq,houtGetbufoutqPutbufemq,sout4/18/2023213.缓冲区的工作方式缓冲区的工作方式 图 5-15 缓冲区的工作方式 v1.收容输入;2.提取输入;3.收容输出;4.提取输出1.hin=getbufemq;putbufinq,hin2.sin=getb
14、ufinq;计算;putbufemq,sin3.hout=getbufemq;putbufoutq,hout4.sout=getbufoutq;输出;putbufemq,sout4/18/202322缓冲缓冲q无缓冲时问题分析:设备直接向进程地址无缓冲时问题分析:设备直接向进程地址空间传送数据如用户从磁带中读数据块空间传送数据如用户从磁带中读数据块的操作,则进程要么忙等待,要么阻塞。的操作,则进程要么忙等待,要么阻塞。v如果用忙等待方式,则浪费大量如果用忙等待方式,则浪费大量CPU时间;时间;v如果是阻塞方式,则进程阻塞在设备的如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,请求队列
15、中。这时,不能将进程全部换出,不能将进程全部换出,还可能出现单进程死锁。进程在等待还可能出现单进程死锁。进程在等待I/O操操作结果之前被换出,等待作结果之前被换出,等待I/O事件,而事件,而I/O操操作也被阻塞,等待该进程被换入。作也被阻塞,等待该进程被换入。4/18/202323第五章第五章第五章第五章 设备管理设备管理设备管理设备管理qI/O系统系统 qI/O控制方式控制方式 q缓冲管理缓冲管理 q设备分配设备分配q设备处理设备处理q磁盘存储器管理磁盘存储器管理4/18/202324设备分配设备分配设备分配设备分配q设备分配中的数据结构设备分配中的数据结构q设备分配时应考虑的因素设备分配时
16、应考虑的因素q设备独立性设备独立性q独占设备的分配程序独占设备的分配程序qSPOOLing技术技术4/18/202325设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构q在多道程序环境下,系统中的设备所有进程共享,在多道程序环境下,系统中的设备所有进程共享,为防止进程对系统资源的无序竞争,必须由系统为防止进程对系统资源的无序竞争,必须由系统统一分配设备统一分配设备q某进程向系统提出某进程向系统提出I/O请求时,设备分配程序按请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交
17、换据传输通路,以供主机和设备间信息交换q为实现设备分配,系统中应设置相应的数据结构,为实现设备分配,系统中应设置相应的数据结构,对每台设备、通道、控制器的情况进行登记对每台设备、通道、控制器的情况进行登记4/18/2023265.4 设设 备备 分分 配配 5.4.1 设备分配中的数据结构设备分配中的数据结构 1.设备控制表设备控制表DCT2.控制器控制表控制器控制表COCT3.通道控制表通道控制表CHCT4.系统设备表系统设备表SDT 4/18/202327设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构q设备控制表设备控制表DCT设备类型设备类型 type设
18、备标识符:设备标识符:deviceid设备状态:等待设备状态:等待/不等待不等待 忙忙/闲闲指向控制器表指向控制器表COCTCOCT的指针的指针重复执行次数或时间重复执行次数或时间设备队列的队首指针设备队列的队首指针DCT 1DCT 2DCT n设设备备控控制制表表集集合合每个设备一张,记录本设备的情况每个设备一张,记录本设备的情况正使用,则忙标志正使用,则忙标志置置1;假设与其相连;假设与其相连的控制器或通道忙,的控制器或通道忙,则等待标志置则等待标志置1请求本设备未满请求本设备未满足的进程足的进程PCB队队列列4/18/202328设备分配中的数据结构设备分配中的数据结构设备分配中的数据结
19、构设备分配中的数据结构q控制器控制表、控制器控制表、通道控制表通道控制表控制器标识符:控制器标识符:controllerid控制器状态:忙控制器状态:忙/闲闲与控制器连接的通道表指针与控制器连接的通道表指针控制器队列的队首指针控制器队列的队首指针控制器队列的队尾指针控制器队列的队尾指针通道标识符:通道标识符:channelid通道状态:忙通道状态:忙/闲闲与通道连接的控制器表首址与通道连接的控制器表首址通道队列的队首指针通道队列的队首指针通道队列的队尾指针通道队列的队尾指针(a)控制器表控制器表COCT(b)通道表通道表CHCT一个控制器一张一个控制器一张一个通道一张一个通道一张4/18/20
20、2329设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构设备分配中的数据结构q系统设备表系统设备表SDT 系统系统设备表设备表SDT表目表目1表目表目i设备类设备类设备标识符设备标识符DCT驱动程序入口驱动程序入口整个系统一张,记录已被连接到系统中的所有物理设备的情况整个系统一张,记录已被连接到系统中的所有物理设备的情况4/18/202330设备分配设备分配设备分配设备分配q设备分配中的数据结构设备分配中的数据结构q设备分配时应考虑的因素设备分配时应考虑的因素q设备独立性设备独立性q独占设备的分配程序独占设备的分配程序qSPOOLing技术技术4/18/2023315.4.2 设备
21、分配时应考虑的因素设备分配时应考虑的因素 为了使系统有条不紊地工作,系统在进行设备分配时,应考虑这样几个因素:1设备的固有属性;2设备分配算法;3设备分配的安全性;4设备独立性。4/18/202332设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素q设备的固有属性设备的固有属性v独占性独占性一段时间内,只允许一个进程独占,大多数低度速一段时间内,只允许一个进程独占,大多数低度速/设备都属于独享设备设备都属于独享设备v共享性共享性允许多个进程同时共享,如磁盘、磁鼓之类的外存允许多个进程同时共享,如磁盘、磁鼓之类的外存储器,既具有很能大的存储容量,其定位操作
22、的时储器,既具有很能大的存储容量,其定位操作的时间又短间又短v可虚拟性可虚拟性独占设备经某种技术处理,改造成虚拟设备,把一独占设备经某种技术处理,改造成虚拟设备,把一台输入机虚拟为几台台输入机虚拟为几台“虚拟的输入机。例如:为虚拟的输入机。例如:为了提高设备利用率引入了脱机输入输出或采用了提高设备利用率引入了脱机输入输出或采用SPOOLing技术,变一台为技术,变一台为“多台设备多台设备缺点:设备得缺点:设备得不到充分利用,不到充分利用,可能产生死锁可能产生死锁4/18/202333设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素q设备分配设备分配v独占
23、设备独占设备防止死锁防止死锁v共享设备共享设备由于同时有多个进程同时访问,且访问频繁,就会由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时效劳的顺序,使平均效劳时虑多个访问请求到达时效劳的顺序,使平均效劳时间越短越好。间越短越好。注意各进程的访问次序进行合理调度注意各进程的访问次序进行合理调度v虚拟设备虚拟设备4/18/202334设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素设备分配时应考虑的因素q设备分配算法设备分配算法v先来先效劳先来先效劳v优先级高者优先优先级高者
24、优先q设备分配中的安全性设备分配中的安全性v安全分配方式安全分配方式每当进程发出每当进程发出I/O请求后,便进入阻塞状态,请求后,便进入阻塞状态,I/O操作完成后唤醒操作完成后唤醒优点:摒弃了优点:摒弃了“请求和保持条件,不会产生死锁请求和保持条件,不会产生死锁v不安全分配方式不安全分配方式 进程发出进程发出I/O请求后仍继续运行,继续申请请求后仍继续运行,继续申请I/O设设备备优点:可操作多个设备,推进迅速优点:可操作多个设备,推进迅速缺点:推进缺点:推进速度缓慢速度缓慢缺点:可能缺点:可能产生死锁产生死锁4/18/202335缓冲的引入缓冲的引入缓冲的引入缓冲的引入q缓和缓和CPU与与I/
25、O设备间速度不匹配的矛盾设备间速度不匹配的矛盾v数据到达速率与其离去速率不同数据到达速率与其离去速率不同q减少对减少对CPU的中断频率,放宽对的中断频率,放宽对CPU中断响应时中断响应时间的限制间的限制q提高提高CPU和和I/O设备之间的并行性设备之间的并行性v提高系统的吞吐量和设备的利用率提高系统的吞吐量和设备的利用率4/18/202336缓冲缓冲q无缓冲时问题分析:设备直接向进程地址无缓冲时问题分析:设备直接向进程地址空间传送数据如用户从磁带中读数据块空间传送数据如用户从磁带中读数据块的操作,则进程要么忙等待,要么阻塞。的操作,则进程要么忙等待,要么阻塞。v如果用忙等待方式,则浪费大量如果
26、用忙等待方式,则浪费大量CPU时间;时间;v如果是阻塞方式,则进程阻塞在设备的如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,请求队列中。这时,不能将进程全部换出,不能将进程全部换出,还可能出现单进程死锁。还可能出现单进程死锁。v进程在等待进程在等待I/O操作结果之前被换出,等待操作结果之前被换出,等待I/O事件,而事件,而I/O操作也被阻塞,等待该进程操作也被阻塞,等待该进程被换入。被换入。4/18/202337设备分配设备分配设备分配设备分配q设备分配中的数据结构设备分配中的数据结构q设备分配时应考虑的因素设备分配时应考虑的因素q设备独立性设备独立性q独占设备的分配程序独占设备的
27、分配程序qSPOOLing技术技术4/18/202338设备独立性设备独立性设备独立性设备独立性q设备独立性设备独立性Device Independence的概念的概念v为了提高为了提高OS的可适应性和可扩展性,在现代的可适应性和可扩展性,在现代OS中都中都毫无例外地实现了设备独立性,也称为设备无关性毫无例外地实现了设备独立性,也称为设备无关性v定义:是指用户在编制程序时所使用的设备与实际定义:是指用户在编制程序时所使用的设备与实际使用的设备无关。即使用的设备无关。即 应用程序独立于具体使用的物应用程序独立于具体使用的物理设备理设备v为了实现设备独立性而引入了为了实现设备独立性而引入了逻辑设备
28、逻辑设备和和物理设备物理设备这两个概念这两个概念v在应用程序中,在应用程序中,使用使用逻辑设备逻辑设备名称来请求使用某类名称来请求使用某类设备;而系统在实际执行时,设备;而系统在实际执行时,还必须使用还必须使用物理设备物理设备名称名称v系统须具有将逻辑设备名称转换为某物理设备名称系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的的功能,这非常类似于存储器管理中所介绍的逻辑逻辑地址地址和和物理地址物理地址的概念的概念4/18/202339设备独立性设备独立性设备独立性设备独立性q设备独立性的优点设备独立性的优点v设备分配时的灵活性设备分配时的灵活性系统可将该逻辑
29、设备类中的任一台分配给进系统可将该逻辑设备类中的任一台分配给进程使用程使用所有设备均占用时才阻塞所有设备均占用时才阻塞v易于实现易于实现I/O重定向重定向所谓所谓I/O重定向,指用于重定向,指用于I/O操作的设备可操作的设备可以更换,而不必改变应用程序以更换,而不必改变应用程序如调试程序时输出到屏幕,而实际应用时改如调试程序时输出到屏幕,而实际应用时改为输出到打印机为输出到打印机4/18/202340设备独立性设备独立性设备独立性设备独立性q设备独立性软件设备独立性软件v设备驱动程序是一个与硬件或设备紧密相关的软设备驱动程序是一个与硬件或设备紧密相关的软件。件。v设备驱动程序一方面可以定制以适
30、合各种设备,另一设备驱动程序一方面可以定制以适合各种设备,另一方面也提供了一组标准接口。方面也提供了一组标准接口。v设备驱动程序的作用是为内核设备驱动程序的作用是为内核I/O子系统隐藏设备控子系统隐藏设备控制器之间的差异制器之间的差异v为了实现设备独立性,必须在设备驱动程序上设置一为了实现设备独立性,必须在设备驱动程序上设置一层软件,称为设备独立性软件层软件,称为设备独立性软件4/18/2023412.设备独立性软件设备独立性软件 为了实现设备独立性,必须再将驱动程序之上设备一层软件,称为设备独立性软件,其主要功能可分为以下两个方面:1执行所有设备的公有操作 2向用户层或文件层软件提供统一接口
31、。4/18/2023422.设备独立性软件设备独立性软件 1 执行所有设备的公有操作 对独立设备的分配与回收分配与回收;将逻辑设设备备名名映映射射为物理设备名,进一步可以找到相应物理设备的驱动程序;对设备进行保护设备进行保护,禁止用户直接访问设备;缓缓冲冲管管理理,即对字符设备和块设备的缓冲区进行有效的管理,以提高I/O的效率;过过失失控控制制。由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。4/18/202343 2 向用户层或文件层软件提供统一接口 无论何种设备,它们向用户所提供的接口应该是相同的。例如,对各种设
32、备的读操作,在应用程序中都使用read;而对各种设备的写操作,也都使用write。4/18/202344设备独立性设备独立性设备独立性设备独立性q逻辑设备名到物理设备名映射的实现逻辑设备名到物理设备名映射的实现 v逻辑设备表逻辑设备表Lgical Unit Table用于实现将应用程序中的逻辑设备名映射为物理设用于实现将应用程序中的逻辑设备名映射为物理设备名备名逻辑设备名逻辑设备名物理设备名物理设备名驱动程序驱动程序入口地址入口地址/dev/tty/dev/printer3510242046逻辑设备名逻辑设备名/dev/tty/dev/printer系统设备表指针系统设备表指针35(a)(b)
33、LUT的设置可采取两种方式:整个系统设置一张整个系统设置一张LUT。不允许在LUT中具有相同的逻辑设备名,这就是要求所有用户不使用相同的逻辑设备名。为每个用户设置一张为每个用户设置一张LUT。用户建立一个进程,同时也为之建立一张LUT。4/18/202345设备分配设备分配设备分配设备分配q设备分配中的数据结构设备分配中的数据结构q设备分配时应考虑的因素设备分配时应考虑的因素q设备独立性设备独立性q独占设备的分配程序独占设备的分配程序qSPOOLing技术技术4/18/202346独占设备的分配程序独占设备的分配程序独占设备的分配程序独占设备的分配程序q基本的设备分配程序基本的设备分配程序v分
34、配设备分配设备v分配控制器分配控制器v分配通道分配通道4/18/2023474/18/202348独独独独占占占占设设设设备备备备的的的的分分分分配配配配程程程程序序序序分配设备分配设备1分配控制器分配控制器1分配通道分配通道1申请设备申请设备1按设备物理名查按设备物理名查SDT设备忙?设备忙?根据安全策略进行分配根据安全策略进行分配由由DCT查查COCT分配控制器分配控制器由由COCT查查CHCT分配通道分配通道否是由由SDT查设备查设备 DCT4/18/202349独占设备的分配程序独占设备的分配程序独占设备的分配程序独占设备的分配程序q设备分配程序的改进设备分配程序的改进v基本分配程序的
35、问题基本分配程序的问题进程以物理设备名提出进程以物理设备名提出I/O请求请求采用单通路采用单通路I/O系统结构,容易产生瓶颈系统结构,容易产生瓶颈v改进方案改进方案增加设备独立性增加设备独立性 考虑多通路情况考虑多通路情况4/18/202350为进程为进程P P分配所需的分配所需的I/OI/O设备设备从从SDTSDT表查该类设备的控制表表查该类设备的控制表DCTDCT不忙不忙不安全不安全分配此设备给进程分配此设备给进程P P不忙不忙不忙不忙分配此控制器给进程分配此控制器给进程P P分配此通道给进程分配此通道给进程P P启动启动I/O,I/O,进行进行具体的具体的I/OI/O操作操作忙忙进程进程
36、P P的的PCBPCB放入放入此设备的等待队列此设备的等待队列YN忙忙进程进程 P P 的的 PCB PCB 放入放入此控制器的等待队列此控制器的等待队列YNY忙忙Y进程进程P P的的PCBPCB放入此放入此通道的等待队列通道的等待队列NYNN多通多通路设路设备分备分配流配流程示程示意图意图由由DCTDCT检查该设备忙否检查该设备忙否?检查分配此设备的安全性检查分配此设备的安全性?最后一个最后一个DCT?DCT?最后一个最后一个COCT?COCT?最后一个最后一个DCT?DCT?此设备连接的此设备连接的COCTCOCT忙否忙否?此控制器连接的此控制器连接的CHCTCHCT忙否忙否?最后一个最后
37、一个COCT?COCT?最后一个最后一个CHCT?CHCT?4/18/202351设备分配设备分配设备分配设备分配q设备分配中的数据结构设备分配中的数据结构q设备分配时应考虑的因素设备分配时应考虑的因素q设备独立性设备独立性q独占设备的分配程序独占设备的分配程序qSPOOLing技术技术4/18/202352脱机输入脱机输入脱机输入脱机输入/输出输出输出输出Off-Line I/OOff-Line I/O方式方式方式方式硬件不断开展,硬件不断开展,CPU速度的提高、系统规模扩大,人机速度的提高、系统规模扩大,人机矛盾严重,如何解决?矛盾严重,如何解决?磁带磁带磁带磁带4/18/202353SP
38、OOLingSPOOLing技术技术技术技术q什么是什么是SPOOLing技术技术v为了缓和为了缓和CPU的高速性与的高速性与I/O设备低速性间的设备低速性间的矛盾而引入了脱机输入、矛盾而引入了脱机输入、脱机输出技术脱机输出技术v在多道程序环境下,其中的一道程序模拟脱在多道程序环境下,其中的一道程序模拟脱机输入时的外围控制机功能机输入时的外围控制机功能v在主机的直接控制下,实现脱机输入、在主机的直接控制下,实现脱机输入、输出输出功能,此时的外围操作与功能,此时的外围操作与CPU对数据的处理对数据的处理同时进行同时进行v把这种在联机情况下实现的同时外围操作称把这种在联机情况下实现的同时外围操作称
39、为为SPOOLingSimultaneaus Periphernal Operating On-Line,或称为,或称为假脱机操作假脱机操作4/18/202354SPOOLingSPOOLing技术技术技术技术qSPOOLing系统的组成系统的组成v输入井和输出井输入井和输出井在磁盘上的两个存储空间在磁盘上的两个存储空间输入井模拟脱机输入,暂存输入数据输入井模拟脱机输入,暂存输入数据输出井模拟脱机输出,暂存输出数据输出井模拟脱机输出,暂存输出数据v输入缓冲区和输出缓冲区输入缓冲区和输出缓冲区用来缓和用来缓和CPU与磁盘之间的速度的矛盾与磁盘之间的速度的矛盾v输入进程输入进程SPi和输出进程和输
40、出进程SPo模拟脱机模拟脱机I/O时的外围控制机时的外围控制机4/18/202355脱机输入脱机输入脱机输入脱机输入/输出输出输出输出Off-Line I/OOff-Line I/O方式方式方式方式磁带磁带磁带磁带4/18/202356SPOOLingSPOOLing技术技术技术技术4/18/202357SPOOLingSPOOLing技术技术技术技术q共享打印机共享打印机v打印机为独占设备,利用打印机为独占设备,利用SPOOLing技术,技术,可将之改造为共享设备可将之改造为共享设备v用户请求打印时,用户请求打印时,SPOOLing系统处理如下系统处理如下由输出进程在输出井中为之申请一个空闲
41、由输出进程在输出井中为之申请一个空闲磁盘块区,磁盘块区,并将要打印的数据送入其中并将要打印的数据送入其中输出进程再为用户进程申请一张空白的用输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入户请求打印表,并将用户的打印要求填入其中,其中,再将该表挂到请求打印队列上再将该表挂到请求打印队列上4/18/202358SPOOLingSPOOLing技术技术技术技术qSPOOLing系统特点系统特点v提高了提高了I/O的速度的速度v将独占设备改造为共享设备将独占设备改造为共享设备v实现了虚拟设备功能实现了虚拟设备功能4/18/202359SPOOLingSPOOLing技术技术技
42、术技术SPOOLing技术今天仍被广泛使用技术今天仍被广泛使用q网络文件传送网络文件传送 先把文件送到网络先把文件送到网络SPOOLing目录,然后网络值目录,然后网络值班进程把它取出并传递到目标地址班进程把它取出并传递到目标地址qInternet电子邮件系统电子邮件系统 为了寄邮,调用电子邮件程序为了寄邮,调用电子邮件程序 待发信存在待发信存在SPOOLing中供以后传输中供以后传输q注意:注意:SPOOLing只提高设备利用率,缩短用户只提高设备利用率,缩短用户程序执行时间,并不提高程序执行时间,并不提高CPU利用率利用率4/18/202360第五章第五章第五章第五章 设备管理设备管理设备
43、管理设备管理qI/O系统系统 qI/O控制方式控制方式 q缓冲管理缓冲管理 q设备分配设备分配q设备处理设备处理q磁盘存储器管理磁盘存储器管理4/18/202361设备处理设备处理设备处理设备处理q中断处理程序的处理过程中断处理程序的处理过程q设备驱动程序的功能和特点设备驱动程序的功能和特点q设备驱动程序的处理过程设备驱动程序的处理过程q独立于设备的效劳软件独立于设备的效劳软件4/18/202362设备处理设备处理设备处理设备处理系统层次结构系统层次结构接收上层软件发来接收上层软件发来的抽象要求的抽象要求read/write,转,转换成具体的要求,换成具体的要求,发给设备控制器发给设备控制器将
44、由设备控制将由设备控制器发来的信号器发来的信号送给上层软件送给上层软件4/18/202363I/OI/O中断处理程序中断处理程序中断处理程序中断处理程序q中断处理程序中断处理程序v系统为每类设备设置一个中断处理程系统为每类设备设置一个中断处理程序,它们的入口地址被存放在内存的固定单序,它们的入口地址被存放在内存的固定单元中,元中,称为中断向量。称为中断向量。v 当某台设备完成一次操作时,发出中当某台设备完成一次操作时,发出中断信号,接受中断信号,暂停现行进断信号,接受中断信号,暂停现行进程的执行,根据中断向量转到相应的程的执行,根据中断向量转到相应的中断处理程序执行。中断处理程序执行。v中断处
45、理程序的基本工作包括:保存中断处理程序的基本工作包括:保存现行进程的执行现场;通知等待该操现行进程的执行现场;通知等待该操作完成的进程;最终转入进程调度程序进行作完成的进程;最终转入进程调度程序进行重新调度。重新调度。4/18/202364中断处理程序的处理过程中断处理程序的处理过程中断处理程序的处理过程中断处理程序的处理过程PSW程序状态字程序状态字PC(N1)程序计数器程序计数器R0Rn寄存器寄存器开始开始返回返回用户程序用户程序中断服务子例程中断服务子例程PSWPC(N1)中断栈中断栈TTM栈指针栈指针YNN1R0Rn4/18/202365中断处理程序的处理过程中断处理程序的处理过程中断
46、处理程序的处理过程中断处理程序的处理过程I/O完成后,驱动程完成后,驱动程序必须检查本次序必须检查本次I/O操作中是否发生了错操作中是否发生了错误,并向上层软件报误,并向上层软件报告,最终向调用者报告,最终向调用者报告本次告本次I/O的执行情的执行情况况4/18/202366设备处理设备处理设备处理设备处理q中断处理程序的处理过程中断处理程序的处理过程q设备驱动程序的功能和特点设备驱动程序的功能和特点q设备驱动程序的处理过程设备驱动程序的处理过程q独立于设备的效劳软件独立于设备的效劳软件4/18/202367设备处理设备处理设备处理设备处理系统层次结构系统层次结构4/18/202368设备驱动
47、程序的功能和特点设备驱动程序的功能和特点设备驱动程序的功能和特点设备驱动程序的功能和特点q设备处理程序又称为设备驱动程序,是设备处理程序又称为设备驱动程序,是I/O进程进程与设备控制器之间的通信程序与设备控制器之间的通信程序q不管是哪种设备驱动程序,它的功能是相同的不管是哪种设备驱动程序,它的功能是相同的v接接收收用用户户的的I/O请请求求命命令令和和参参数数,并并将将命命令令中中的的抽抽象象要要求求转转换换为为具具体体要要求求I/O请请求求块块,例例如如,将将磁盘块号转换为磁盘的盘面、磁盘块号转换为磁盘的盘面、磁道号及扇区号磁道号及扇区号v检查用户检查用户I/O请求的合法性,了解请求的合法性
48、,了解I/O设备的状态,设备的状态,传递有关参数,设置设备的工作方式传递有关参数,设置设备的工作方式v发出发出I/O命令并检查设备状态,空闲则启动命令并检查设备状态,空闲则启动I/O完成完成指定的操作,忙碌则指定的操作,忙碌则将请求者的请求块挂将请求者的请求块挂到相应设到相应设备的备的I/O请求队列请求队列v及时响应由控制器或通道发来的中断请求并处理及时响应由控制器或通道发来的中断请求并处理v假设计算机系统设置有通道,则驱动程序根据用户假设计算机系统设置有通道,则驱动程序根据用户的的I/O请求,自动地构成通道程序请求,自动地构成通道程序4/18/202369设备驱动程序的功能和特点设备驱动程序
49、的功能和特点设备驱动程序的功能和特点设备驱动程序的功能和特点q注意注意v每每类类设设备备有有一一个个I/O请请求求队队列列,在在系系统统初初始始化化时时,将系统中所有设备的将系统中所有设备的I/O请求队列置为空请求队列置为空v在在系系统统初初启启时时,系系统统为为每每类类设设备备创创立立一一个个进进程程其其中中的的一一种种方方式式,执执行行程程序序就就是是该该设设备备的的设设备备驱驱动动程程序序。由由于于系系统统初初启启时时,相相应应的的I/O请请求求队队列为空,则在该队列上睡眠列为空,则在该队列上睡眠v一旦有一旦有I/O请求块挂入,唤醒该设备驱动进程。请求块挂入,唤醒该设备驱动进程。它被调度
50、到时,从队列中取出一个它被调度到时,从队列中取出一个I/O请求块,请求块,并按该块的内容执行一次并按该块的内容执行一次I/O操作,发出操作,发出I/O完完成或出错中断信号。然后,检查请求队,假成或出错中断信号。然后,检查请求队,假设为空,则进入睡眠状态,否则,取下一个请求设为空,则进入睡眠状态,否则,取下一个请求块块4/18/202370设备驱动程序的功能和特点设备驱动程序的功能和特点设备驱动程序的功能和特点设备驱动程序的功能和特点q在不同的系统,设备驱动程序的运行方式在不同的系统,设备驱动程序的运行方式v在整个系统中设置一个在整个系统中设置一个I/O进程,统一负责所进程,统一负责所有设备的驱