操作系统之文件管理

news2024/11/29 12:43:35

目录

认识文件管理

文件的逻辑结构

文件目录

文件的物理结构

文件存储空间管理

文件的基本操作

文件共享

文件保护

文件系统的全局结构

虚拟文件系统


 

内容摘自:4.1_1_初识文件管理_哔哩哔哩_bilibili 

认识文件管理

文件——就是一组有意义的信息/数据集合。

文件有哪些属性

文件内部数据的组织形式

文件之间通过树形结构组织起来

操作系统应向上提供哪些功能

文件是如何放在外存中的

其他文件功能

文件的逻辑结构

一个文件在逻辑上是如何存储在外存中的?

主要的研究对象是有结构文件

根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录可变长记录两种。

定长记录的有结构文件

可变长记录的有结构文件

有结构文件,根据各条记录在逻辑上如何组织,可以分为三类

顺序文件

顺序文件中,根据是否根据关键字来排序,又可分为两种

可见,有多种文件形式的组合,考虑以下几个问题

根据以上内容可知,定长记录的文件如果采用顺序文件的方式来存储,效果较好。

那么,对于不定长记录呢?

索引文件

索引顺序文件

索引顺序文件,是将记录进行分组,然后每组对应一个索引表项。

类似于,将全校的学生分成不同的年级,然后一个年级对应一个表项,然后年级内部采用顺序存储,这样,索引表的大小就会大大地减小。

是将顺序文件建立一个索引,所以叫做索引顺序文件。

加入全校有5000名学生,如果直接从5000个项的索引表中查找,效率不高,而且,索引表本身就很大。如果分成5个年级,那么每个年级就只有1000个学生,每个年级对应一个索引项,这样,索引表项就只有5个,然后内部使用顺序文件的方式来定位。

多级索引顺序文件

进一步分组,类似于,全校分年级,每个年级再分班,这样根据哪个年级哪个班来定位,效率就会大大提升了。

文件目录

文件目录就是我们平时使用电脑时操作的各种文件和文件夹

文件控制块

文件名很重要

对目录的一些常见操作

单级目录结构

两级目录结构

多级目录结构(树形目录结构,主流)

要理解绝对路径和相对路径

无环图目录结构

注意区分文件的共享和复制。

索引节点

文件的物理结构

总览

文件块、磁盘块

连续分配

链接分配-隐式链接

链接分配-显式链接 

注意一个缩写FAT,主流的文件分配方式。 

索引分配

根据文件名找到索引块,访问索引块找到索引表,根据索引表找到文件的存放地址。

注意区分文件的逻辑结构和物理结构,逻辑结构是指文件在逻辑上是如何组织的,物理结构指的是文件是如何实际地存放在外存中的。 

文件存储空间管理

这一小节主要探讨对空闲磁盘块的管理。

总览

存储空间的划分与初始化

接下来看看几种空闲空间的管理方法

空闲表法

 

空闲链表法

 

 

位示图法

 

 

成组链接法(了解)

 

 

文件的基本操作

几种基本操作

用户在进行这些操作时,系统做了什么呢?

创建文件

删除文件

 

打开文件

 

 

关闭文件

 

读文件

 

写文件

小结

 

注意:文件描述符是一个非负整数,内核可以通过这个文件描述符访问文件。 

注意:打开文件时,不会将文件数据从外存读入内存,只有打开文件后再读文件才可以。

文件共享

注意文件共享和复制的区别

硬链接

软链接

 

参考windows下的快捷方式。

 

删除目标文件时,快捷方式会失效

小结

文件保护

口令保护

 

加密保护

 

访问控制

 

 

 

文件系统的全局结构

原始磁盘

接着物理格式化(低级格式化)

再接着逻辑格式化(高级格式化)

 

文件系统在内存中的结构

 

比如open系统调用打开文件的背后过程

 

 

虚拟文件系统

普通文件系统

虚拟文件系统

要解决的三个问题

 

 

 

 

文件系统的挂载

 

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

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

相关文章

chatgpt赋能python:Python可以用C语言吗?——一份详细解读

Python可以用C语言吗?——一份详细解读 Python和C语言是两种常见而重要的编程语言。Python被广泛应用于各种领域,从人工智能到数据科学,而C语言则是系统编程,操作系统和编译器方面最受欢迎的语言之一。许多人认为Python和C语言没…

pikachu靶场总结

