《数据在外设中的存储》

news2024/9/20 15:06:28

【一】磁盘的物理结构

        我们现在很少看到磁盘了,我们电脑使用的大部分使用的是nvme协议的固态硬盘,差一点的使用的是sata固态接口的硬盘了,磁盘在我们电脑上尤其是笔记本电脑上是很少存在的,难道磁盘真的穷途末路了吗?显然不是,在企业端,磁盘依旧是主流,这是为什么呢?因为出于成本和稳定性考虑。

        相同容量的固态和磁盘,固态的价格要比磁盘高上三倍以上,且固态是一个电子元器件,如果遭受到了不可逆的损伤,数据恢复的可能性为0,且长时间断电的情况下,固态内的数据会出现短暂丢失且不能恢复的情况,这个在硬盘上几乎是不可能存在的问题,因为硬盘是纯物理结构,只要中间的盘片不存在损坏的情况下,修复是非常简单的事情,且便宜。

        硬盘的组成结构:磁头,盘面,马达,硬件+伺服系统

磁头:每一个面都有一个磁头,记住是面,这就说明了,写入的时候是两个磁头配合写入的,且磁头=面数,磁头是共进退的。

盘面:就是用来存储数据的介质。

马达:盘面中间的马达控制磁盘的摆动,磁头上的马达控制磁头的摆动。

硬件电路+伺服系统:就是用来控制向磁盘中读写数据的集成电路块。

注意:磁头和盘面之间是没有接触的,是为了防止磁盘抖动时,磁头跟着抖动

【二】磁盘的存储结构

        磁盘寻址的时候,基本单位不是bit,更不是byte,而是使用一块扇形区域被称为扇区(512byte),那么在 单面上如何定位一个扇区呢?

        磁盘中定位任何一个扇区,采用的硬件基本定位方式:CHS定位法!,磁头在摆动的时候,就是确认在哪一个磁道,然后定位磁头也就是定位在哪个盘面上,最后定位在哪一个扇区。

【三】磁盘的逻辑结构

        磁盘在物理上是一个小光碟,是圆形的,但是在逻辑上可以抽象为类似胶带一样,卷起来成为了一个圆形。扯出来就是一个线性结构。

 你看这玩意想不想一个数组?其实操作系统对磁盘的管理真就和数组差不多,所以当我们需要区找到一个扇区,我们只需要去找到对应的扇区下标就行了,操作系统内部,我们把这个地址称之为LBA地址。

        这还有一个致命问题:为什么OS要进行逻辑抽象呢?直接使用CHS不行吗?

这里有两个主要的原因:1.便于管理     2.不想让OS的代码和硬件强耦合

【四】磁盘存储的基本单位

        虽然磁盘的访问的基本单位是512字节,但是依旧很小,OS内的文件系统会单独定制一套多扇区读取的机制,如2KB,4KB,其实以4kb是最常见的,你读取的时候你哪怕只读取1bt的内存,你也需要将4kb的内存读入,如有必要在写回去罢了。

        

上图是磁盘文件系统图(在Linux下的),磁盘是典型的块设备,硬盘分区被划分为一个个的block,一个block的大小是由格式化的时候确定的,且不可更改,而启动快(boot block)的大小是确定的。

block group:文件系统会根据分区的大小划分为数个block group,而每个block group 都有着相同的结构组成,其实就是政府管理各区的例子是一样的。

super block:存放文件系统本生的结构信息,记载的主要信息有:block和inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次校验磁盘的时间等其他文件系统的相关信息,super block被破坏就相当于整个文件系统被破坏了。

GDT:块组描述符,描述块组的属性信息

block bitmap:记录着Data bitmap中哪个数据块被占用,哪个数据库没有被占用。

inode 位图:每一个bit表示一个inode是否空闲可用

i节点表:存放文件属性

数据区:存放文件内容

【五】创建一个新文件主要有以下4个操作

1.存储操作

        内核闲找到一个空闲的节点,内核把文件信息写进去

2.存储数据

        该文件需要三个磁盘块,内核找到内核缓冲区的数据以此复制进去

3.记录分配情况

        文件内容按照顺序村粗,内核在inode的磁盘分区记载了上述的块列表

4.添加文件名到目录

        新的文件名叫abc,Linux如何在当前的目录中记载这个文件?内核将如何添加到目录文件,文件名和inode之间的对应关系将文件名和文件内容属性链接起来。

        以上就是这期的全部内容了,如果哪里有问题的话还请位于评论区斧正,如果觉得写的还不错的话,还请给个一键三连,毕竟码字不易。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

confluence 6.7.1-x64.bin安装

confluence数据库的配置文件:# cat /var/atlassian/application-data/confluence/confluence.cfg.xml 1: 安装包 jdk 2: 执行./atlassian-confluence-6.7.1-x64.bin 设置安装目录和数据目录 启动 service confluence start 3&#xff…

[附源码]计算机毕业设计社区住户信息管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

连阿里P8都赞不绝口的“分布式架构原理设计笔记”到底有多牛

在分布式系统中,一次业务处理可能需要多个应用来实现,比如用户发送一次下单请求,就涉及到订单系统创建订单,库存系统减库存,而对于一次下单,订单创建与减库存应该是要同时成功或者同时失效,但在…

matlab中的隐马尔可夫模型(HMM)实现

隐马尔可夫模型(HMM)简介 隐马尔可夫模型(HMM)是一个在你观察到的输出顺序,但不知道状态序列模型产生输出的过程。 去年,我们为一家公司进行了短暂的咨询工作,该公司正在构建一个主要基于隐马…

