热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

操作系统课堂问答笔记25习题答案

课堂笔记学习视频来自操作系统说明:其他”课堂问答笔记“也在”操作系统“专栏【5-7】1、什么是“饥饿”现象?哪些磁盘调度算法会导致“饥饿”现象发生&#

课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏


【5-7】


1、什么是“饥饿”现象?哪些磁盘调度算法会导致“饥饿”现象发生?

答:按照某种磁盘调度算法,可能会导致有些磁道总是得不到的访问(可能磁道优先级低),这就是“饥饿”现象。最短寻道时间优先(SSTF)算法会导致“饥饿”现象发生,因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足(也就是距离磁头当前所在磁道的距离较远的磁道总是得不到访问)。

2、简述FCFS、SSTF、SCAN、CSCAN算法的基本原理(NStepSCAN和FSCAN调度算法不要求)

答:给出磁头将要访问的磁道号序列,以及磁盘调度算法(可能还包括当前磁头的移动方向),计算磁头总的寻道距离(寻道长度)或者平均寻道距离(寻道长度)是经常出现在各类考试中的典型题目。

先来先服务(FCFS)算法:根据进程请求访问磁盘的先后次序进行调度。

最短寻道时间优先(SSTF) 算法:该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短(因为磁头可能经常往复运动,导致时间消耗过多)。

扫描(SCAN)算法:也叫电梯算法,总是从磁头当前位置开始,沿磁头的移动方向去选择离当前磁头最近的那个磁道。假设沿磁头的方向无请求访问时,就改变磁头的移动方向。采用这样的调度算法。需要设置两个队列。依据磁头的移动方向,能访问到的磁道由近及远排序。背离磁头移动方向的磁道也由近及远排队。先按磁头当前移动方向调度第一个队列,当该方向没有磁道时,再改变方向,调度另一个队列。

循环扫描(CSCAN)算法:也叫单向电梯算法、铲雪机算法(名字很形象的),循环扫描调度算法是在扫描算法的基础上改进的。磁头改为单项移动,由外向里。当前位置开始沿磁头的移动方向去选择离当前磁头最近的那个磁道。如果沿磁头的方向无请求访问时,再回到最外,访问磁道号最小的磁道。

例子如下(从左到右,从上到下依次使用FCFS、SSTF、SCAN、CSCAN算法):

 

3、高速磁盘缓冲,磁盘容错和廉价冗余磁盘阵列等内容是第8章磁盘存储器管理的内容(不要求),了解几个概念:

高速磁盘缓存:磁盘高速缓存是一种软件机制,它允许系统把通常存放在磁盘上的一些数据保留在RAM(内存)中,以便对那些数据的进一步访问而不用再访问磁盘。因为对同一磁盘数据的反复访问频繁发生,所以磁盘高速缓存对系统性能至关重要。与磁盘交互的用户进程可能需要反复请求读或写同一磁盘数据。此外,不同的进程可能也需要在不同的时间访问相同的磁盘数据。分配一些内存空间作为采用高速磁盘缓冲可以极大地提高磁盘I/O速度。

提高磁盘I/O速度的其它方法(除磁盘高速缓存外):提前读,延迟写,优化物理块的分布,虚拟盘。

廉价冗余磁盘阵列:磁盘阵列(Redundant Arrays of Independent Disks,RAID):独立磁盘构成的具有冗余能力的阵列,磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,把相同的数据存储在多个硬盘的不同的地方(冗余)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错性能。

 


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文介绍了Memcached分布式集群中的取模算法和一致性哈希算法的原理及其对缓存命中率的影响。通过详细分析,探讨了如何优化这些算法以提高系统的稳定性和性能。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
author-avatar
葫芦娃才是萌神
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有