第十一章 I/O管理和磁盘调度
2015-06-24 20:32:31 10 举报
AI智能生成
第十一章,阳光透过窗户洒在书桌上,照亮了那本翻开的书页。主人公坐在桌前,眼神专注,手指轻轻滑过每一个字,仿佛在与书中的人物进行对话。他的眉头微微皱起,似乎被书中的情节深深吸引。窗外的风轻轻吹动窗帘,带来了一丝清凉。他抬起头,看着窗外的世界,眼中闪过一丝思索。他知道,这一章的结束,意味着新的一章即将开始。他深吸一口气,再次投入到书的世界中。这一刻,时间仿佛静止,只有他和书,以及他们之间的对话。
作者其他创作
大纲/内容
了解
I/O Buffer
单缓冲
用户进程发出I/O请求后,操作系统在内存中分配一块缓冲区,输入
传送的数据被放到缓冲区中,传输完成后将该块转移到用户空间,并
立刻请求另一块。
设C是输入请求间的计算时间,T是输入一块需要的时间,M是将块转移到用户空间的时间
执行时间是:max(C,T)+M
双缓冲
在一个进程往这一个缓冲区中传送数据的同时,操作系统正在清空另一个缓存区。
单缓冲时I/O设备必须等待读取缓冲区中数据被完全读出才能再次写入,双缓冲设置
两块缓存区域以平滑这种趋势。我们可以粗略估计块的执行时间位max(C,T),
当C>=T是进程将不需要等待I/O,当C
循环缓冲
当爆发性的执行大量的I/O操作时,则仅有双缓冲就不够了,这种情况下使用多于两个缓冲
的方案来缓解,这种缓冲区域自身被当成循环区域使用。
I/O 设备划分
面向块的I/O设备
将信息保存在块中,块的大小通常是固定的,传输过程中一次传送一块。
面向流的I/O设备
以字节流的方式输入输出数据。
Cache的作用
利用了局部性原理保存最近访问的数据块,用于提高更好的磁盘性能。
理解
三种I/O模式
程序控制的I/O
中断控制的I/O
DMA
DMA操作
当处理器想读/写一块数据时,它通过向DMA模块发送以下信息来给DMA模块发出一条读/写命令:
1.有一个读/写操作请求,通过在处理器和DMA模块之间使用读写控制线发送。
2.相关的I/O设备地址,通过数据线传送
3.从存储器中度或者往存储器中写的起始单元,在数据线上传送,并由DMA模块保存在其地址寄存器中。
4.读/写的字数,再次通过数据线传送,并由DMA模块保存在其数据计数器寄存器中。
然后处理器可以继续其它工作,此时已经把这个I/O操作委托给DMA模块,传送结束后,DMA再给处理器发送一个中断请求。
驱动程序的概念
驱动程序是一种可以使计算机和设备通信的特殊程序,相当于硬件的接口,操作系统只能通过这个
接口,才能控制硬件设备的工作
描述I/O的功能层次
逻辑I/O
逻辑I/O层将I/O设备视为逻辑资源,不关心底层的细节。逻辑I/O代表用户进程管理的一
般I/O功能,允许它们根据设备标识符以及诸如打开、关闭、读取等操作与设备打交道。
设备I/O
请求的操作和数据(缓冲的数据、记录等)被转换成适当的I/O指令序列、通道命令和控
制器指令。
调度和控制
关于I/O操作的排队、调度和控制发生在这一层,可以在这一次处理中断,收集和报告I/O
状态。这一层是与I/O设备真正打交道的软件层。
一次磁盘读/写涉及的时间因素
寻道时间
机械臂移动到数据所在轨道的时间
旋转延迟
磁盘旋转到要读取的数据位置的时间,一般取平均时间即1/2r,其中r表示转速
存取时间
达到读或写的位置所需要的总时间,等于寻道时间和旋转延迟的总和
传送时间
磁头从磁盘中读/写数据所花费的时间 , T=b/rN,b表示要传送的字节数,N表示一个磁道中
的字节数,r表示旋转速度,单位为转/秒
磁盘调度算法
先进先出(FIFO)
先来的请求先服务,由于数据的请求式随机的,会导致较高的寻址时间,效率差。
最短时间优先(SSTF)
总是选择磁头臂移动最少的请求响应,对于移动距离相等的请求可以随机移动向一
边。同样如果一个进程大量的请求临近的数据会导致其它请求饥饿。
SCAN
SCAN要求磁头臂向一个方向移动,移动过程中响应在当前磁道的请求。当磁头臂到达最
外(内)层磁道时,再反向扫描。这种算法并没有很好的利用局部性原理,由于两侧的数
据被快速的扫描了两次因此它偏向于外围数据(局部性原理)。
C-SCAN
限定在一个方向扫描,当达到最后一个磁道时,磁头臂返回到相反方向的磁道末端重新开始扫描。
0 条评论
下一页
图形选择
思维导图
主题
补充说明
AI生成
提示
关闭后当前内容将不会保存,是否继续?
取消
确定