借助PyCharm在代码中自动添加作者、日期

名人说:闻道有先后,术业有专攻。——韩愈 Code_流苏(CSDN) o(‐^▽^‐)o很高兴你打开了本篇博客,跟着步骤一起去设置吧! Pycharm安装教程请点这里 目录一、背景缘由二、设置方法三、补充一、背景缘由 在用…

左神:中级提升班5

1.斐波那切数列套路 1.1F(N)F(N-1)F(N-2) 1.2F(N)3F(N-1)-4F(N-3)6F(N-5) 1.3生牛问题 1.4达标串数量 1.5取最少的木棍 2.背包问题 3.找工作 4.判断是否符合人类正常书写 1.斐波那切数列套路 1.1F(N)F(N-1)F(N-2) 线性代数: 1. 利用初始项可以吧a,b,c,d算出来 2…

【面试题】https协议

1. http和https的区别 http是明文传输,敏感信息容易被中间劫持。https在http协议的基础上,增加了加密的特性,数据被劫持了也无法解密。现代浏览器已经开始强制使用https协议。 2. https的加密方式 2.1 对称加密 对称加密:使用…

[激光原理与应用-38]:《光电检测技术-5》- 光学测量基础 - 光调制

目录 一、光调制概述 1.1 什么是光调制 1.2 激光的光调制方法 1.3 光调制的调制 二、直接调制法 三、腔内调制法 3.1 被动调制: 3.2 主动调制: 四、腔外调制法 五、新型光调制 5.1 基于强度调制 5.2 基于相位调制 5.3 基于偏振调制 一、光调…

【前端】面试题6~10

目录 一、说一说BFC 1、BFC的概念 2、BFC布局规则 3、BFC形成的条件 3、BFC解决能的问题 4、BFC的其他 5、总结 二、说一说Vuex是什么,每个属性是干嘛的,如何使用 ? 1、Vuex是什么 2、Vuex 的属性 3、使用方法 4、简单总结 三、说…

Jsp基础了解(二)

文章目录Jsp基础了解(一)7,MVC模式和三层架构7.1 MVC模式7.2 三层架构7.3 MVC 和 三层架构8,案例8.1 环境准备8.1.1 创建工程8.1.2 创建包8.1.3 创建表8.1.4 创建实体类8.1.5 准备mybatis环境8.2 查询所有8.2.1 编写BrandMapper8.…

无模型深度强化学习算法

无模型深度强化学习算法:直接训练类神经网络模型来表示策略。这里的“无模型”指的是不建立环境模型,而非不建立任何机器学习模型。这样的策略模型可以直接用策略梯度(policy gradient)[3]训练,但是策略梯度的变异性太…

使用extundelete恢复文件-尚文网络xUP楠哥

~~全文共1462字,阅读需约5分钟。 进Q群11372462,领取专属报名福利,包含云计算学习路线图代表性实战训练大厂云计算面试题资料! 假如遇到一些恶意者试图入侵服务器或者遇到Linux系统架构师不小心误删文件或目录,可以通过extundele…

DFS 、BFS、回溯

1、dfs(res,当前结构,当前候选热数据,当前目标值,当前搜索的层级) 2、BFS(Breadth first search) 对于树来说,BFS就是层次遍历 而图的BFS 与树的BFS 不同点在于,树有根节点&#xf…

GPIO口,232串口,USB接口,485接口等接口保护电路

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录前言一、GPIO口1、输入端2、输出端二、USB口三、232口前言 送给大学毕业后找不到奋斗方向的你(每周不定时更…

Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查

写在前面 分享一些 AWX 启用facts缓存和模板问卷调查的笔记博文内容涉及: 启动facts缓存相关配置Demo启用模板调查来设置变量demo 食用方式: 需要了解 Ansible理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去&a…

基础入门 - Spring Boot HelloWorld 第二节

简化配置 Spring Boot 把所有的配置都固定编写在 application.properties 里,文件名是固定写法,不能改 我们如果想更改配置,几乎所有的配置都在这里面更改就可以,而且,就算你不更改,不编写配置,…

计算机毕业设计java基于springboot医院急诊挂号系统

项目介绍 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue 人难免会有生病的时候,尤其是当一些突发情况下,一旦发生一些疾病很可能会危及生命。这时候如果按照常规的方式进行挂号是很浪费时间…

SwiftUI 中的水平条形图

水平条形图以矩形条的形式呈现数据类别,其宽度与它们所代表的数值成正比。本文展示了如何在垂直条形图的基础上创建一个水平柱状图。 水平条形图不是简单的垂直条形图的旋转。在 Numbers 等应用程序中,水平条形图被定义为独立的图表类型,而不是垂直条形图。除了条形差异外…

Jsp基础了解(一)

文章目录JSP1,JSP 概述2,JSP 快速入门2.1 搭建环境2.2 导入 JSP 依赖2.3 创建 jsp 页面2.4 编写代码2.5 测试3,JSP 原理4,JSP 脚本4.1 JSP 脚本分类4.2 案例4.2.1 需求4.2.2 实现4.2.3 成品代码4.2.4 测试4.3 JSP 缺点5&#xff0…

实验模拟TCP连接的各种异常情况(三次握手丢包,两端异常)

实验模拟TCP连接的各种异常情况(三次握手丢包,两端异常) 环境搭建 秋招结束,闲来无事,正好把计算机网络一些协议实验过一遍,于是用vmware搭建了一个两机通信的环境,在建立环境的过程中遇到了一…