当前位置: 首页 > news >正文

关于 IO、存储、硬盘和文件系统

关于IO、存储、硬盘和文件系统

  • 0.引入
  • 1.了解IO
    • 1.1.存储器IO
    • 1.2.设备IO
  • 2.存储介质和存储类型
    • 2.1.内存
    • 2.2.硬盘
    • 2.3.固态硬盘(SSD)
    • 2.4.U盘
  • 3.硬盘的工作原理
    • 3.1.磁头
    • 3.2.盘片
    • 3.3.电动机
    • 3.4.硬盘的读写操作
  • 4.文件系统概述
    • 4.1.文件系统的类型
    • 4.2.文件系统的相关概念
    • 4.3.文件系统的优化
  • 5.总结

0.引入

在计算机领域,IO(Input/Output)指的是将数据从一个设备传输到另一个设备的过程。而存储指的是将数据保存在内存或硬盘等设备中的过程。硬盘则是存储设备的一种,用于长期存储数据。同时,为了更有效地管理和组织硬盘或其他存储设备中的数据,我们需要使用文件系统。

1.了解IO

IO是计算机中最重要的部分之一,它涉及所有数据的输入和输出操作。在计算机系统中,IO通常分为两类:存储器IO和设备IO。存储器IO指的是CPU与主内存之间的数据传输,而设备IO指的是外设(例如硬盘、键盘、鼠标、显示器等)与计算机之间的数据传输。

外设IO

1.1.存储器IO

在存储器IO中,CPU会将数据从寄存器读取,然后将其存储到内存中。当需要读取数据时,CPU会从内存中读取数据,然后将其存储到寄存器中。存储器IO是非常快速和高效的,因为内存的访问速度很快,通常可以达到每秒数GB的速度。

1.2.设备IO

设备IO涉及到外设向计算机中传输数据,如硬盘读取和写入数据。在设备IO方面,最重要的因素是设备的传输速度。设备传输速度通常比内存传输速度慢得多,在某些情况下,速度可能只有数kb/s。而设备IO操作也非常耗费CPU资源,因此需要进行合理管理和优化。

2.存储介质和存储类型

计算机中,常用的存储介质有内存、硬盘、固态硬盘(SSD)和U盘等。各种存储介质都有其自身的优点和缺点,可以针对不同的需求进行选择。

2.1.内存

内存是计算机中用于暂时储存程序和数据的地方。内存的读写速度非常快,可以达到每秒GB的速度,但它的容量相对较小。内存中存储的数据在计算机关闭后会丢失,因此,它仅适用于临时存储数据。

内存条

2.2.硬盘

硬盘是一种用于长期存储数据的设备。与内存不同,硬盘的容量较大,可以存储TB级别的数据,而且可以在计算机关闭和重新启动后保留数据。但是,硬盘的读写速度较慢,通常在每秒数百MB的范围内。

硬盘

2.3.固态硬盘(SSD)

固态硬盘是一种新型的存储设备,在速度上比传统的机械硬盘快得多。SSD没有机械部件,因此速度更快、噪音更小,并且可以在温度较高的环境下运行。但SSD相对较贵,容量也不如机械硬盘那么大。

2.4.U盘

U盘是一种便携式存储设备,它非常小巧轻便,可以轻松地将文件从一台计算机传输到另一台计算机。U盘价格便宜,容量适中,适合存储小型文件和临时数据。

3.硬盘的工作原理

硬盘是一种机械设备,它使用磁盘来存储数据。硬盘由许多不同的部件组成,包括磁头、盘片、电动机等。

机械硬盘细节

3.1.磁头

磁头是硬盘中最重要的部件之一,它负责读取和写入磁盘上的数据。磁头以非常高的速度飞过磁盘表面,将信息写入磁介质或从中读取信息。

3.2.盘片

盘片是硬盘中存储数据的主要部件。一个硬盘通常有多个盘片,每个盘片都可以分成许多轨道和扇区。轨道是由同心圆组成的,而扇区是由一条弧线和两条半径直线组成的一个小块。

3.3.电动机

电动机是硬盘中的一个关键部件,它带动磁盘旋转。磁盘必须非常精确地旋转,以便磁头可以在正确的位置读取和写入数据。

3.4.硬盘的读写操作

当需要读取硬盘上的数据时,计算机会发送一个读取请求到硬盘,然后磁头飞过磁盘表面找到正确的轨道和扇区,并读取相应的数据。当需要写入数据时,磁盘会接收一个写入请求,并将数据存储到正确的磁盘扇区中。

