深圳市住房建设局网站首页/黄冈网站推广策略

深圳市住房建设局网站首页,黄冈网站推广策略,微信公众平台做微网站,电子商务网站经营特色分析的主要内容包括前面博客讲解的是内存级文件管理,接下来介绍磁盘级文件管理 文件系统分为两部分 内存级文件系统 : OS加载进程 ,进程打开文件, OS为文件创建struct file 和文件描述符表 ,将进程与打开的文件相连, struct file 内还函数有指针表, 屏蔽了底层操作的差异,struct file中还有内核级…

前面博客讲解的是内存级文件管理,接下来介绍磁盘级文件管理

文件系统分为两部分

  1. 内存级文件系统 : OS加载进程 ,进程打开文件, OS为文件创建struct file 和文件描述符表 ,将进程与打开的文件相连, struct file 内还函数有指针表, 屏蔽了底层操作的差异,struct file中还有内核级文件缓冲区(提高效率)
  2. 磁盘级文件系统: 管理磁盘上的文件

磁盘结构

它通过磁性材料或闪存技术将数据持久化存储,即使在断电后数据也不会丢失

主要分为机械硬盘(HDD)和固态硬盘(SSD)

今天我们讲解机械硬盘

机械硬盘(HDD,Hard Disk Drive)
  • 工作原理

    • 使用磁性材料涂覆的旋转盘片存储数据, 比如磁性南极代表1 ,磁性北极代表0(打比方)

    • 通过磁头在盘片上移动来读写数据

定位扇区

CHS寻址模式

        在硬盘的传统寻址模式中,数据是通过柱面(Cylinder)、磁头(Head)、扇区(Sector)的组合来寻址的,这种方式被称为CHS寻址(Cylinder-Head-Sector)

        扇区: 磁盘存储数据的基本单位 ,512字节, 因此,磁盘是块设备

        柱⾯上的每个磁道,扇区个数是⼀样的

注意: C H都是从0编码 ,S从1编码

真实过程 ⼀个细节:传动臂上的磁头是共进退的

LBA逻辑块寻址模式

        LBA(Logical Block Addressing)逻辑块寻址模式。在 LBA 模式下,我们知道硬盘上的一个数据区域由它所在的磁头、柱面(也就是磁道)和扇区所唯一确定。

        在LBA地址中,地址不再表示实际硬盘的实际物理地址(柱面、磁头和扇区)。LBA编址方式将 CHS这种三维寻址方式转变为一维的线性寻址,它把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了烦琐的磁头/柱面/扇区的寻址方式。

        在访问硬盘时,由硬盘控制器再这种逻辑地址转换为实际硬盘的物理地址。

        OS只需要使⽤LBA就可以了!!LBA地址转成CHS地址,CHS如何转换成为LBA地址。谁做啊??磁盘 自己来做!固件(硬件电路,伺服系统)

LBA与C/H/S 之间的转换:

LBA =柱面号C*单个柱面的扇区总数 + 磁头号H*每个磁道扇区的数量+ 扇区号S-1

       =柱面号*(磁头数*每个磁道扇区数)+磁头号H*每个磁道扇区的数量+ 扇区号S-1
 

柱面号C = LBA//(磁头数*每磁道扇区数)   就是单个柱面的扇区总数

磁头号H =(LBA% (磁头数* 每磁道扇区数)) // 每磁道扇区数

扇区号S =(LBA% 每磁道扇区数)+1

// 代表除法向下取整

        所以:从此往后,在磁盘使用者看来,根本就不关心CHS地址,⽽是直接使⽤LBA地址磁盘内部自己转换。所以: 从现在开始,磁盘就是⼀个  元素为扇区  的⼀维数组,数组的下标就是每⼀个扇区的LBA地址。OS使用磁盘,就可以⽤⼀个数字访问磁盘扇区了。

在磁盘如何管理文件

引入"块"概念

        其实硬盘是典型的“块”设备,操作系统读取硬盘数据的时候,其实是不会⼀个个扇区地读取,这样 效率太低,⽽是⼀次性连续读取多个扇区,即⼀次性读取⼀个”块”(block)

         硬盘的每个分区是被划分为⼀个个的”块”。⼀个”块”的⼤⼩是由格式化的时候确定的,并且不可 以更改,最常⻅的是4KB,即连续⼋个扇区组成⼀个”块””块”是⽂件存取的最⼩单位。

注意:

  • 磁盘就是⼀个三维数组,我们把它看待成为⼀个"一维数组",数组下标就是LBA,每个元素都是扇区
  • 每个扇区都有LBA,那么8个扇区⼀个块,每⼀个块的地址我们也能算出来.
  • 知道LBA:块号 = LBA / 8
  • 知道块号:LAB=块号*8+n  (n是块内第几个扇区 1<= n <=8)

