




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统对每一块数据的处理时间为Max(C,T)+M。,系统对每一块数据的处理时间为Max(C,T),Review,计算进程P1,调用Getbuf过程,R,R,G,G,G,G,Nexti,Nextg,C,Current,Nextg,使用数据,输入进程P2,调用Getbuf过程,使用空缓冲区,Nexti,R:空缓冲区G:满缓冲区,计算进程P1,调用Releasebuf过程,R,R,C,G,G,G,Current,R,Nextg,用完数据,输入进程P2,调用Releasebuf过程,输满数据,Nexti,G,hin,sin,sout,hout,用户程序,提取输入,收容输入,提取输出,收容输出,缓冲池,L(emq),14,12,10,6,3,F(emq),收容输入buf,提取输入buf,收容输出buf,提取输出buf,三个队列,四个工作区,注意:池中有015共16个buffers,目前I/O软件已普遍采用层次式结构,将系统中的设备操作和管理软件分为若干个层次,每一层都利用其下层提供的服务,完成输入、输出功能中的某些子功能,并屏蔽这些功能实现的细节,向高层提供服务。通常分为以下四层:,用户层软件,设备独立性软件,设备驱动程序,中断处理程序,硬件,产生I/O请求、格式化I/O、Spooling,映射、保护、分块、缓冲、分配,设置设备寄存器,检查寄存器状态,执行I/O操作,I/O系统举例,用户层软件,设备独立性软件,设备驱动程序,中断处理程序,硬件,假设某OS采用页式存储管理方式,1.用户进程试图从文件中读一个数据块C#中的StreamReaderJava中的BufferReader因为有设备独立性软件,所以用户写程序时不必关心具体的硬盘型号及生产厂商;2.设备独立性软件收到请求后,会在快表中查找该页面3.如果没有,会调用设备驱动程序向硬件发出一个请求,设备驱动程序已经与具体的硬盘设备紧密相关。由设备驱动程序负责控制硬盘的硬部件读取目标数据块。4.当磁盘操作完成后,由硬件产生一个中断;5.转入中断处理程序,检查中断原因,提取设备状态;6.转入设备驱动,唤醒用户进程,结束本次I/O请求,继续用户进程的运行。,补充,以对磁盘读为例:假设:要读的磁盘文件已打开请求者进程请求读文件的某一个记录或根据读写指针读若干字符,请求者进程发出I/0请求(读记录)通过系统调用陷入核态设备独立性软件对请求的参数进行处理(确定记录所在的设备和一维物理块号)向驱动进程传递R/W的请求块(数据块:含记录所在的设备、及一维块号)唤醒设备驱动进程请求者进程自行阻塞,1)进程I/0请求,2)磁盘驱动进程执行,磁盘驱动进程执行输入buf中有所需要的记录?Y把记录从buf中分离出来送请求者的数据区唤醒请求者磁盘驱动进程自行阻塞,N,根据CAW从内存取一条通道指令指令送CCWCAW指向下条指令执行CCW指令(I/O操作)是最后一条CH指令否?YCH发中断请求,N,3)CH程序执行,4)中断处理:,5)驱动进程再次执行,驱动进程再次执行R正确否?Y把记录从输入buf中分离出来送请求者的数据区唤醒请求者驱动进程自行阻塞(等待新的I/O请求到来),反复启动CH若干次若是永久性错误,错误号返回给独立性软件设备独立性软件将错误返回给请求者终止请求者,6)请求者进程再次执行,以下简要总结全过程,第五章设备管理,5.0引言(补充)5.1I/O系统5.2I/O控制方式5.3缓冲管理5.4I/O软件5.5设备分配5.6磁盘存储器的管理,SDT(SystemDevicesTable):系统设备表,整个系统一张,记录系统拥有的全部设备。,5.5设备分配,功能:在内存buffer与设备之间建立数据传输通路,内存,CH,控制器,设备,问题:系统如何得知当前各部件的使用情况,并对其进行管理呢?借助四种表格完成。SDT,COCT,CHCT,DCT。,一.设备分配的数据结构(四种表格),DCT(DeviceControlTable):设备控制表,每台设备一张,记录设备使用情况。COCT(ControllerControlTable):控制器控制表,每个控制器一张,记录控制器使用情况。CHCT(ChannelControlTable):通道控制表,每个CH一张,记录CH使用情况。,分配时依次查表,同时考虑到分配的安全性,决定分配与否。,DCT1,DCT2,DCTn,设备类型:type,设备标识符:deviceid,设备状态:等待/不等待忙/闲,指向控制器表的指针,重复执行次数或时间,设备队列的队首指针,图5-20设备控制表,设备控制表集合,(1)设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。(2)设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。,(3)与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。(4)重复执行次数。由于外部设备在传送数据时,较易发生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行的次数。在重复执行时,若能恢复正常传送,则仍认为传送成功。仅当屡次失败,致使重复执行次数达到规定值而传送仍不成功时,才认为传送失败。,控制器表COCT,通道表CHCT,系统设备表SDT,2)分配算法先请求先服务:请求进程依次排入设备请求队列。优先级高者优先:请求进程按优先级排入设备请求队列。,二.设备分配考虑的四个因素,1)设备属性独占设备:考虑分配安全性,并采用独占分配策略。共享设备:可同时分给多个进程,对进程的访问次序进行合理调度。虚拟设备:可同时分给多个进程,对进程访问该设备的先后次序进行合理调度。,设备请求队列,4)设备独立性进程用逻辑设备名请求使用物理设备.,设备分配灵活。便于实现I/O重定向。,Printer有5台,物理编号为15,如何请求打印机?,3)安全性独占设备分配要进行安全性检查,以防死锁。,5)逻辑设备表LUT,设备分配中的安全性1)安全分配方式每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。2)不安全分配方式进程在发出I/O请求后仍继续运行,需要时又发出第二个I/O请求,第三个I/O请求等。此时增加功能,对本次的设备分配是否会发生死锁进行安全性计算。,独占设备的分配程序基本的设备分配程序(1)分配设备(2)分配控制器(3)分配通道设备分配程序的改进(1)增加设备的独立性(2)考虑多通路情况,内存,CH,控制器,设备,当某进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配。1)分配设备首先根据I/O请求中的物理设备名,查找系统设备表(SDT),从中找出该设备的DCT,再根据DCT中的设备状态字段,可知该设备是否正忙。若忙,便将请求I/O进程的PCB挂在设备队列上;否则,便按照一定的算法来计算本次设备分配的安全性。如果不会导致系统进入不安全状态,便将设备分配给请求进程;否则,仍将其PCB插入设备等待队列。,2)分配控制器在系统把设备分配给请求I/O的进程后,再到其DCT中找出与该设备连接的控制器的COCT,从COCT的状态字段中可知该控制器是否忙碌。若忙,便将请求I/O进程的PCB挂在该控制器的等待队列上;否则,便将该控制器分配给进程。3)分配通道在该COCT中又可找到与该控制器连接的通道的CHCT,再根据CHCT内的状态信息,可知该通道是否忙碌。若忙,便将请求I/O的进程挂在该通道的等待队列上;否则,将该通道分配给进程。只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功。然后,便可启动该I/O设备进行数据传送。,2设备分配程序的改进仔细研究上述基本的设备分配程序后可以发现:进程是以物理设备名来提出I/O请求的;采用的是单通路的I/O系统结构,容易产生“瓶颈”现象。为此,应从以下两方面对基本的设备分配程序加以改进,以使独占设备的分配程序具有更强的灵活性,并提高分配的成功率。,1)增加设备的独立性为了获得设备的独立性,进程应使用逻辑设备名请求I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上;而只要有一个该类设备可用,系统便进一步计算分配该设备的安全性。,2)考虑多通路情况为了防止在I/O系统中出现“瓶颈”现象,通常都采用多通路的I/O系统结构。此时对控制器和通道的分配同样要经过几次反复,即若设备(控制器)所连接的第一个控制器(通道)忙时,应查看其所连接的第二个控制器(通道),仅当所有的控制器(通道)都忙时,此次的控制器(通道)分配才算失败,才把进程挂在控制器(通道)的等待队列上。而只要有一个控制器(通道)可用,系统便可将它分配给进程。,3.独占设备分配程序,功能:用快速直接存取设备(通常用磁盘)把慢速独占设备改造成若干个逻辑上的对应体(虚设备)。,四Spooling技术,表面上的脱机,实际上的联机操作。又称之为:伪脱机操作。,输入进程SPi,输出进程SPo,输入缓冲区Bi,输出缓冲区Bo,输入井,输出井,输入设备,输出设备,图5-22SPOOLing系统的组成,SPOOLing系统主要有以下三部分:(1)输入井和输出井。这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。(2)输入缓冲区和输出缓冲区。为了缓和CPU和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。,输入进程SPi,输出进程SPo,输入缓冲区Bi,输出缓冲区Bo,输入井,输出井,输入设备,输出设备,图5-22SPOOLing系统的组成,(3)输入进程SPi和输出进程SPo。这里利用两个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;进程SPo模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。,输入进程SPi,输出进程SPo,输入缓冲区Bi,输出缓冲区Bo,输入井,输出井,输入设备,输出设备,图5-22SPOOLing系统的组成,输入井与输出井为高速磁盘上开辟的两部分专用空间。,2、spooling系统的输入进程spi、输出进程spo,Spi、Spo进程又称之精灵进程(daemon),平时阻塞。输入机有作业、或输入井有空闲空间时被唤醒。把作业通过输入buf送输入井。输入机空闲、或输入井满则阻塞。,1)Spooling输入进程SPi:对作业进行预输入,平时阻塞。需要输出时被唤醒,给进程分配虚打印机。输出井有作业,则逐个打印。无事可做,则阻塞。,2)Spooling输出进程SPo:,对作业结果进行缓输出,根据输出次序建立一个“请求打印表”的输出队列(可考虑挂到SPo的PCB上)。请求打印表包括:要打印的文件名、打印要求、井中地址等。,3)Spooling系统当前多用于共享打印机和网络通信中。,进程请求打印,Spo给进程分配虚打印机(输出井中若干盘块),将进程输出数据送虚打印机(输出文件)。,输出井中的输出数据通过一个类似目录的Sp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 谁的花园大课件
- 2025年二手房买卖居间服务合同范本(含税费承担)
- 2025版防火玻璃防火卷帘门购销及安装合同
- 2025年度水路货物运输与船舶维修保养合同范本
- 2025版绿色金融融资中介服务合同范本
- 2025版船舶维修保养劳务合同范本
- 2025年智能电网用柴油发电机采购及监控合同
- 2025版墙体租赁与绿色生态保护合同
- 2025年度房地产项目投资合作协议
- 2025版科研机构研究员聘用合同书
- 2025年人教部编版小学三年级语文上册全册单元测试题及答案(全套)
- 碧桂园物业管理
- 全过程跟踪审计实施方案
- 新时代中小学教师职业行为十项准则
- 去极端化教育宣讲
- 《走进物联网》课件
- 2023-2024学年浙江省杭州市钱塘区六年级上期末数学试卷(附答案解析)
- 2025年农村土地承包权补充协议
- JJF(皖) 175-2024 电子辊道秤校准规范
- 2025年人教版(2024)高一化学下册阶段测试试卷含答案
- 《平面制作介绍》课件
评论
0/150
提交评论