4.文件系统概述

文件系统是计算机中用于管理和组织硬盘或其他存储设备中数据的技术。文件系统的作用是让计算机能够方便地对存储在硬盘或其他存储设备中的数据进行管理、存储、读取和写入等操作,以及保证数据的安全性、完整性和可靠性。

Linux文件系统

4.1.文件系统的类型

Linux支持的文件系统种类非常多。按照存储位置的不同,可以将文件系统分为以下三类:

  1. 磁盘文件系统:把数据直接存储在磁盘中。常见的磁盘文件系统包括EXT2、EXT3、EXT4、ReiserFS、XFS、NTFS等。
  2. 内存文件系统:数据存储在内存中而不是硬盘中。常见的内存文件系统包括/tmpfs、/proc、/dev/shm、/sys等。
  3. 网络文件系统:可以将硬盘中的数据通过网络分享给其他计算机使用。常见的网络文件系统包括NFS、Samba等。

4.2.文件系统的相关概念

  • inode:包含了文件或目录的元数据信息,每个文件或目录都有一个唯一的inode号码,操作系统可以通过inode号码来找到文件或目录。
  • 超级块:文件系统中的一个非常重要的数据结构,它存储了文件系统的基本信息,如文件系统的大小、块大小、inode数量等等。
  • 块:文件系统中的基本单位,文件系统把一个大文件分成若干个块进行存储。

4.3.文件系统的优化

为了提高文件系统的性能,可以采取以下几种优化方法:

  1. 分区和格式化:合理的分区和格式化可以提高文件系统的性能。我们可以根据数据的不同特点、使用场景等,来选择合适的分区大小、格式化方式等参数。
  2. 选择合适的文件系统:不同的文件系统有不同的特点和应用场景,选择合适的文件系统可以提高系统的性能和稳定性。
    • 例如,对于大容量的磁盘,Ext4是一个比较好的选择,而对于USB闪存盘,则可以选择FAT32或NTFS。
  3. 调整inode_size:inode_size是一个非常重要的参数,它定义了每个inode节点占用的字节数。通常情况下,inode_size的值与块大小相同,也可以通过调整inode_size的大小来优化文件系统的性能。
  4. 缓存:缓存是一个非常有用的优化手段,它可以提高文件系统的访问速度。缓存可以分为内存缓存和磁盘缓存两种。内存缓存是指使用内存来缓存热点数据,以提高访问速度。磁盘缓存是指使用硬盘空间来作为缓存,以提高数据的访问速度。

5.总结

IO是计算机中最重要的部分之一,它涉及所有数据的输入和输出操作。

存储包括内存、硬盘、固态硬盘(SSD)和U盘等,各种存储介质都有其自身的优点和缺点。

硬盘是一种重要的长期存储设备,它由许多不同的部件组成,包括磁头、盘片、电动机等。

文件系统是管理和组织硬盘或其他存储设备中数据的技术,它的作用是让计算机能够方便地对存储在硬盘或其他存储设备中的数据进行管理、存储、读取和写入等操作,以及保证数据的安全性、完整性和可靠性。

相关文章:

关于 IO、存储、硬盘和文件系统

关于IO、存储、硬盘和文件系统 0.引入1.了解IO1.1.存储器IO1.2.设备IO 2.存储介质和存储类型2.1.内存2.2.硬盘2.3.固态硬盘(SSD)2.4.U盘 3.硬盘的工作原理3.1.磁头3.2.盘片3.3.电动机3.4.硬盘的读写操作 4.文件系统概述4.1.文件系统的类型4.2.文件系统的…...

计算机网络期中复习提纲-酷酷的聪整理版

第一章 概述 1.请介绍计算机网络在逻辑上的组成及其各自的作用。 计算机网络在逻辑上可以分为终端子网和通信子网两部分。 终端子网是指连接计算机与网络的部分,主要负责将数据从计算机发送到通信子网,或将从通信子网接收到的数据传输到计算机。终端子网通常包括物理层和数据…...

clickhouse的嵌套数据结构Tuple、Array与Nested类型介绍和使用示例

文章目录 Tuple类型Array类型Nested类型使用示例单独使用Tuple数组嵌套 Array(Tuple)Nested类型 生产使用:分组查询 Tuple类型 Tuple是ClickHouse数据库中的一种数据类型,它允许在一个字段中存储由不同数据类型组成的元组(tuple)。元组可以包含任意数量…...