目录 一.暴力破解 1.基于表单的暴力破解 2.验证码绕过(on server) 3.验证码绕过(client) 4.token防爆破 二.Cross-Site Scripting 1.先了解XSS 2.反射型xss(get) 3.反射型xss(post&…

[SPSS] SPSS统计分析软件简介

SPSS的英文缩写来源于以下两个 ① Statistical Package for Social Science(社会科学统计软件包) ② Statistical Product and Service Solutions(统计产品与服务解决方案) SPSS是一种专业的统计分析软件。为用户提供了直观的图形化菜单界面,用户的数据管理和统计…

C++——多态与虚表

目录 1.多态的实现 2.虚表 2.1虚函数重写是怎么实现的 2.2多态的原理 2.3静态绑定与动态绑定 3.单继承体系中的虚函数表 ​编辑4.多继承体系中的虚函数表 5.菱形继承的虚函数表 6.菱形虚拟继承的虚函数表 1.多态的实现 在C中,要想实现多态,必…

认识elasticSearch并安装

一、介绍 定义:简称es,本质是一个开源的nosql数据库。主要用于全文检索,所以我们又称它为搜索引擎框架; 用途:实时数据搜索、日志采集分析 特点: 检索快。面对PB级的海量数据,用传统sql方式…

solr快速上手:配置从mysql同步数据(五)

0. 引言 上一节我们已经配置了新的索引,但是数据还是手动添加的,并没有实现自动从数据库同步,所以这一节,继续来实现从mysql同步数据到solr solr快速上手:solr简介及安装(一) solr快速上手&a…

chatgpt赋能python:Python中取某个元素的技巧

Python 中取某个元素的技巧 作为一种强大而灵活的编程语言,Python 常常被用来处理各种数据集合,如列表、元组、字典等。在处理这些数据集合的过程中,取某个元素的需求很常见,同时也有多种实现方法。在本文中,我们将介…

python学习-进阶基本知识点总结

(一)正则表达式 1、正则表达式 字符类 [abc]:匹配 “a”、“b” 或 “c” 中的任意一个字符。abc:除了 “a”、“b” 和 “c” 以外的任何字符。[a-z]:匹配任何小写字母。[A-Z]:匹配任何大写字母。[0-9]&…

第6节:obj/fbx/shp等转3dtiles(免费转换工具+视频)

推介使用cesiumlab 进行转换(可免费转换,含转换结果预览),网上也看了很多转换工具,要么操作安装不方便,要么转换出来效果不理想。 1、下载cesiumlab工具 下载地址 2、启动cesiumlab,进行登录访问(网页版) 没有账号的可以用手机号注册一个 3、 选择通用模型切片 …

恒容容器放气的瞬时流量的计算与合金氢化物放氢流量曲线的计算

有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为V,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为1MPa,容器出口连接着一个阀门开…

数据库关系操作集合

文章目录 传统集合运算1:联合(UNION)2:差集(EXCEPT 或 MINUS 或 LEFT JOIN&&IS NULL)3:交集(INTERSECT或INNER JOIN)4:笛卡尔积(JOIN) 专门集合运算1:选择(SELEC…

JVM那些事 (含经典面试题)

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 前言: 1. JVM:Java 虚拟机&#x…

【MySQL高级篇笔记-性能分析工具的使用 (中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库服务器的优化步骤 二、查看系统性能参数 三、统计SQL的查询成本:last_query_cost 四、定位执行慢的 SQL:慢查询日志 1、开启慢查询日志参数 2、查看慢查询数目 3、慢查询日志分析工具&#xf…

k8s 配置service失败

服务暴露的端口不可用 查看容器的状态是否为Running。 进入容器&#xff0c;然后对容器进行curl。 curl 127.0.0.0:<需要查询的端口>如果是refuse或者其他返回&#xff0c;说明服务完全不可用。 注册service 能够进行外网访问的必须是NodePort类型。NodeIP是无法进…

Java 实现在顺序表指定位置插入一个元素

一、思路 1.定义一个pos变量来记录要插入的位置. 2.定义一个usedSize变量来记录元素个数. 3.定义一个data变量来记录要插入的元素值. 4.要保证pos位置合法&#xff0c;也就是不是负数&#xff0c;因为是要保证pos位置前是要有元素&#xff0c;因此也不能大于元素个数. 5.也需要…

【电子学会】2023年03月图形化二级 -- 电子画板

电子画板 1. 准备工作 (1)删除默认的小猫角色,保留默认白色背景; (2)从角色库添加Arrow1角色作为画笔; (3)绘制五个角色:颜色分别为红、黄、绿、蓝、紫的圆形; (4)将Arrow1角色的第一个造型修改为下图所示状态,箭头尖端在角色中心位置。 2. 功能实现 (1)点…

他山之石可以攻玉:解锁9个chatGPT常用姿势

ChatGPT是一个颠覆性的人工智能&#xff0c;可以用来实现众多目标。下面是我们用中文提出的关于这些任务的指令&#xff0c;以及来自ChatGPT的中文回答示例。 调试代码 提示&#xff1a;为什么我的python代码报错&#xff1a;x [2, 3, 8 9]&#xff1f; ChatGPT回答&#x…

chatgpt赋能python:Python反转输出的利用

Python反转输出的利用 在Python编程中&#xff0c;有时候需要对一些字符串或列表进行反转输出。这种操作非常实用&#xff0c;可以用于字符串或列表翻转、倒序等场景&#xff0c;可以帮助我们提高代码的效率。在本文中&#xff0c;我们将介绍Python反转输出的方法以及实用性。…

2023/06/03 软件PM入门学习(二)

视频参考地址&#xff1a; B站闫波软件项目管理视频学习. 视频资源&#xff1a;video P3 本篇重点&#xff1a;过程、CMMI 简书日更计划同步记录&#x1f3c3;… 杂 项目管理五要素 技术、方法、团队建设、信息、沟通 战略角度 人员&#xff08;people&#xff09;问题 &am…