文件管理原理

文章目录


1)一个文件,它是文件内容和文件属性的集合
文件=文件属性+文件内容
文件属性
在这里插入图片描述
文件内容
在这里插入图片描述
2)文件分为打开的文件和未打开的文件
3)打开的文件是谁打开的?
由进程打开!而研究一个被打开的进程本质就是研究进程和文件的关系。
而被打开的文件之后,必须先被加载到内存,而文件=文件属性+文件内容,那么是谁先被加载到内存?属性先被加载到内存,属性中有文件的编号,可以用来定位哪一个文件,然后再找到指定文件内容。
一个进程可能打开多个文件,而而操作系统中,注定不止存在一个进程,因此也注定存在了多个进程打开大量文件的现象,进而这些被打开的文件,操作系统要进行管理,那么怎么管理这些被打开的文件–先描述,再组织。在Linux内核中,一个被打开的文件,都必须有自己的文件打开对象,其中包含文件的很多属性也就是文件属性的集合,然后操作系统对文件对象的管理就转换成了对数据结构的增删查改!一般为链表。
4)那么没打开的文件,存储在哪里?
没有打开的文件,在磁盘上存储,而放着的这些文件,对于我们来说最关心的是什么?便是这些文件是如何存储的!在磁盘上没有被打开的文件是非常多的,那么这些文件是被如何放置在磁盘上的,也就是如何存储的?分区域进行存储,在磁盘上划分空间来对文件存储,磁盘上存储文件就是要存储文件的内容和文件的属性,在Linux中对文件内容的存储采用数据块的存储方式,文件属性用inode存储,而Linux中文件在磁盘上的存储,这两者是分开存储的!如何分开存储就先剖析磁盘的结构磁盘也就是以前像光盘一样的东西
在这里插入图片描述
磁盘它的盘面是近乎光滑的,磁盘它由一块一块的盘片构成,每一盘片两面都是光滑的,而文件就是存储在这样一块块盘片之上,一块盘片存储大量的文件,而磁盘容量越来越大是因为它的盘片越来越多,它有很多片构成
在这里插入图片描述
每一面都有一个磁头,磁头摆动是在磁盘上面读写数据,它会左右摆动就是在定位文件,然后进行读写,电脑在开机时,盘面会高速转动,而磁头会在不停的左右摆动,这是在读取数据的过程,盘面转动是在读取不同的数据。在磁头左右摆动的时候磁头和盘面是不会接触的尽管这样看着可能是接触的,但是根本没有接触,因为若是接触的话,会将磁盘上面的数据给损坏,然后可能会造成数据的丢失,磁头是悬浮在盘面上的!其实磁头在左右摆动的时候,就是在定位数据寻址。磁头和盘片之间若是存在灰尘那么就会影响磁头的寻址,影响数据的定位,所以要保证在真空技术下存储。保证真空的技术很难因此在磁盘一旦进入灰尘之后就会慢慢的使数据寻址丢失,然后慢慢变卡!磁盘存数据是在盘面上存储的,磁盘是一个永久性存储介质。磁盘的存储构成有盘面,扇区,柱头,磁头
在这里插入图片描述
一个盘面它由无数个同心圆组成,而每一个同心圆称为一个个磁道,从圆心向外划半径向外延伸半径之间形成的弧道为一个个扇区,这样一个个扇区在磁道上存在无数个,一个磁道上存在大量的扇区,数据就是存在在这样一个个的扇区之上,在操作系统中扇区默认最小单位为512字节一个扇区大小为512字节。所以存储大文件的时候就可能是多个扇区连续使用,这样便于磁头定位数据,然后使访问数据效率提升!扇区是磁盘上访问的最小单位(512字节),因此我们可以把磁盘看作由无数个扇区构成的存储介质,而要把数据写入到磁盘中就是要先在磁盘中找到扇区来存储数据,存储数据总得先找到能存放的地方然后再将数据给存放进去而一个盘面有无数个扇区,磁盘也有很多盘面所以要先知道在哪一个盘面而磁头是定位盘面的所有要知道在哪一个磁头,磁头有自己对应编号便于定位盘面,知道在那一面之后要确定磁道,再确定再哪一个扇区这些查找的存储定位都要带有自己的编号,这样以便于确认访问在哪?磁头在左右摆动的过程中是在定位磁道和柱面的过程,而盘面在高速旋转就是在定位扇区的过程
在这里插入图片描述
所有磁盘的效率取决去磁头的运动和盘面的高速旋转,是由寻址决定的效率而这样一个寻址动作寻址越少的话,效率就是越高的,若是寻址动作越多相应的效率就越低下。所有在软件设计上要尽可能的把相关的数据放在一起,就是在程序设计上也是,尽量把相同类型的数据定义在一起,然后在磁盘上访问寻址时,才能更尽可能的拿出更多的数据,并且不用做大量的寻址工作。
因此未被打开的文件在磁盘上扇区存储着的,以固定大小在扇区上一个个扇区存储!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue快速入门(二)安装vue调试插件

教程很详细,直接上过程 上一篇 新增内容 在国内网站下载谷歌插件安装插件 点击跳转极简插件 此处我们以Chrome浏览器为例 到这里我们就成功安装了插件 使用上一篇博客的代码在浏览器F12调试一下 这样就可以使用了!!!

依赖倒转原则

1.1 MM请求电脑 MM电脑坏了,需要修电脑,是因为每次打开QQ,一玩游戏,机器就死了。出来蓝底白字的一堆莫名奇妙的英文。蓝屏死机了,估计内存有问题。 1.2 电话遥控修电脑 遥控修理电脑,打开内存条,两根内存…

Python学习从0到1 day20 第二阶段 面向对象 ② 封装

