os8输入∕输出管理.pptVIP

  • 2
  • 0
  • 约1.42万字
  • 约 71页
  • 2018-02-11 发布于江西
  • 举报
os8输入∕输出管理

62 电梯调度 电梯调度算法 从当前 I/O请求的磁盘位置开始,沿着臂的移动方向 将请求按磁盘扇区的顺序排序; 总是选择离当前位置最近的那个I/O请求; 如果在磁盘移动方向上无请求访问时,就改变移动 方向再选择。 输入∕输出管理——Linux系统的设备驱动 63 一个新请求加入设备请求队列时的操作 若队列中存在一个与新请求的磁盘扇区相邻的请 求,则将新请求与这个已存在的请求合并成为一个 请求; 若无相邻的请求,新请求插入到按扇区递增的合适 的位置; 如果队列中不存在该请求合适的插入位置,新请求 被插入到队列的尾部; 如果队列中存在一个驻留时间过长的请求,那么新 请求插入到队尾,以防止旧请求发生饥饿。 输入∕输出管理——Linux系统的设备驱动 64 6. 策略例程 什么是策略例程 设备驱动程序包含一个函数或一组函数,这些函数称为 策略例程; 例程与设备控制器一起来处理设备请求队列的I/O请求。 策略例程的调用 I/O调度程序通过请求队列描述符中的requst_fn方法来调 用策略例程,并将请求队列描述符的地址传递该该例程。 输入∕输出管理——Linux系统的设备驱动 65 策略例程处理I/O请求的方法 一种简单的方式是策略例程等待直到数据传送完成, 然后将已经处理过的I/O请求从队列中删除,继续处理 下一个请求,直到队列为空才结束。 另一个处理方式是中断方式 其处理效率高,为许多现代设备驱动程序所采用。 输入∕输出管理——Linux系统的设备驱动 66 在中断方式下,通用块层、I/O调度程序、设备驱动程序的策略例程和中断处理程序之间的关系 通用块层将一个I/O操作请求发送给I/O调度程序; I/O调度程序在相应的块设备请求队列上进行处理,产 生一个新请求或扩展一个已有的请求,然后终止; 块设备队列若为空,当加入一个新请求时块设备驱动程 序被激活;否则,会一个接一个地处理请求队列上的每 一个请求。设备驱动程序调用策略例程,选择一个待处 理的请求,设置磁盘控制器,以便在数据传送完成时产 生一个中断,然后策略例程终止; 输入∕输出管理——Linux系统的设备驱动 67 当磁盘控制器产生中断时,在该设备对应的中断处理程 序会重新调用策略例程。这时,策略例程可能处理以下 两种情况之一: 当前请求的所有数据块已经传送完成,则将该请求 从设备请求队列中删除,然后开始处理下一个请求; 当前请求的所有数据块还没有传送完成,则为当前 请求再启动一次数据传送,这通常称为中断驱动。 输入∕输出管理——Linux系统的设备驱动 68 设备管理的基本概念 I/O管理的功能 设备独立性 定义 优点 设备控制块 定义 缓冲技术 什么是缓冲,引入缓冲的目的 常用的缓冲技术 双缓冲技术 UNIX缓冲管理中的空闲缓冲区的淘汰算法 输入∕输出管理——小结 69 设备分配 常用的设备分配技术 独享设备 独享分配 定义 共享设备 共享分配 定义 虚拟设备 虚拟技术 定义 Spooling系统 定义 I/O控制 I/O控制的主要功能 请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系 输入∕输出管理——小结 70 Linux系统的设备驱动 Linux系统设备的分类 设备文件、主设备号、次设备号 bio结构、设备请求队列 I/O调度程序的主要工作 合并、排序 电梯调度算法 输入∕输出管理——小结 30 3. 虚拟分配 虚拟技术 所谓虚拟技术,是在一类物理设备上模拟另一类物理设备的技术,是将独占设备转化为共享设备的技术。 虚拟设备 通常把用来代替独占型设备的那部分外存空间(包括有关的控制表格)称为虚拟设备。 输入∕输出管理——设备分配 31 虚拟分配 当进程需要与独占型设备交换信息时,系统将分配磁盘空间,并建立相应的数据结构,这种分配方法称为设备的虚拟分配。 输入∕输出管理——设备分配 虚宽行1 虚宽行2 进程A 进程B 进程C 进程D 输入井 输出井 输入机 打印机 虚输入机1 虚输入机2 32 4. SPOOLING系统 SPOOLING系统提供外围设备同时联机操作的功能。 设计思想 预输入 在作业需要数据前,OS已将所需数据预先输入到辅存输入井存放。 当作业 (或进程) 需要数据时,可直接从辅存中读入主存。 缓输出 在在作业执行

文档评论(0)

1亿VIP精品文档

相关文档