人脸修复增强调研

Real-ESRGAN 工程地址:https://github.com/xinntao/Real-ESRGAN 效果: 人脸增强部分,调用的GFPGAN. GFPGAN 工程地址:https://github.com/TencentARC/GFPGAN 论文效果: BasicSR-ESRGAN: 项目地址&a…...

【Java】继承和多态

文章目录 一、继承1.继承的例子(is-a)2.组合的例子(has-a) 二、多态1.重写2.重载 三、继承的语法四、继承的注意事项1.初始化的顺序:2.super关键字 五、继承访问限定符六、多态实现方式七、多态的理解注意事项&#xf…...

ThingsBoard集群部署之k8s

1、概述 今天终于有时间去搞这个啦,拖了很久了,一直没时间,因为我本地没有那么多机器资源,开虚拟机不够,如果租用阿里云服务器,需要有充值的时间,因为这个费用是按小时付费,需要有连贯的时间来搞才行,今天恰好有时间,就开始搞了,弄成功搞出来了,特地写博客记录下来…...

【Gorm】如何在 GORM 中实现模型之间的关联?

文章目录 关联1、Belongs To(属于)2、Has One(拥有一个)3、Has Many(拥有多个)4、Many To Many(多对多) 关联 ​ 当涉及到 ORM(Object-Relational Mapping)的…...

Linux危险命令

rm -rf 命令 该命令可能导致不可恢复的系统崩坏。 rm -rf / #强制删除根目录下所有东西。rm -rf * #强制删除当前目录的所有文件。rm -rf . #强制删除当前文件夹及其子文件夹。fork 炸弹 :() { :|:& };:不太好理解可以转换成 bomb() {bomb|bomb& }; bomb一旦执行…...

FPGA入门系列13--异步串口通信

文章简介 本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码…...

k8s基础4——deployment控制器、应用部署、升级、回滚、水平扩容缩容

文章目录 一、基本介绍二、应用程序生命周期2.1 部署应用2.2 应用升级2.2.1 修改YAML文件升级(交互式)2.2.2 命令指定镜像版本升级(免交互式)2.2.3 调用vim升级 2.3 滚动升级2.3.1 升级流程 2.4 应用回滚2.4.1 查看历史发布版本2.…...

动态规划算法——40道leetcode实例入门到熟练

目录 t0.解题五部曲1.基础入门题目1.509. 斐波那契数2.70. 爬楼梯3.746. 使用最小花费爬楼梯4.62. 不同路径5.63. 不同路径 II6.343. 整数拆分7.96. 不同的二叉搜索树 2.背包问题1.01背包(二维数组实现)2.01背包(滚动数组实现)1.4…...

Nmap入门到高级【第十一章】

预计更新第一章. Python 简介 Python 简介和历史Python 特点和优势安装 Python 第二章. 变量和数据类型 变量和标识符基本数据类型:数字、字符串、布尔值等字符串操作列表、元组和字典 第三章. 控制语句和函数 分支结构:if/else 语句循环结构&#…...

配置本地Angular环境并使用VsCode调试Angular前端项目

配置本地Angular环境并使用VsCode调试Angular前端项目 配置本地Angular环境部署Node.Js本地环境配置一下环境变量 使用vscode调试Angular安装vscode 配置本地Angular环境 部署Node.Js本地环境 1 从官网下载node.js, 本文为(v16.13.0) 下载地址: https://nodejs.org/dist/v16.…...

100ASK_全志V853-PRO开发板支持人形检测和人脸识别

1.前言 V853 芯片内置一颗 NPU核,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。本章提供一个例程,展示如何使…...

简单实现基于UDP与TCP的回显服务器

目录 前言UDP 版的回显服务器需要用到的 api服务端客户端UDP 版本的字典客户端和字典服务器 TCP 版的回显服务器需要用到的 api服务器客户端对服务器进行改进(使用线程池)TCP 版本的字典客户端和字典服务器 前言 我们写网络程序, 主要编写的是应用层代码. 真正要发送这个数据,…...

家用洗地机有什么推荐的吗?家用洗地机哪款好

洗地机是创新、高效的清洁工具,其具有高性能的清洁能力和卓越的操作体验。与传统的清洁工具相比,洗地机可以迅速而彻底地打扫地面,降低清洁时间和人力成本,让我们在工作之余不用花费大量的时间和精力去打扫卫生,下面就…...

