python读写磁盘扇区数据有什么用_磁盘存放数据原理 - osc_v8xs2czi的个人空间 - OSCHINA - 中文开源技术交流社区...
磁盘结构作用数据原理
拓扑图
盘面(side)
模型:
1、磁盘圆形盘面,一个磁盘内含有多个盘面。
2、层叠关系,每个盘面之间不会贴着。
3、第一个盘的正面成为0面,反面为1面;第二个盘正面为2面,反面为3面,以此类推。
4、第一个盘面磁头为0磁头,背面为1磁头..第二个盘正面为2磁头,反面为3磁头,以此类推。
5、一个磁头用于读写数据,盘面数和磁头数是相等的。
作用:
盘面主要作用于划分多个扇区用来存放数据。
磁头(head)
模型:
磁头放置在盘面的上面与下面,磁头是不触碰到盘面本身的,每个盘面会有两个磁头分别代表读与写。
作用:
磁头是在盘面中起到读写数据的作用。
扇区(Sector)
模型:
1、每个磁道上可以存储数KB的数据,但计算机并不需要一次读写这么多数据。在这一这基础上,又把每个磁道划分成若干弧段, 每段称为一个扇区。
2、扇区是分布在盘面的数据分割区,以扇形区分,一个盘面可分多个扇区,扇区大小可根据系统自定义规划。
3、扇区是硬盘上存储的物理单位,每个扇区可存储128×2N次方(N=0,1,2,3)字节的数据。
4、从DOS时代起,每扇区是128×22=512字节,现在已经成了业界不成文的规定,也没有哪个硬盘厂商试图去改变这种约定。
5、即使计算机只需要硬盘上存储的某个字节,也须一次把这个字节所在的扇区中的全部512字节读入内存,再选择所需的那个字节。
6、扇区的编号是从1开始,而不是0
作用:
扇形主要用来存放系统数据。
磁道(Track)
模型:
1、每个盘片的每个盘面被划分成多个狭窄的同心圆环,数据就是存储在这样的同心圆环上,我们将这样的圆环称为磁道每个盘面可以划分多个磁道。
2、在每个盘面的最外圈,离盘心最远的地方是“0”磁道,向盘心方向依次增长为1磁道,2磁道,等等。硬盘数据的存放就是从最外圈开始。
作用:
磁道是磁头访问盘面扇区的隧道,磁盘转起后磁头读取扇区内的数据。
注:磁道再分扇区时,扇区边缘磁道会占用磁盘资源空间。
柱面(Cylinder)
解释:
1、离盘心最远的磁道为0磁道,依此往里为1磁道,2磁道,3磁道....,不同面上相同磁道编号则组成了一个圆柱面,即所称的柱面。
2、硬盘数据的读写是按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面( 即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可 ,而选取柱面则必须通过机械切换。电子切换比从在机械上磁头向邻近磁道移动快得多。因此,数据的读写按柱面进行,而不 按盘面进行。 读写数据都是按照这种方式进行,尽可能提高了硬盘读写效率。
簇(Cluster)
解释:
将物理相邻的若干个扇区称为了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇。在Windows下,随便找个几字节的文件,在其上面点击鼠标右键选择属性,看看实际大小与占用空间两项内容,如大小:15 字 节 (15 字节), 占用空间:4.00 KB (4,096 字节)。这里的占用空间就是你机器分区的簇大小,因为再小的文件都会占用空 间,逻辑基本单位是4K,所以都会占用4K。 簇一般有这几类大小 4K,8K,16K,32K,64K等。簇越大存储性能越好,但空间浪 费严重。簇越小性能相对越低,但空间利用率高。NTFS格式的文件系统簇的大小为4K。
硬盘读写数据的过程
现代硬盘寻道都是采用CHS(Cylinder Head Sector)的方式,硬盘读取数据时,读写磁头沿径向移动,移到要读取的扇区所在磁 道的上方,这段时间称为寻道时间(seek time)。因读写磁头的起始位置与目标位置之间的距离不同,寻道时间也不同。目前硬盘一 般为2到30毫秒,平均约为9毫秒。磁头到达指定磁道后,然后通过盘片的旋转,使得要读取的扇区转到读写磁头的下方,这段时间称 为旋转延迟时间(rotational latencytime)
一个7200(转/每分钟)的硬盘,每旋转一周所需时间为60×1000÷7200=8.33毫秒,则平均旋转延迟时间为8.33÷2=4.17毫秒(平均情况下,需要旋转半圈)。平均寻道时间和平均选装延迟称为平均存取时间。
硬盘的容量计算公式:硬盘容量=盘面数×柱面数×扇区数×512字节
磁盘读写数据所花费的时间
在了解了硬盘的基本原理之后,不难推算出,磁盘上数据读取和写入所花费的时间可以分为三个部分。
1.寻道时间
所谓寻道时间,其实就是磁臂移动到指定磁道所需要的时间,这部分时间又可以分为两部分:
寻道时间=启动磁臂的时间+常数*所需移动的磁道数
其中常数和驱动器的的硬件相关,启动磁臂的时间也和驱动器的硬件相关
2.旋转延迟
旋转延迟指的是把扇区移动到磁头下面的时间。这个时间和驱动器的转数有关,我们通常所说的7200转的硬盘的转就是这个。
平均旋转延迟=1/(2*转数每秒)
比如7200转的硬盘的平均旋转延迟等于1/2*120≈4.17ms
旋转延迟只和硬件有关。
3.传输时间
传输时间指的是从磁盘读出或将数据写入磁盘的时间。
这个时间等于:所需要读写的字节数/每秒转速*每扇区的字节数
硬盘软盘区
别软盘的一个磁道中,扇区号一般依次编排,如1号,2号,3号...以此类推。但在硬盘磁道中,扇区号是按照某个间隔跳跃着编排。比 如,2号扇区并不是1号扇区后的按顺序的第一个而是第八个,3号扇区又是2号扇区后的按顺序的第八个,依此类推,这个“八”称为 交叉因子。
其他
注:磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离不到1微米(约为头发直径的百分之一),可以在 极短的时间内精确定位到计算机指令指定的磁道上。
python读写磁盘扇区数据有什么用_磁盘存放数据原理 - osc_v8xs2czi的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- python 过采样 权重实现_不平衡数据集的处理 - osc_sqq5osi1的个人空间 - OSCHINA - 中文开源技术交流社区...
一.不平衡数据集的定义 所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡.以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下 ...
- python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...
- python 加权随机算法_加权随机算法 - 飞儿飞的个人空间 - OSCHINA - 中文开源技术交流社区...
加权随机算法一般应用在以下场景:有一个集合S,里面比如有A,B,C,D这四项.这时我们想随机从中抽取一项,但是抽取的概率不同,比如我们希望抽到A的概率是50%,抽到B和C的概率是20%,D的概率是10 ...
- python编程代码执行漏洞_代码执行漏洞 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...
0x00 前言 最近发现的一个新站,不妨试试手. 0x01 基础信息 漏洞点:tp5 method 代码执行,payload如下 POST /?s=captcha_method=__construct ...
- python编程题说句心里话_说句心里话 A - osc_6kxooi0n的个人空间 - OSCHINA - 中文开源技术交流社区...
说句心里话 A ...
- python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...
变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...
- python 点云重建,点云 表面重建 - osc_0tk7cpde的个人空间 - OSCHINA - 中文开源技术交流社区...
啊哈 最近在参加一个数学建模的比赛 要求是对一个果子里面的虫洞进行三维模型重建 但是百度之后并没有找到对点云数据直接重建的方法(很少) 整个代码是python写的 里面的各种库似乎有一个是可以做这个的 ...
- python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...
python基础语法 一.标识符 在Python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. 在Python中的标识符是区分大小写的. 在Python中以下划线开头的标识符是有 ...
- Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...
47.metaclass作用?以及应用场景? metaclass,直译为元类,简单的解释就是:当我们定义了类以后,就可以根据这个类创建出实例, 所以:先定义类,然后创建实例.但是如果我们想创建出类呢? ...
最新文章
- CSS3蓝色宽屏二级下拉菜单DEMO演示
- stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用
- @vue/cli启动异常:ENOENT: no such file or directory, scandir
- Redis的设计与实现之跳表
- 从0到1简易区块链开发手册V0.3-数据持久化与创世区块
- ssh 配置:在 Linux 中 ssh 配置无密码登陆完整步骤以及易错点分析
- Code::Blocks 16.01 改变注释的的颜色
- vSphere 故障排错思路总结
- python气象卫星云图解析_零基础python效率提升资源汇总
- 后网盘时代:百度问鼎、阿里紧追、360们跟进
- 如何基于IM SDK从零开发移动端聊天功能
- Numpy学习07-随机抽样
- Daily Scrum Meeting 11.08
- FAF世链区块链大会|赤兔云算CTO 杨钧淏:共建区块链生态,创造新财富时代
- 安卓(java)计算器简单实现
- 学习jQuery框架获取数据的几种基础方式
- 快速傅里叶变换FFT C语言实现 可用于嵌入式系统进行模拟采样频谱分析
- Hive QL的经典题详解
- python做网站开发_如何用Python做网站开发
- 学习Unix,可从事什么样的工作(2)《精通Unix下C语言与项目实践》读书笔记(4)...
热门文章
- 外媒中国量子计算机,比美国快100亿倍,中国量子计算机赢得霸权!外媒致敬
- 【多式联运】基于帝国企鹅算法、遗传算法、粒子群算法求解多式联运路径优化问题附matlab代码
- docker 容器 磁盘 10G 限制 大小
- C# 获取当前屏幕大小 获取屏幕大小
- 蓝桥云课 Python新手入门课 笔记
- ubuntu18.04 未发现wifi驱动
- Fluke 985粒子计数器是品质的保证
- Unity尝试制作王者荣耀(十六)——FightScene(六)小地图以及英雄显示设置
- 【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学
- 逍遥模拟器过检测_BMS选用什么样的电池模拟器