【操作系统概念】第12章:大容量存储阶段

文章目录

  • 0.前言
  • 12.1 概述
  • 12.2磁盘结构
  • 12.3 磁盘调度
    • 12.3.1 FCFS调度
    • 12.3.2 SSTF调度
    • 12.3.3 SCAN调度
    • 12.3.4 C-SCAN调度
    • 12.3.5 如何选择磁盘调度

0.前言

文件系统从逻辑上来看包括三部分。第10章讨论了文件系统的用户和程序员的接口。第11章描述了操作系统实现这种接口的内部数据结构和算法。本章讨论文件系统的最底层:次级存储(外存)结构。首先,描述磁盘和磁带的物理结构。然后,描述磁盘调度算法,以便调度磁盘I/O的次序来优化性能。接着,讨论磁盘格式化和启动块、坏块以及交换空间的管理。最后,分析RAID系统的结构。

本章目标:

  1. 描述外存设备的物理结构及其对设备使用的影响
  2. 解释大容量存储设备的性能特点
  3. 评估磁盘调度算法
  4. 讨论对大容量存储(包括RAIN)提供的操作系统服务

12.1 概述

在这里插入图片描述

文件系统的最底层:次级和三级存储结构。

  1. 传输速率:驱动器和计算机之间的数据传输速率
  2. 定位时间 / 随机访问时间:由寻道时间和旋转等待时间组成
  3. 寻道时间:移动磁臂到所要的柱面的时间
  4. 旋转等待时间:等待所要的扇区旋转到磁臂下所用的时间

12.2磁盘结构

现代磁盘驱动器可以看为是一个一维的逻辑块的数组,其按顺序映射到磁盘的扇区。扇区0是最外柱面的第一个磁道的第一个扇区。

逻辑块的映射顺序:先按磁道内的扇区顺序,再按柱面内的磁道顺序,再按柱面从外到内的顺序。

逻辑块是最小的传输单位。

12.3 磁盘调度

名词解释:

  1. 寻道时间:磁臂将磁头移动到包含目标扇区的柱面的时间。
  2. 旋转延迟:磁盘将目标扇区移动到磁头下的时间。
  3. 磁盘带宽:传递的总字节数 ÷ 从服务请求开始到结束的时间

访问时间主要包括寻道时间和旋转延迟,提高调度性能,需要从这两个方面考虑。

12.3.1 FCFS调度

先到先服务算法
会出现大摆动问题(122->14->124)

12.3.2 SSTF调度

最短寻道时间优先算法(shortest-seek-time-first ,SSTF)

选择距离当前磁头位置判定的最短寻道的位置。
是一种最短作业优先调度(SJF),可能会导致饥饿现象。
在这里插入图片描述

12.3.3 SCAN调度

也被称为电梯调度,磁臂从一端到另一端移动,处理经过的所有请求,随后改变移动方向,继续处理。
可能会导致另一端的请求虽然很多,但等待时间过长

12.3.4 C-SCAN调度

C-SCAN(circular SCAN)是SCAN调度的一个变种,将柱面当做环,每次从一端到另一端后,马上返回到磁盘开始,从头开始处理请求。

LOOK调度和C-LOOK调度

SCAN和C-SCAN是在整个磁盘范围内移动,但实际上只需要在有请求的最大区间范围内移动即可。

在向一个方向移动时判断是否有请求,并根据请求的边界来放置磁头,这种形式的SCAN调度被称为LOOK调度(同样C-LOOK对应C-SCAN)
在这里插入图片描述

12.3.5 如何选择磁盘调度

对于任何调度算法,其性能主要依赖于请求的数量和类型。

磁盘服务请求很大程度上受文件分配方法所影响。程序在读一个连续分配文件时会产生数个在磁盘上相近位置的请求,因而产生有限的磁头移动。

SSTF较为普通且很有吸引力,因为它比FCFS的性能要好。
SCAN和C-SCAN对于磁盘符合较大的系统会执行得更好,这是因为它不可能产生饿死问题。

目录和索引块的位置也很重要。由于文件必须打开后才能使用,打开文件要求搜索目录结构,目录会被经常访问。

在内存中缓存目录和索引块有助于降低磁头移动,尤其是对于读请求。

由于选择需要考虑的因素比较复杂,磁盘调度算法应该作为一个操作系统的独立模块,用于方便替换。
但SSTF或LOOK是比较合理的默认算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/444981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【脚本玩漆黑的魅影】全自动丢球

文章目录 原理全部代码 原理 启动后截图。 丢球以后再截图。 如果两图一致,说明没成功,读档重来。 如果两图不一致,说明成功了。 while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:break全部…

基于java+springboot+vue实现的农产品智慧物流系统(文末源码+Lw)23-239

课题意义 现如今,信息种类变得越来越多,信息的容量也变得越来越大,这就是信息时代的标志。近些年,计算机科学发展得也越来越快,而且软件开发技术也越来越成熟,因此,在生活中的各个领域&#x…

【stm32】hal库学习笔记--定时器输出PWM波