缘分 朝生暮死犹如露水 —— 24.4.1 学习目标: 1.理解封装的概念 2.掌握私有成员的使用 一、面向对象三大特性: 面向对象编程,是许多编程语言都支持的一种编程思想 简单理解是:基于模板(类)去创建实体&…

免费分享一套SpringBoot+Vue健身房管理系统,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue健身房管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue健身房管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue健身房管理系统 Java毕业设计项目来自互联…

【SQL Server】2. 将数据导入导出到Excel表格当中

最开始,博主介绍一下自己的环境:SQL Sever 2008 R2 SQL Sever 大致都差不多 1. 通过自带软件的方式 首先找到下载SQL Sever中提供的导入导出工具 如果开始界面没有找到自己下载的路径 C:\Program Files\Microsoft SQL Server\100\DTS\Binn下的DTSWiz…

题目:小明的背包5(蓝桥OJ 1178)

问题描述&#xff1a; 解题思路&#xff1a; 分组背包模板题&#xff0c;与优化01背包的不同之处在于第一维不可省略&#xff0c;要写s循环。注意要初始化 #include <bits/stdc.h> using namespace std; const int N 1e3 9; int dp[N][N]; // 分组背包模板&#xff0c;…

正则表达式浅析

正则表达式&#xff0c;又称正规表示法、常规表示法&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很…

【详细教程制作】用户列表

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

什么是工业协议转换软件?

在现代工业自动化领域&#xff0c;随着技术的不断革新和智能化水平的提升&#xff0c;各种工业设备和系统之间的通信变得日益重要。然而&#xff0c;由于历史、技术差异和标准多样化等原因&#xff0c;不同的工业设备和系统往往采用各自独特的通信协议&#xff0c;导致它们之间…

短视频素材哪里找?6个短视频素材下载推荐

哈喽&#xff01;短视频制作的小艺术家们&#xff0c;是不是时常在探寻短视频素材哪里找的秘密&#xff1f;放下你的疑惑吧&#xff0c;我来带你揭开6个藏宝图&#xff0c;领你进入短视频素材的奇妙世界&#xff0c;让你的作品在抖音、快手等平台上大放异彩&#xff01; 蛙学网…

经典文献阅读之--als_ros(移动机器人的可靠蒙特卡罗定位)

0. 简介 在本文中&#xff0c;我们关注移动机器人定位的可靠性问题。蒙特卡罗定位&#xff08;MCL&#xff09;广泛用于移动机器人的定位。然而&#xff0c;由于缺乏判定MCL估计可靠性的方法&#xff0c;其安全性仍难以保证。本文提出了一种新型定位框架&#xff0c;能够同时实…

springcloud基本使用二(远程调用)

创建两个springboot maven子项目 子项目名称分别为order-server和user-server 配置user-server子项目: 所需依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependenc…

线程安全问题+读写者问题

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 1.什么是线程安全问题&#xff1f; 线程安全问题是指在多线程环境中&#xff0c;当多个线程同时访问共享数据时&#xff0c;由于操作…

【RISC-V】如何使用release的risc-v gnu toolchain

riscv64-elf-ubuntu-22.04-gcc-nightly-2024.03.01-nightly.tar.gz 首先去release页面中获取相应的压缩包 将压缩包解压到想解压的位置&#xff0c;这里我选择了 mv Downloads/riscv64-elf-ubuntu-22.04-gcc-nightly-2024.03.01-nightly.tar.gz riscv64-tool-chain/然后解压…

Mac - Keychron K3 Pro 功能键改键 -via 改键配置 For Mac

前言 Keychron K3 Pro键盘连接Mac使用&#xff0c;顶部一排功能键&#xff0c;默认是Mac的多媒体功能键。F1&#xff5e;F12功能键&#xff0c;需要按&#xff1a;Fn F1&#xff5e;F12。 而在我的日常工作中&#xff0c;常用的是F1&#xff5e;F12&#xff0c;期望F1~F12功…

开源推荐榜【Pear Admin Flask 用python来创建后台管理系统】

最新技术高效快速开发&#xff0c;前后端分离模式&#xff0c;开箱即用。 核心模块包括&#xff1a;用户、角色、职位、组织机构、菜单、字典、日志、多应用管理、文件管理、定时任务等功能。 代码量少、学习简单、功能强大、轻量级、易扩展&#xff0c;轻松开发从现在开始&…

Web日志/招聘网站/电商大数据项目样例【实时/离线】

Web服务器日志分析项目 业务分析 业务背景 ​ 某大型电商公司&#xff0c;产生原始数据日志某小时达4千五万条&#xff0c;一天日志量月4亿两千万条。 主机规划 &#xff08;可略&#xff09;日志格式&#xff1a; 2017-06-1900:26:36101.200.190.54 GET /sys/ashx/ConfigH…

jdk1.8下载与安装

jdk1.8下载与安装 jdk1.8下载jdk1.8安装jdk环境配置环境测试 jdk1.8下载 可以通过官网来下载&#xff0c;但是需要Oracl账号注册&#xff0c;所以这里我提供了百度网盘下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1NBapId_3UbWrz_qqf95Wgg?pwddlk7 提取码…

Python100个库分享第6个—esmre

目录 专栏导读安装安装失败解决方案常见用法1&#xff1a;匹配邮箱常见用法2&#xff1a;查找HTML标签&#xff1a;常见用法3&#xff1a;替换URL链接&#xff1a;总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &a…

螺钉拧紧扭矩曲线的表现——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 螺钉拧紧扭矩曲线是描述螺钉在拧紧过程中扭矩与转角关系的曲线。在螺钉拧紧过程中&#xff0c;扭矩与转角之间存在一定的关系&#xff0c;这种关系可以通过扭矩曲线来反映。螺钉拧紧扭矩曲线常见的不同表现主要包括以下…