操作系统复习(十五)——缓冲区管理与磁盘调度算法

缓冲区管理

1.缓冲区的引入
引入缓冲区的原因有很多,可归结为以下几点:
  (1) 缓和CPU与I/O设备间速度不匹配的矛盾。
  (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
  (3) 解决数据粒度不匹配的问题。
  (4) 提高CPU和I/O设备之间的并行性。

2.单缓冲区和双缓冲区
单缓冲区(Single Buffer)
  在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,如图所示。
在这里插入图片描述
双缓冲区(Double Buffer)
  缓冲区是共享资源,生产者与消费者在使用缓冲区时必须互斥,故而需要设置了两个缓冲区来提高效率。实现外部设备的并发。
在这里插入图片描述
如果在实现两台机器之间的通信时仅为它们配置了单缓冲,如图(a)所示,那么,它们之间在任一时刻都只能实现单方向的数据传输。例如,只允许把数据从A传送到B,或者从B传送到A,而绝不允许双方同时向对方发送数据。为了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区,如图(b)所示。
在这里插入图片描述
3.环形缓冲区
环形缓冲区的组成
  (1) 多个缓冲区。在环形缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C。
在这里插入图片描述
(2)多个指针。作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区G的Nextg、指示输入进程下次可用的空缓冲区R的指针Nexti,以及用于指示计算进程正在使用的缓冲区C的指针Current。

进程之间的同步问题
  使用输入循环缓冲,可使输入进程和计算进程并行执行。相应地,指针Nexti和指针Nextg将不断地沿着顺时针方向移动,这样就可能出现下述两种情况:
  (1) Nexti指针追赶上Nextg指针。
  (2) Nextg指针追赶上Nexti指针。

4.缓冲池
缓冲池的组成
  缓冲池管理着多个缓冲区,每个缓冲区由用于标识和管理的缓冲首部以及用于存放数据的缓冲体两部分组成。缓冲首部一般包括缓冲区号、设备号、设备上的数据块号、同步信号量以及队列链接指针等。为了管理上的方便,一般将缓冲池中具有相同类型的缓冲区链接成一个队列,于是可形成以下三个队列:
  (1) 空白缓冲队列emq。
  (2) 输入队列inq。
  (3) 输出队列outq。

缓冲区的工作方式
  缓冲区可以工作在如下四种工作方式,如图所示。
在这里插入图片描述

磁盘存储器的性能和调度

1.磁盘性能简述
数据的组织和格式:盘片、面、磁道、扇区
为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块

磁盘访问时间:设寻道时间为Ts,旋转延时Tr,传输时间Tt,访问时间Ta,启动磁臂时间s,磁头移动1条磁道所花时间 为m(常数),每次所读/写的字节数b,磁盘每秒转数r,则:
Ts=mn+s; Tr=1/(2r); Tt=b/(r*N); Ta=Ts+Tr+Tt;

2.磁盘调度算法
磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:

  • 先来先服务算法(FCFS)
  • 最短寻道时间优先算法(SSTF)
  • 扫描算法(SCAN)
  • 循环扫描算法(CSCAN)

先来先服务算法(FCFS)First Come First Service
这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。
此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。

最短寻道时间优先算法(SSTF) Shortest Seek Time First
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。
其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。

扫描算法(SCAN)电梯调度
扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。
由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。

循环扫描算法(CSCAN)
循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。

下面结合例子看一下,服务的顺序和计算磁头移动的总距离。
假设当前磁头在67号,要求访问的磁道号顺序为98,25,63,97,56,51,55,55,6 (电脑随机产生的,设定最外层磁道号为100号)

FIFO算法的服务序列是:98,25,63,97,56,51,55,55,6
磁头移动的总距离distance = (98-67)+(98-25)+(63-25)+(97-63)+(97-56)+(56-51)+(55-51)+(55-55)+(55-6)

SSTF算法的服务序列是: 63,56,55,55,51,25,6,97,98
磁头移动的总距离distance = (67-63)+(63-56)+(56-55)+(55-55)+(55-51)+(51-25)+(25-6)+(97-6)+(98-97)

SCAN算法的服务序列是:63,56,55,55,51,25,6,97,98
磁头移动的总距离distance = (67-63)+(63-56)+(56-55)+(55-55)+(55-51)+(51-25)+(25-6)+(97-6)+(98-97)

CSCAN算法的服务序列是(固定从外向里,此处设最外层为100):63,56,55,55,51,25,6,98,97
磁头移动的总距离distance = (67-63)+(63-56)+(56-55)+(55-55)+(55-51)+(51-25)+(25-6)+(100-98)+(98-97)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
包括操作系统各部分内容,适合考试及复习使用。搭配Xmind软件可打开 操作系统的概念、特征、功能和提供的服务   (二)操作系统的发展与分类   (三)操作系统的运行环境   1.内核态与用户态   2.中断、异常   3.系统调用   (四)操作系统体系结构   二、进程管理   (一)进程与线程   1.进程概念   2.进程的状态与转换   3.进程控制   4.进程组织   5.进程通信   共享存储系统,消息传递系统,管道通信。   6.线程概念与多线程模型   (二)处理机调度   1.调度的基本概念   2.调度时机、切换与过程   3.调度的基本准则   4.调度方式   5.典型调度算法   先来先服务调度算法,短作业(短进程、短线程)优先调度算法,时间片轮转   调度算法,优先级调度算法,高响应比优先调度算法,多级反馈队列调度算法。   (三)同步与互斥   1.进程同步的基本概念   2.实现临界区互斥的基本方法   软件实现方法,硬件实现方法。   3.信号量   4.管程   5.经典同步问题   生产者-消费者问题,读者-写者问题,哲学家进餐问题。   (四)死锁   1.死锁的概念   2.死锁处理策略   3.死锁预防   4.死锁避免   系统安全状态,银行家算法。   5.死锁检测和解除   三、内存管理   (一)内存管理基础   1.内存管理概念   程序装入与链接,逻辑地址与物理地址空间,内存保护。   2.交换与覆盖   3.连续分配管理方式   4.非连续分配管理方式   分页管理方式,分段管理方式,段页式管理方式。   (二)虚拟内存管理   1.虚拟内存基本概念   2.请求分页管理方式   3.页面置换算法   最佳置换算法(OPT),先进先出置换算法(FIFO),最近最少使用置换算法(LRU),时钟置换算法(CLOCK)。   4.页面分配策略   5.工作集   6.抖动   四、文件管理   (一)文件系统基础   1.文件概念   2.文件的逻辑结构   顺序文件,索引文件,索引顺序文件。   3.目录结构   文件控制块和索引节点,级目录结构和两级目录结构,树形目录结构,图形目录结构。   4.文件共享   5.文件保护   访问类型,访问控制。   (二)文件系统实现   1.文件系统层次结构   2.目录实现   3.文件实现   (三)磁盘组织与管理   1.磁盘的结构   2.磁盘调度算法   3.磁盘的管理   五、输入输出(I/O)管理   (一)I/O管理概述   1.I/O控制方式   2. I/O软件层次结构   (二)I/O核心子系统   1.I/O调度概念   2.高速缓存与缓冲区   3.设备分配与回收   4.假脱机技术(SPOOLing)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值