引入"分区"概念

        其实磁盘是可以被分成多个分区(partition)的,以Windows观点来看,你可能会有⼀块磁盘并且将 它分区成C,D,E盘。那个C,D,E就是分区。分区从实质上说就是对硬盘的⼀种格式化。但是Linux的设备 都是以文件形式存在,那是怎么分区的呢?

        柱面是分区的最⼩单位,我们可以利⽤参考柱⾯号码的⽅式来进⾏分区,其本质就是设置每个区的起 始柱⾯和结束柱⾯号码。此时我们可以将硬盘上的柱⾯(分区)进⾏平铺,将其想象成⼀个⼤的平面,如下图所示:

        柱面大小⼀致,扇区个位⼀致,那么其实只要知道每个分区的起始和结束柱⾯号,知道每 ⼀个柱面多少个扇区,那么该分区多⼤,其实和解释LBA是多少也就清楚了.

也就是OS管理磁盘,通过分治思想,将磁盘进行分区处理,但分出的区大小还有几百GB ,进一步对区分组 分成Block Group ,直接将每个组管理好即可.

  • 文件 = 内容+属性 
  • 文件内容存储在(Block Group)的 Data blocks中
  • 文件属性也是数据 ,linux中 文件的属性数据(比如文件的创建者、文件的创建日期、文件的大小等等)以数据结构(inode)的方式 存储
  • 一个文件一个inode ,inode大小有128字节 或者256字节, inode又存在 inodetable中
  • ls -l -i    可以打印出文件详细信息   包括文件的inode值

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

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

相关文章

【软考-架构】5.2、传输介质-通信方式-IP地址-子网划分

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 传输介质网线光纤无线信道 通信方式和交换方式会考&#xff1a;交换方式 &#x1f4af;考试真题第一题第二题 IP地址表示子网划分&#x1f4af;考试真题第一题第二题 传输…

G2o顶点与边编程总结

G2o的顶点与边属于 HyperGraph 抽象类的继承OptimizableGraph 的继承。 BaseVertex<D,T> D是预测点的维度&#xff08;在流形空间的最小表示&#xff09;T是待估计vertex的数据类型&#xff0c;比如用四元数表达三维旋转的话&#xff0c;T就是Quaternion 类型 // 顶点的…

凸优化算法学习笔记:决策单调性与 wqs二分

文章目录 前言决策单调性单调矩阵&#xff0c;完全单调矩阵&#xff0c;蒙日阵决策单调性优化 d p dp dp线性 d p dp dp分治&#xff08;离线&#xff09;二分队列&#xff08;在线&#xff09;SMAWK 区间 d p dp dp 练习题LOJ6039 w q s wqs wqs 二分&#xff08;蒙日阵最短…

Aop实现简单基于日志记录

目录 一、基础知识&#xff1a; 二、测试记录接口的参数和结果 一、基础知识&#xff1a; Before&#xff1a;用于执行目标方法之前的逻辑。After&#xff1a;用于执行目标方法之后的逻辑。AfterReturning&#xff1a;用于获取目标方法返回值后的逻辑。AfterThrowing&#x…

【Nacos】服务发布之优雅预热上线方案

目录 一、背景二、注册时机2.1、注册机制2.2、分析源码找到注册时机 三、注册前心跳健康检测3.1、方案实施3.2、源码分析3.3、优化代码 四、流量权重配置五、总结5.1、整体完整流程&#xff1a;5.2、流程图&#xff1a;5.1、优化方案完整代码&#xff1a; 一、背景 有些面向广…

AI驱动的数字供应链安全情报预警服务:云脉XSBOM

先发制人&#xff0c;精准预警数字供应链中的安全风险 Pre-emptive Strategy, Accurate Warning of Security Risks in Digital Supply Chain 云脉XSBOM数字供应链安全情报预警依托悬镜安全团队强大的供应链管理监测能力和AI安全大数据云端分析能力&#xff0c;对全球数字供应…

算法系列之回溯算法求解数独及所有可能解

有没有对数独感兴趣的朋友呢&#xff1f;数独作为一款经典的逻辑游戏&#xff0c;其目标是在一个9x9的方格中填入数字1至9&#xff0c;确保每一行、每一列以及每一个3x3的子网格中都包含这些数字且不重复。尽管数独的规则看似简单&#xff0c;但编写一个能够自动求解数独的程序…

C++ primer plus 类和对象上

目录 前言 一 接口的设计 二 方法的设计和使用 三 构造函数 四 析构函数 五 析构函数和构造函数小结 总结 前言 前面已经描述了很多有关于类和对象的知识了&#xff0c;所以我们直接开始上手操作 一 接口的设计 首先我们要知道什么是接口 接口是一个共享框架&…

