chapter7-设备管理

上传人:tia****nde 文档编号:67800861 上传时间:2019-01-09 格式:PPT 页数:43 大小:579.31KB
返回 下载 相关 举报
chapter7-设备管理_第1页
第1页 / 共43页
chapter7-设备管理_第2页
第2页 / 共43页
chapter7-设备管理_第3页
第3页 / 共43页
chapter7-设备管理_第4页
第4页 / 共43页
chapter7-设备管理_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《chapter7-设备管理》由会员分享,可在线阅读,更多相关《chapter7-设备管理(43页珍藏版)》请在金锄头文库上搜索。

1、5、缓冲技术实现的基本思想: 进程执行写操作输出数据时,向系统申请一个缓冲区,若为顺序写请求,则不断把数据填到缓冲区,直到被装满。此后,进程继续它的计算,系统将缓冲区内容写到I/O设备上。 进程执行读操作输入数据时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程,7.3 缓冲管理(3),5、缓冲技术实现的基本思想(续): 在输出数据时,只有在系统还来不及腾空缓冲区而进程又要写数据时,它才需要等待; 在输入数据时,仅当缓冲区空而进程又要从中读取数据时,它才被迫等待 6、缓冲的实现方式: 采用硬件缓冲器实现; 在内存划出一块区

2、域,专门用来存放临时输入输出的数据,这个区域称为缓冲区,7.3 缓冲管理(4),单缓冲,在设备和处理机之间设置一个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。 特点:缓冲区数只有一个;设备与处理机对缓冲区的操作是串行的。,一块数据的处理时间,在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?,系统对每一块数据的处理时间为:Max(T,C)+M,双缓冲,在设备和处理机之间设置2个缓冲。设备

3、与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。因缓冲区有2个,提高了设备与处理机并行操作的程度,只有当两个均为空时,需数据的进程才等待。 特点:缓冲区数有2个;设备与处理机对缓冲区的操作可并行,提高了设备与处理机并行操作的程度。,一块数据的处理时间,在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?,系统对一块数据的处理时间: MAX(C+M,T),双机通信时缓冲区的设置,循环缓冲,在设备和处理机之

4、间设置多个大小相等的缓冲区,这些缓冲区构成环形,每一个缓冲区中含一指针指向下一个缓冲区,最后一个指向第一个缓冲区。,循环缓冲的组成,多个缓冲区: 用于装输入数据的空缓冲区R 已装满数据的缓冲区G 计算进程正在使用的现行工作缓冲区C 多个指针: 指示输入进程下次可用的空缓冲区R的指针Nexti 指示计算进程下次可用缓冲区G的指针Nextg 指示计算进程正在使用的缓冲区C的指针Current 特点:缓冲区的数量有多个;设备与处理机对缓冲区的操作可并行,进一步提高了设备与处理机并行操作的程度。,循环缓冲,缓冲区的使用 Getbuf过程 Releasebuf过程 进程同步 Nexti指针追赶上Next

5、g指针输入进程阻塞 Nextg指针追赶上Nexti指针计算进程阻塞,1、缓冲池:将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。缓冲池通常由若干大小相同的缓冲区组成,是系统的公用资源,任何进程都可以申请使用缓冲池中的各个缓冲区。 2、缓冲池的组成(数据结构) 三个队列:空缓冲队列emq、装满输入数据队列inq、装满输出数据队列outq 四个工作缓冲区: 收容输入数据的缓冲区hin、提取输入数据的缓冲区sin、收容输出数据的缓冲区hout、提取输出数据的缓冲区sout,缓冲池(1),缓冲池(2),三个队列:空缓冲队列emq、装满输入数据队列inq、装满输出数据队列outq 四

