大容量存储(涉及到的硬盘存取的原理)
磁盘的结构
我们简单分析一下,这里是计组的知识,大家可以自己多看些资料
柱面是基本单位
我们可以看到内圈的空间比外圈的要小,但是我们的每个磁道里的扇区是一样的,所以外圈的数据密度分布比内圈要更分散一些,这样就能保持角速度一致。
如果是线性的,那么外圈的数据密度和内圈一样 ,那么内圈的转速一定要比外圈快,因为密度相同,角度相同所取到的数据量不一样。
硬盘格式化
高级格式化就是创建一个文件系统,这里是后面的内容。
低级格式化在高级格式化之前,对扇区建立一个包含头部区域、数据区域和尾部区域是这个扇区的属性参数和校验码
磁盘性能
寻道时间:
磁头到达所要查找扇区的磁道的时间,这里是厂商设计时决定的,我们无法干扰
旋转延迟:
我们定位到磁道,还需要转到对应的扇区起始位置,最好的情况刚好转到扇区,最坏的情况需要转一圈才能到扇区
所以一个10000r(转)/m的磁盘一转为1/10000m我们设为t,Tr=(最好的情况+最坏的情况)/2,也就是转0圈和转1圈相加除以2,我们可以得到(0+t)/2,下图写了这个值为3ms
传送时间(传送数据进入磁道的时间):
r为转速,代表一分钟转r圈,那转一圈为1/r,N为扇区中的字节数,那么我们要写多少就需要除以这个N,得到b/N,转一圈的时间乘以在这个磁道写入了多少数据就得到了写入数据的时间了,得到T=1/r*b/N
0.01s传1KByte 所以总存取速率为100KByte/s
磁盘调度
磁盘的i/o请求
四类参数
操作时输入还是输出
磁盘地址是什么(柱面、磁头、扇区)
磁盘要掉入的内存地址是什么
调用磁盘的扇区数量是多少
多道程序请求i/o,会有一个磁盘队列,里面包含请求的柱面、磁头信息
先来先服务算法
这里包含柱面队列(每个进程要请求的柱面)和当前停留的磁头位置
大家可以算一下磁头滑动距离的长度
其实我们可以看下上面这个算法在到达183的时候不该去为37服务,因该为后面的124或122服务,这样磁头转动的距离一定会相对来说更小一些
而且我们前面说我们无法预测程序后面所需要调度的资源的问题,但这里并非预测而是已经载入的进程在等待资源,这里的disk quens是一个等待队列,所以我们是可以知道资源是如何调度的,完全符合优化算法的条件。
最短寻道时间优先
这里涉及到贪心算法容易陷入局部最优,需要动态规划
这里会有饥饿现象
扫描算法,除了要知道磁盘等待队列和磁头开始位置之外,还需要知道一个参数,硬盘移动的方向
磁盘柱面上有很多请求时,他不会偏爱任意一个请求
复杂均衡会更好
这里我们可以看出处理请求的地方,在发生请求的概率很少了,所以我们可以在用一个算法
c-scan算法
从现在磁头开始点固定处理完一个方向之后,我们立刻回头起始点,在从固定方向处理请求
这个时依据特定形成的算法
那么我们再依据这个思想,我们不回到固定的地方(0起始点),我们在服务完一块区域之后,立刻到相对的另一块区域的起始点去服务这个区域的请求。
这里其实就是电梯的原理
分布式负载均衡多进程调度用c-scan和scan算法更好些
大家可以看下自己的linux系统是什么算法
我的是这个
我这里只要一个算法,这里给大家看下如果你的系统支持多个算法如何切换
上面这三个算法都是linux常见的应用算法
noop:算法时先来先服务的应用算法,但有的时候简单的算法可能越好,所谓无为而治
deadline:两个等待队列,一个读,一个写,每个i/o请求都有一个时间戳,如果达到请求的deadline了那么就调整它为最高的优先级,这里要涉及到一个内容,读的每个i/o请求时间戳都要少很多,那么如果大量读取的请求可以用这个算法
cfq:有多少进程就有多少队列,这里的原理就是时间片轮转
每个进程都是轮转执行
但它也对每个队列的进程也进行了排列,这样就可以让每个进程优先的资源被先执行。
那么这三个算法对于磁盘访问来说那个经过测试之后访问速度更快
很多测试结果对于A和B的效率都差不多,而C反而因为更复杂效率更低
大容量存储(涉及到的硬盘存取的原理)相关推荐
- 硬盘的读写原理(图文详解)
硬盘的种类主要是SCSI .IDE .以及现在流行的SATA等:任何一种硬盘的生产都要一定的标准:随着相应的标准的升级,硬盘生产技术也在升级:比如 SCSI标准已经经历了SCSI-1 .SCSI-2. ...
- 硬盘FAT文件系统原理的详细分析——转载
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- 计算机用的机械硬盘的工作原理,为啥一震就坏?机械硬盘的构造原理是什么?...
最近本人的一块2TB机械硬盘挂掉了,里面有工作五六年的重要数据,以及一些生活当中比较重要的照片被销存了.其实这块硬盘之前没有任何的异样,用鲁大师查询硬盘的时候,也没有出现任何警告等消息,仔细回想,有可 ...
- BT下载会损害硬盘吗?--硬盘的工作原理,硬盘寿命
关键字:硬盘,电脑维修,电脑故障,BT,Emule,P2P,S2P,FlashXP,FlashGet,ftp,NetAnts电骡,电驴,资源下载,软件下载,损坏硬盘,硬盘的工作原理,硬盘寿命,磁盘整理 ...
- 计算机的硬盘系统是由什么组成,硬盘的工作原理是什么,由哪些部件组成?
硬盘是电脑重要的储存媒介,是电脑必不可少的组成部分,但很多人并不知道硬盘的工作原理,也不知道硬盘由哪些部件组成的.为了让大家学通弄懂硬盘的工作原理,下面就给大家详细介绍一下硬盘的工作原理和内部构造. ...
- 固态硬盘的工作原理揭秘
首先,先看一下机械硬盘的工作原理. 1 机械硬盘的工作原理 机械硬盘的内部结构主要由马达.磁盘.磁头臂.磁头组成. 机械硬盘在工作的时候,磁头会悬浮于磁盘面上方几纳米的距离.磁盘面上有很多的小格子,小 ...
- [导入]硬盘的维修原理
呵呵,老爱转别人的东西,放在这里当是一个资料搜集啦,免得需要的时候又找不到了.下面讲述的是硬盘维修的原理,有些是有点深奥的.这些天我在修我的希捷80G的硬盘,修理的时候都要死机,算了算了,估计报废了. ...
- 硬盘的存储原理和内部架构
本来想写个文件系统的专题,结果发现对硬盘的内部架构和存储原理还是比较模糊,因为不了解"一点"硬盘的存储原理对文件系统的认识老是感觉镜花水月,不踏实.经过搜集整理资料就由了本文的问世 ...
- 什么叫机械硬盘_机械硬盘的工作原理是什么?硬盘的工作原理简介
机械硬盘的工作原理是什么?硬盘的工作原理简介 每个硬盘都有一块电路板,电路板主要负责与电脑进行通讯,并控制管理整个硬盘的工作,电路板可以说是硬盘的控制部门.由于个别硬盘电路设计不良,或芯片的质量不好, ...
最新文章
- Matlab心电信号的PQRST模拟-实验报告
- 数据分析面试必考的AB-Test知识点整理
- maven jpa_使用Hibernate 4,JPA和Maven的架构创建脚本
- windows下wamp安装
- 总结-linux初识进程(包括cpu调度、进程创建、僵尸进程(重点)、环境变量)
- 网络 计算机网络预备知识
- 2.14 加载Firefox配置
- Python办公自动化(六)|自动更新表格,
- 【通信】基于matlab Alamouti空频编码【含Matlab源码 801期】
- SCSA 模拟题 知识点 (一)
- Mydrivers: DVD Jon出手,绕过ATT激活iPhone
- Linux C编程 itoa()函数 atoi()函数
- iOS开发 : Navigation Bar的简单设置
- border-radius和border-image
- Java程序员学Golang
- git查看打tag时间_使用git打tag标签/切换到某个tag时期,删除/查看分支
- 不动产纠纷包括房屋买卖合同吗
- 只需一次向前推导,深度神经网络可视化方法来了!(ECCVW 2022)
- CSS实战---高科技感数据看板(管理层决策大屏演示)
- kali安装LibreOffice
热门文章
- 谷歌公司经典面试题扔鸡蛋的详细解读(一)
- 笔记6 | 从源码理解分析mScrollX和mScrollY,scrollTo()和scrollBy(),smoothScrollTo和smoothScrollBy
- str在java中什么意思_Java中String的理解
- 梁祝二胡独奏_发展独奏
- 【我的故事】一个还不成熟的女程序员的苦恼
- 无线AP与AC以及STA的区别
- 【Python】90后的青春,定格在被淡忘的QQ空间里
- 基于 SQL SERVER 的分布式数据库设计与实现
- 详解dbms_stats.gather_fixed_objects_stats
- 美国政府否认“口头批准”超级高铁,然而马斯克没有任何损失