AdaLoRA 参数 配置:CAUSAL_LM“ 表示因果语言模型任务

AdaLoRA 参数 配置:CAUSAL_LM" 表示因果语言模型任务 config = AdaLoraConfig( init_r=16, # 增加 LoRA 矩阵的初始秩 lora_alpha=32, target_modules=[“q_proj”, “v_proj”], lora_dropout=0.1, bias=“none”, task_type=“CAUSAL_LM” ) 整体功能概述 AdaLoraCon…

C# 集合

集合 概述集合接口和类型列表(ArrayList, List)队列(Queue)栈(Statck)链表(LinkedList)有序表(SortedList)字典Lookup类其他字典类 HashSet(不重复项的无序列表)位数组BitArrayBitVector32 性能 概述 数组和Array类。数组的大小是固定的。如果元素个数是动态的&#xff0c;就应…

ELK(Elasticsearch、Logstash、Kbana)安装及Spring应用

Elasticsearch安装及Spring应用 一、引言二、基本概念1.索引&#xff08;Index&#xff09;2.类型&#xff08;Type&#xff09;3.文档&#xff08;Document&#xff09;4.分片&#xff08;Shard&#xff09;5.副本&#xff08;Replica&#xff09; 二、ELK搭建1.创建挂载的文件…

MacOS 15.3.1 安装 GPG 提示Error: unknown or unsupported macOS version: :dunno

目录 1. 问题锁定 2. 更新 Homebrew 3. 切换到新的 Homebrew 源 4. 安装 GPG 5. 检查 macOS 版本兼容性 6. 使用 MacPorts 或其他包管理器 7. 创建密钥&#xff08;生成 GPG 签名&#xff09; 往期推荐 1. 问题锁定 通常是因为你的 Homebrew 版本较旧&#xff0c;或者你…

C++:类和对象(从底层编译开始)详解[前篇]

目录 一.inline内联的详细介绍 &#xff08;1&#xff09;为什么在调用内联函数时不需要建立栈帧&#xff1a; &#xff08;2&#xff09;为什么inline声明和定义分离到两个文件会产生链接错误&#xff0c;链接是什么&#xff0c;为什么没有函数地址&#xff1a; 二.类&…

四种 No-SQL

在一个常规的互联网服务中&#xff0c;读取与写入的比例大约是 100:1 到 1000:1。然而&#xff0c;从硬盘读取时&#xff0c;数据库连接操作耗时&#xff0c;99% 的时间花费在磁盘寻址上。 为了优化读取性能&#xff0c;非规范化的设计通过添加冗余数据或分组数据来引入。下述…

【 Manus平替开源项目】

文章目录 Manus平替开源项目1 OpenManus1.1 简介1.2 安装教程1.3 运行 2 OWL2.1 简介2.2 安装教程2.3 运行 3 OpenHands&#xff08;原OpenDevin&#xff09;3.1 简介3.2 安装教程和运行 Manus平替开源项目 1 OpenManus 1.1 简介 开发团队: MetaGPT 核心贡献者&#xff08;5…

【Linux 服务之ollama 部署过慢问题】

特别慢的 curl -fsSL https://ollama.com/install.sh | sh参考 方法1 export OLLAMA_MIRROR"https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download" curl -fsSL https://ollama.com/install.sh | sed "s|https://ollama.com/downl…

疗养院管理系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装疗养院管理系统软件来发挥其高效地信息处理的作用&#xf…

Web后端开发之Maven

Maven Mven是apache旗下的一个开源项目&#xff0c;用来管理和构建java项目的工具。 通过一小段描述信息来管理项目。 Maven的作用 1.依赖管理&#xff1a;方便快捷的管理项目依赖的资源&#xff08;jar包&#xff09;&#xff0c;避免版本冲突问题 以前用某个jar包需要下载…

Linux文件IO——缓冲区磁盘上的文件管理

前言 什么是缓冲区&#xff1f; 缓冲区是内存空间上的一小段内存&#xff0c;我们平常在写程序的时候&#xff0c;其实是很难感知到缓冲区的存在的&#xff0c;接下来看一段代码&#xff0c;可以很好地体现缓冲区的存在。 #include<stdio.h> #include<unistd.h> in…

Java中如何去自定义一个类加载器

之前写过一篇&#xff0c;关于 类加载器和双亲委派的文章&#xff0c;里边提到过可以根据自己的需要&#xff0c;去写一个自定义的类加载器&#xff0c;正好有人问这个问题&#xff0c;今天有时间就来手写一个自定义的类加载器&#xff0c;并使用这个自定义的类加载器来加载一个…