6、个工作缓冲区: 收容输入数据的缓冲区、提取输入数据的缓冲区、收容输出数据的缓冲区、提取输出数据的缓冲区,3、Getbuf过程和Putbuf过程 Procedure Getbuf(type) begin wait(rs(type); wait(ms(type); B(number):=Takebuf(type); signal(ms(type); end,缓冲池(3),Procedure Putbuf(type) begin wait(ms(type); Addbuf(type,number); signal(ms(type); signal(rs(type); end,注:Takebuf(ty

7、pe)用于从type所指的队列的队首摘下一缓冲区 Addbuf(type,number)用于将由number所指示的缓冲区B挂在type队列上,4、操作系统对缓冲池的管理-工作方式,输入进程需要输入数据时:输入设备 收容输入缓冲区-Getbuf(emq)和Putbuf(inq,hin) 1)从空缓冲队列emq的队首取一空缓冲区用作收容输入缓冲区hin 2)输入设备将数据输入收容输入缓冲区并装满 3)将此缓冲区挂到装满输入数据队列inq队尾。 计算进程需要输入数据时:提取输入缓冲区 CPU -Getbuf(inq)和Putbuf(emq,sin) 1)从装满输入数据队列inq队首取一满缓冲区用作

8、提取输入缓冲区sin 2)CPU从提取输入缓冲区中取出数据至用完 3)将空缓冲区挂到空缓冲队列emq队尾。,4、操作系统对缓冲池的管理-工作方式,计算进程需要输出数据时:CPU 收容输出缓冲区-Getbuf(emq)和Putbuf(outq,hout) 1)从空缓冲队列emq队首取一空缓冲区用作收容输出缓冲区hout 2)CPU将数据输入其中并装满 3)将收容输出缓冲区挂到装满输出数据队列outq队尾。 输出进程需要输出数据时:提取输出缓冲区 输出设备-Getbuf(outq)和Putbuf(emq,sout) 1)从装满输出数据队列outq队首取一满缓冲区用作提取输出缓冲区sout 2)输出

9、设备从中取出数据至用完 3)将空缓冲区挂到空缓冲队列emq队尾,4、操作系统对缓冲池的管理-工作方式,7.4 I/O 软件,I/O 软件的设计目标和原则 中断处理程序 设备驱动程序 设备独立性软件 用户层的I/O软件,7.4.1 I/O软件的设计目标和原则,总体设计目标 高效性 确保I/O设备和CPU并行执行,提高资源利用率 通用性 提供简单抽象、清晰统一的接口,采用统一标准的方法,来管理所有的设备和所需的I/O操作 采用层次结构的I/O软件 低层软件 实现与硬件相关的操作,屏蔽硬件的具体细节 高层软件 向用户提供一个简洁、友好、规范的接口,7.4.1 I/O软件的设计目标和原则,I/O软件应

10、达到以下几个目标 与具体设备无关 屏蔽设备的具体细节,向高层提供抽象的逻辑设备,并完成逻辑设备和具体物理设备的映射 统一命名 所有软件都以逻辑名称访问设备,与具体设备无关,7.4.1 I/O软件的设计目标和原则,I/O软件应达到以下几个目标(续) 对错误的处理 尽可能在接近硬件的层面处理错误 缓冲技术 设备的分配和释放 I/O控制方式 合理选择I/O控制方式,例打印机(中断驱动)、磁盘(DMA控制方式),7.4.1 I/O软件的设计目标和原则,层次式结构的I/O软件(四个层次),用户层软件,设备独立性软件,设备驱动程序,中断处理程序,硬件,I/O请求,I/O应答,执行I/O操作,产生I/O请求

11、、格式 化I/O、Spooling,映射,保护,分块, 缓冲,分配,设置设备寄存器,检 查寄存器状态,当I/O结束时,唤醒驱动程序,7.4.1 I/O软件的设计目标和原则,层次式结构的I/O软件(四个层次)(续) 用户层软件 实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备操作 设备独立性软件 负责实现与设备驱动器的统一接口、设备命名、设备保护以及设备的分配与释放,提供存储空间,7.4.1 I/O软件的设计目标和原则,层次式结构的I/O软件(四个层次)(续) 设备驱动程序 与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序 中