【stm32】hal库学习笔记–定时器输出PWM波 PWM波原理 输出比较 输入捕获 驱动函数 定时器驱动函数 PWM波驱动函数 定时器基本不使用DMA方式 定时器中断处理通用函数 HAL_TIM_IRQHandler实验一:输出固定占空比PWM波 时钟树配置 PF9 改为tim14CH1 tim14配置 开启tim14全局中…

求递归算法时间复杂性

递推方法 求n!的递归算法: 该算法的时间复杂性: 递推过程: 主定理方法 要求:a>1,b>1 求解步骤: f(n)的渐进上界是以n的log以b为底的e次幂 判断关系后一定要满足这三个对应规则 例题:…

Java中常用的集合及方法(2)

在Java(JDK8)中,集合(Collection)是数据结构的实现,用于存储和操作对象集合。 集合(Collection)中包含的一般类或接口: 在这其中呢,我们经常使用的其实就是L…

nginx 学习总结

1.nginx 是什么以及nginx 的用途? Nginx 是一种高性能的 Web 和反向代理服务器,以及邮件(IMAP/POP3)代理服务器。它最初是由俄罗斯程序员 Igor Sysoev 使用 C 语言开发的开源项目。Nginx 以其占用内存少、并发能力强而闻名&…

【Leetcode】299. 猜数字游戏

文章目录 题目思路代码结果 题目 题目链接 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提…

专题二 -滑动窗口 - leetcode 209. 长度最小的子数组 | 中等难度

leetcode 209. 长度最小的子数组 leetcode 209. 长度最小的子数组 | 中等难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 209. 长度最小的子数组 | 中等难度 1. 题目详情 给定一个含有 n 个正整数…

找不到duilib.dll:是什么文件?如何解决

当你尝试打开某个程序软件时,你可能会看到一条错误信息,提示你缺失一个名为“duilib.dll”的文件。这个文件通常与程序开发中使用的UI框架相关,缺失它会导致程序无法正常运行。那么,如何解决这个问题呢?本文将为你提供…

如何使用固定公网地址SFTP远程传输文件至安卓Termux本地目录?

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

Nexus - Maven私服构建和使用

文章目录 1. Maven 私服简介2. Nexus下载安装3. 如何使用Nexus私服3.1 通过Nexus下载Jar包3.2 将Jar包部署到Nexus3.3 引用别人部署的jar包 1. Maven 私服简介 Maven 私服是一种特殊的Maven远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远…

Springboot+vue的高校危化试剂仓储系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的高校危化试剂仓储系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#x…

01_04_JavaWEB02_JavaScript

JavaScript 参考尚硅谷再总结复习 一 JS简介 1.1 JS起源 Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,遗留的速度问题,为客户提供…

Linux多线程之线程同步

(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~https://blog.csdn.net/ky233?typeblog 点个关注不迷路⌯▾⌯ 目录 一、线程同步的概念 二、条件变量 1.概念 2…

中型企业运维总监的成本优化实战案例——自建IDC机房

早期互联网快速发展的时候,相关领域的公司更注重拓展业务。 为了快速占领市场,他们往往投入了较高的成本。 但近年来,随着互联网人口红利的逐渐消退以及疫情的影响,越来越多的企业开始重视成本管理,从“粗放式经营”向…

使用J-Link Commander通过J-LINK以命令的形式来访问ARM通用MCU

通常我们的操作是写好程序然后将程序下载到芯片里面,然后运行程序来进行相应的操作,其实还可以使用 J − L i n k C o m m a n d e r J-Link\quad Commander J−LinkCommander通过 J − L I N K J-LINK J−LINK以命令的形式来简单访问ARM通用MCU&#xf…

Hadoop运行搭建——系统配置和Hadoop的安装

Hadoop运行搭建 前言: 本文原文发在我自己的博客小站,直接复制文本过来,所以图片不显示(我还是太懒啦!)想看带图版的请移步我的博客小站~ Linux镜像:CentOS7 系统安装:CentOS安装参考教程 系统网卡设置…

微信私信短剧机器人源码

本源码仅提供参考,有能力的继续开发 接口为api调用 云端同步 https://ys.110t.cn/api/ajax.php?actyingshilist 影视搜索 https://ys.110t.cn/api/ajax.php?actsearch&name剧名 每日更新 https://ys.110t.cn/api/ajax.php?actDaily 反馈接口 https://ys.11…

SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程 下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.3 直接进入bin包 运行cmd命令 startup.cmd -m standalone 运行成功后 进入nacos可视化页面 账号密码默认都是nacos http://localhost:8848/nacos 微服务入驻Nacos服务注册…

从 iPhone 设备恢复误删微信消息的 4 种方法

您的微信消息可能会因无意删除、系统崩溃、卸载微信应用或升级过程失败而被删除。如果您遇到这种情况,您不必担心,因为您可以采取某些步骤来恢复丢失的微信历史记录。这里有 4 种方法可以帮助您从 iPhone恢复丢失的微信消息、群聊历史记录或微信联系人。…