热门标签 | 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),储存冗余数据也增加了容错性能。

 


推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 深入理解一致性哈希算法及其应用
    本文详细介绍了分布式系统中的一致性哈希算法,探讨其原理、优势及应用场景,帮助读者全面掌握这一关键技术。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • MySQL PMM:MyISAM 和 Aria 存储引擎的性能优化
    本文探讨了 MyISAM 和 Aria 存储引擎在 MySQL 中的关键性能指标,包括密钥缓冲区效率、页面缓存读写性能以及事务日志同步策略。通过优化这些参数,可以显著提升数据库的整体性能。 ... [详细]
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社区 版权所有