12、断处理程序 用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程,7.4.2 中断处理程序(1),中断处理层的主要工作 进行进程上下文的切换 对处理中断信号源进行测试 读取设备状态 修改进程状态 中断处理程序的处理过程 唤醒被阻塞的驱动程序进程 保护被中断进程的CPU环境 分析中断原因,转入相应的设备处理程序 进行中断处理 恢复被中断进程的现场,7.4.2 中断处理程序(2),7.4.3 设备驱动程序,是I/O进程与设备控制器之间的通信程序,常以进程的形式存在,主要任务 接收上层软件发来的抽象I/O要求 转换为具体要求后,发送给设备控

13、制器,启动设备去执行 将由设备控制器发来的信号传送给上层软件 修改进程状态 设备驱动程序的功能 设备处理方式 设备驱动程序的特点 设备驱动程序的处理过程,设备驱动程序的功能,将接收到的抽象要求转换为具体要求。 检查用户I/O请求的合法性,I/O设备状态,传参数,设置设备的工作方式。 按处理机的I/O请求去启动指定的设备进行I/O操作 及时响应由控制器或通道发来的中断请求,并进行相应处理 按I/O请求构成相应通道程序。,设备处理方式,为每一类设备设置一进程,专门执行其I/O操作。 在整个系统中设置一个进程,执行所有的I/O操作。 不设置专门的设备处理进程,而为各类设备设置相应的设备驱动程序。,设

14、备驱动程序的特点,是请求I/O的进程与设备控制器之间的一个通信程序。 与设备控制器和I/O设备的硬件特性紧密相关 与I/O设备所采用的I/O控制方式紧密相关 与硬件紧密相关,因而其中一部分程序必须用汇编语言编写。 驱动程序应允许可重入 驱动程序不允许系统调用,但可以允许对某些内核过程的调用,设备驱动程序的的处理过程,将接收到的抽象要求转换为具体要求。 检查用户I/O请求的合法性 读出和检查 I/O设备状态 传送必要参数 设置设备的工作方式。 按处理机的I/O请求去启动指定的设备进行I/O操作,7.4.4 设备独立性软件,设备独立性概念(设备无关性) 设备独立性的实现 逻辑设备(应用程序)和物理

15、设备(执行) 设备分配时的灵活性 易于实现I/O重定向 设备独立性软件 执行所有设备的公有操作 向用户层(文件层)软件提供统一的接口 逻辑设备名到物理设备名映射的实现 逻辑设备表LUT(Logical Unit Table) LUT设置问题 整个系统设置一张LUT ;每个用户设一张LUT,用于单用户系统,用于多用户系统,设备独立性相关概念,设备独立性概念(设备无关性) 为提高OS的可适应性和可扩展性,而将应用程序独立于具体使用的物理设备。 I/O重定向 指用于I/O操作的设备可以更换,即重定向,而不必改变应用程序。 所有设备的公有操作 独立设备的分配与回收;将逻辑设备名映射为物理设备名;对设备

16、进行保护(禁止直接访问);缓冲管理;差错控制。,逻辑设备表LUT(Logical Unit Table),(a),(b),7.4.5 用户层的I/O软件,大部分I/O软件都在操作系统内部,仍有一小部分在用户层 与用户程序链接在一起的库函数 完全运行在内核之外的一些程序(如Spooling系统),用户层软件,设备独立性软件,设备驱动程序,中断处理程序,硬件,I/O请求,I/O应答,执行I/O操作,产生I/O请求、格式 化I/O、Spooling,映射,保护,分块, 缓冲,分配,设置设备寄存器,检 查寄存器状态,I/O系统的层次及功能,I/O操作结束时,唤醒驱动程序,7.5 设备分配,设备分配中的数据结构 设备分配的策略/应考虑的因素 独占设备的分配程序 SPOOLING技术,7.5.1 设备分配中的数据结构,设备控制表DCT (Device Control Table) 控制器控制表COCT (COntroller Control Table) 通道控

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号