操作系统第5章设备管理(二).ppt
文本预览下载声明
第五章 设备管理 I/O系统 I/O控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理 缓冲管理 缓冲的引入 单缓冲和双缓冲 循环缓冲 缓冲池(Buffer Pool) 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾 数据到达速率与其离去速率不同 减少对CPU的中断频率,放宽对CPU中断响应时间的限制 缓冲的引入 提高CPU和I/O设备之间的并行性 提高系统的吞吐量和设备的利用率 缓冲管理 缓冲的引入 单缓冲和双缓冲 循环缓冲 缓冲池(Buffer Pool) 单缓冲和双缓冲 单缓冲(Single Buffer) 单缓冲和双缓冲 双缓冲(Double Buffer) 单缓冲和双缓冲 缓冲管理 缓冲的引入 单缓冲和双缓冲 循环缓冲 缓冲池(Buffer Pool) 循环缓冲 循环缓冲的引入 当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度相差较大时,可引入多个(大小相等)缓冲,组织成循环缓冲的形式 循环缓冲的组成 多个缓冲区 用于装输入数据的空缓冲区R 已装满数据的满缓冲区G 计算进程正在使用的现行工作缓冲区C 多个指针 指示计算进程下一可用缓冲区Nextg 指示输入进程下一可用空缓冲区Nexti 指示计算进程正在使用的缓冲区Current 循环缓冲 循环缓冲 循环缓冲区的使用 Getbuf过程 为计算进程和输入进程提供缓冲区,并移动指针 Releasebuf过程 当计算进程或输入使用完缓冲区后,调用过程将缓冲区释放 进程同步——输入、计算进程并行 Nexti指针追赶上Nextg指针 输入进程速度大于计算进程,全部空缓冲区已满,无可用缓冲区,输入进程阻塞(系统受计算限制) Nextg指针追赶上Nexti指针 计算进程速度大于输入进程,全部缓冲区空,无可用数据,计算进程阻塞(系统受I/O限制) 缓冲管理 缓冲的引入 单缓冲和双缓冲 循环缓冲 缓冲池(Buffer Pool) 缓冲池(Buffer Pool) 缓冲池的组成 专用缓冲的利用率不高,与环形缓冲不同的是缓冲池中的缓冲区是系统的公用资源,可供多个进程共享,既能用于输入,也能用于输出 缓冲区类型 空(闲)缓冲区 装满输入数据的缓冲区 装满输出数据的缓冲区 缓冲队列:按其使用情况 空缓冲队列emq 输入队列inq 输出队列outq 缓冲池(Buffer Pool) 缓冲池的组成 四种工作缓冲区 用于收容输入数据的工作缓冲区(hin) 用于提取输入数据的工作缓冲区(sin) 用于收容输出数据的工作缓冲区(hout) 用于提取输出数据的工作缓冲区(sout) 缓冲池(Buffer Pool) 两个对缓冲区操作的过程 Getbuf(type),type--队列类型 Putbuf(type,number),number--指某缓冲区 队列是临界资源需设置 互斥信号量MS,每个队列一个MS(type) 资源信号量RS ,每个队列一个RS(type) 队列操作过程 Takebuf(type) :取type所指队列队首缓冲区 Addbuf(type,number):将number所指缓冲区加到type所指队列尾 缓冲池(Buffer Pool) 缓冲池(Buffer Pool) 缓冲池的组成 四种工作缓冲区 用于收容输入数据的工作缓冲区(hin) 用于提取输入数据的工作缓冲区(sin) 用于收容输出数据的工作缓冲区(hout) 用于提取输出数据的工作缓冲区(sout) 缓冲池(Buffer Pool) 缓冲区工作方式 缓冲 无缓冲时问题分析:设备直接向进程地址空间传送数据(如用户从磁带中读数据块的操作),则进程要么忙等待,要么阻塞。 如果用忙等待方式,则浪费大量CPU时间; 如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,不能将进程全部换出,还可能出现单进程死锁。(进程在等待I/O操作结果之前被换出,等待I/O事件,而I/O操作也被阻塞,等待该进程被换入。) 第五章 设备管理 I/O系统 I/O控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理 设备分配 设备分配中的数据结构 设备分配时应考虑的因素 设备独立性 独占设备的分配程序 SPOOLing技术 设备分配中的数据结构 在多道程序环境下,系统中的设备所有进程共享,为防止进程对系统资源的无序竞争,必须由系统统一分配设备 某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换 为实现设备分配,系统中应设置相应的数据结构,对每台设备、通道、控制器的情况进行登记 设备分配中的数据结构 设备控制表DCT 设备分配中的数据结构 控制器控制表、 通道控制表 设备分配中的数据结构 系统设备表SDT 设备分配 设备分
显示全部