深度学习与文本聚类:一篇全面的介绍与实践指南

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

AP5153 线性降压恒流驱动芯片 2.5A

AP5153 是一种 PWM 调光的、低压 差的 LED 线性降压恒流驱动器。 AP5153 仅需要外接一个电阻和一个 NMOS 管就可以构成一个完整的 LED 恒 流驱动电路, 调节该外接电阻就可以调节 输出电流,输出电流可调范围为 20mA 到 3.0A。 AP5153 还可以通过在 DIM…...

Unity物理系统脚本编程(下)

一、修改物理材质 Unity对物体表面材料的性质做了件化处理,仅有5种常用属性: Dynamic Friction(动态摩擦系数)Static Friction(静态摩擦系数)Bounciness(弹性系数)Friction Combine…...

容器技术的发展

容器技术的发展 近年来,随着计算机硬件、网络以及云计算等技术的迅速发展,云原生的概念也越来越受到业界人士的广泛关注,越来越多的应用场景开始拥抱云原生,其中容器技术的发展起着至关重要的作用。本章将介绍容器技术的基础知识…...

Python Flask request中常见存储参数的介绍

Python Flask request中常见存储参数的介绍 首先从flask模块中导入请求对象: from flask import requestrequest.form 通过method属性可以操作当前请求方法,通过使用form属性处理表单数据(本质也是得到一个字典,如果传输的是字…...

php+vue网盘系统的设计与实现

该网盘系统的开发和设计根据用户的实际情况出发,对系统的需求进行了详细的分析,然后进行系统的整体设计,最后通过测试使得系统设计的更加完整,可以实现系统中所有的功能,在开始编写论文之前亲自到图书馆借阅php书籍&am…...

[前端]深浅拷贝

一、回顾变量类型 基础类型 boolean(bool) number string null undefined 引用类型 object ​ function ​ array 基本类型与引用类型的存储 基本类型一般存储在 栈 (栈小) 栈一旦确认 大小就固定 可能会造成溢出栈一般是先进后出用于存储…...

文章纠错免费软件-文字校对软件免费下载

自动校对稿件的软件 自动校对稿件的软件是一种基于自然语言处理(Natural Language Processing, NLP)和机器学习(Machine Learning)技术的工具,可以较为准确地检测和纠正文本中出现的语法、拼写、标点符号以及其他笔误…...

【Redis】Redis缓存雪崩、缓存穿透、缓存击穿(热key问题)

目录 一、缓存穿透 1、概念 2、解决办法 1.缓存空对象 2.布隆过滤 二、缓存雪崩 1、概念 2、解决办法 1.给key设置随机的过期时间TTL 2.业务添加多级缓存 3.利用集群提供服务可用性 4.缓存业务添加降级限流 三、缓存击穿 1、概念 2、解决办法 1.互斥锁 2.逻辑…...

为什么很多程序员喜欢linux系统?

a> Linux哪些行业在运用? Linux系统运用极其广泛,不少用户只知道windows,是因为,Linux的运用主要是在企业端。现在科技极其发达,我们手机在手,就能干很多事情,只需点一点屏幕,轻松…...

Bean 作用域和生命周期

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 lombok的使用案例引入作用域定义singleton单例作用域prototype原型作用域(多例作用域)request请求作用域session会话作用域ap…...

PMP考试常见13个固定套路

一、变更批准之后 变更批准后要做三件事: 1、在变更日志中记录 2、通知相关干系人 3、更新项目管理计划 二、风险的情景题 1、先判断风险识别了,还是风险发生了。 2、若是风险识别,按风险管理程序走; 3、若是风险发生,则应采取应急措施…...

Leecode101 ——对称二叉树

对称二叉树:Leecode 101 leecode 101 对称二叉树 根据题目描述,首先想清楚,对称二叉树要比较的是哪两个节点。对于二叉树是否对称,要比较的是根节点的左子树与根节点的右子树是不是相互翻转的,其实也就是比较两个树,…...

JVM学习随笔03——Java堆中new一个对象的步骤

目录 一、进行类加载 二、堆中分配内存 1、怎么输出GC日志: 2、内存分配的两种方式: 3、内存分配过程中并发控制的两种方式: 三、内存空间初始化 四、对象头初始化(对象头包含哪些信息?) 五、执行构…...