操作系统——文件管理

1)什么是文件?

2)单个文件的逻辑结构和物理结果之间是否存在制约关系?

本节内容较为抽象,本节要注意区分文件的逻辑结构和物理结构。

一、文件系统基础

1.文件的基本概念(一切皆文件)

文件(File)是以硬盘位载体的存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

在系统运行时,计算机以进程为基本单位进行资源的调度和分配。而在用户进行的输入,输出中,则以文本为基本单位。

1.文件的定义

文件的结构:

1)数据项:分为基本数据项(用来描述一个对象的某种属性的一个值,是数据中最小逻辑单位)和组合数据项(由多个数据项组成)

2)记录:是一组相关的数据项集合,描述一个对象在某方面的属性

3)文件:分为有结构文件(若干个相似的记录组成)和无结构文件(被视为一个字符流)

文件可以是数组、字符或二进制代码。

2.文件的属性

1)名称:文件名唯一

2)类型:被支持不同类型的文件系统所使用

3)创建者:文件创建者的ID

4)所有者:文件当前所有者的ID

5)位置:指向设备和设备上文件的指针

6)大小:文件当前大小(字节,字或块表示)

7)保护:对文件进行保护的访问控制信息

8)创建时间、最后一次修改时间和最后一次存取时间:文件创建、上次修改和上次访问的相关信息,用于保护和跟踪文件的使用

操作系统提供文件控制块来维护文件元数据。

2.文件控制块和索引节点

1.文件控制块(FCB):用来存放控制文件需要的各种信息的数据结构。

文件与FCB一一对应,FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。每当创建一个新的文件,系统就要为它建立一个FCB,用来记录文件的各种属性。

FCB包含:

1)基本信息:文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等。

2)存取控制信息:文件主的存取权限、核准用户的存取权限以及一般用户的存取权限。

3)使用信息:文件建立时间、上次修改时间等。

2.索引节点

在文件从磁盘调入内存时,采用文件名和文件描述信息分离的方法,使文件描述信息单独形成一个称为索引节点的数据结构(i节点)。在文件目录中的每个目录项仅由文件名和相应的索引节点号(指针)构成。

1)磁盘索引节点

存放在磁盘中

2)内存索引节点

存放在内存中,比磁盘索引节点多索引节点号,状态,访问计数,逻辑设备号,链接指针。

FCB或索引节点相当于图书馆中图书的索书号。

3.文件操作

1.文件的基本操作

1)创建文件

2)删除文件

3)读文件

4)写文件

2.文件的打开与关闭

文件打开的过程:

系统检索到指定文件的目录项后,将该目录项从外存复制到内存中的打开文件表的一个标目中,并将该表目录的索引号返回给用户,当用户再次对该文件发出操作请求时,可以通过索引号打开文件表中查找到文件信息,节省大量的检索和开销。

文件关闭的过程:

采用两级表:整个系统表(包含与进程无关的信息)和每个进程表(进程对文件的使用信息)。

每个文件都会关联一个open 打开计数器,来记录多少进程打开了该文件。当文件不再使用,利用操作系统调用close关闭它,会删除单个进程的打开文件表中的相应条目,打开计数器也会递减。

文件名不必是打开文件表的一部分,只要文件未关闭,所有文件操作都是通过文件描述符(索引号)来进行的。

注意:只要完成了文件打开open()系统调用,后面在使用read()、write()、Lseek()、close()等文件操作的操作系统调用,就不再使用文件名,而是使用文件描述符(索引号)。

每个文件打开都具有:

1)文件指针

2)文件打开计数

3)文件磁盘位置

4)访问权限

4.文件保护

1.访问类型

对文件保护可以从限制对文件的访问类型出发:
1)读

2)写

3)执行

4)添加

5)删除

6)列表删除

保护只可以在底层提供,如具有读权限的用户就用有复制和打印权限。

2.访问控制

为每个文件和目录增加一个访问控制列表。来规定每个用户名及其所允许的访问类型。

访问控制列表分为:拥有者、组、其他。

口令和密码是另外两种访问控制方式。

口令:用户在建立一个文件时提供一个口令,系统为其建立FCB时附上口令,同时告诉允许共享该文件的其他用户。用户请求访问时必须提供相应的口令。这种方法时间和空间的开销不多,缺点是口令直接存在系统内部,不够安全。

密码:用户对文件进行加密,文件被访问时要使用密钥,并没有控制用户对文件的访问类型。

5.文件的逻辑结构

文件的逻辑结构是指从用户的角度出发所看到的文件组织形式。

文件的物理结构(存储结构)是指文件存储在外存上的存储组织形式,是用户看不到的。

按逻辑结构分:

1.无结果文件

最简单的文件组织形式,有字符流构成,又称流式文件,以字节为单位。

对它的访问是通过读写指针来指出下一个要访问的字节的。在系统中允许的大量源程序、可执行文件、库函数等就是无结果文件。由于无结构文件没有结构,所以访问只能通过穷举搜索的方式。

2.有结构文件

根据记录长度是否相等分为:

1)定长记录

文件中所有记录长度都是相等的,各项数据都在记录中的相同位置,具有相同的长度。检索记录的速度快,方便用户对文件进行处理,广泛用于数据处理中。

2)变长记录

文件中记录的长度不一定相同,记录中所包含的数据项数目不同,也可能是数据项本身的长度不定,检索记录只能顺序查找,速度慢。

有结构文件按记录的组织形式可以分为:

1)顺序文件

文件中的记录一个接一个地顺序排列,记录可以是定长记录或变长记录。

1.串结构:各记录之间的顺序与关键字无关,通常是按存入的先后时间进行排列,检索时必须从头开始顺序依次查找,比较费时。

2.顺序结构:按所有记录关键字顺序排列,对于定长记录的顺序文件,检索时可以采用折半查找,效率高。

顺序文件的效率是所有逻辑文件中最高的,在经常需要查找、修改、增加或删除单个记录的场合,顺序文件的性能最差。

2)索引文件

变长记录的顺序文件只能顺序查找,效率低,那么可以建立一张索引表,为主文件的每个记录在索引表中分别设置一个索引表项,包含指向记录的指针和记录长度,索引表按关键字排序,因此本身也是一个定长记录的顺序文件,加快记录的检索速度。

3)索引顺序文件

将顺序文件分为若干组,为文件建立一张索引表,为每组中的第一个记录建立一个索引项,其中包含该记录的关键字和指向该记录的指针。

索引文件和索引顺序文件都提高了查找速度,但都因为配置了索引表增加了存储空间。

4)直接文件或散列文件(Hash)

通过键值或散列函数转换的键值直接决定记录的物理地址。就是哈希查找。

6.文件的物理结构

类似于内存分页,磁盘中的存储单元也被分为一个个的块,叫磁盘块,其大小通常与内存的页面大小相同。内存与磁盘简单数据交换(磁盘I/O)都是以块为单位进行的。

1.连续分配

要求每个文件在磁盘上占有一组连续的块,磁盘地址定义了磁盘上的一个线性排序,这种排序使进程访问磁盘时需要的寻道数和寻道时间最小。

2.链接分配

采用一种离散分配的方式。

链式分配的优点是:1.消除了磁盘外部碎片,提高了磁盘利用率。

2.便于动态地为文件分配盘块,无需知道文件大小。

3.文件的插入删除很方便。

1)隐式链接

目录项中含有文件第一块的指针(盘块号)和最后一块的指针。每个文件对应一个磁盘块的链表,磁盘块分布在磁盘的任何地方。处了文件的最后一个盘块外,每个盘块都存有指向下一个文件的指针,这些指针对用户是透明的。

缺点:1.只支持顺序访问,只能从第一块开始,随机访问效率很低。

2.稳定性问题,文件盘块中任何一个指针出现问题,都会导致文件内容丢失。

3.指向下一个盘块的指针也要占存储空间。

2)显式链接

将用于链接文件各物理块的指针,显示地存放在内存的一张链接表中,该表在整个磁盘中只设置一张,叫文件分配表(FAT)。每个表项中存放指向下一个盘块的指针。文件目录中只需要记录该文件的起始块号,后序块号可以通过FAT找到。

FAT的表项与全部磁盘块一一对应,-1 -2都表示磁盘块空闲。

优点:1.支持顺序访问,也直接访问。

2.FAT在系统启动时就被读入内存,检索记录是在内存中进行的,因而不仅显著提高了检索速度,而且明显减少了访问磁盘的次数。

缺点:FAT需要占一定的内存空间。

3.索引分配

1)单级索引分配方式

2)多级索引分配方式

3)混合索引分配方式

1)直接地址

2)一次间接地址

3)多次间接地址

1)什么是文件?

文件是以计算机硬盘为载体的存储在计算机上的信息集合,它的形式多样。

2)单个文件的逻辑结构和物理结果之间是否存在制约关系?

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

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

相关文章

【漏洞复现】Netgear WN604 downloadFile.php 信息泄露漏洞(CVE-2024-6646)

0x01 产品简介 NETGEAR WN604是一款由NETGEAR(网件)公司生产的无线接入器(或无线路由器)提供Wi-Fi保护协议(WPA2-PSK, WPA-PSK),以及有线等效加密(WEP)64位、128位和152…

AVL树超详解上

前言 学习过了二叉树以及二叉搜索树后(不了解二叉搜索树的朋友可以先看看这篇博客,二叉搜索树详解-CSDN博客),我们在一般情况下对于二叉搜索树的插入与查询时间复杂度都是O(lgN),是十分快的,但是在一些特殊…

视频监控平台LntonCVS视频融合共享平台智慧安防视频监控汇聚应用方案

LntonCVS是一款功能强大且灵活部署的安防视频监控平台。它支持多种主流标准协议,包括GB28181、RTSP/Onvif、RTMP等,同时能够兼容海康Ehome、海大宇等厂家的私有协议和SDK接入。该平台不仅提供传统的安防监控功能,还支持接入AI智能分析&#x…

医疗器械产品的 EMC(电磁兼容性)中A、B、C、D 类的区别是什么

在医疗器械产品的 EMC(电磁兼容性)中,按照 GB 17625.1 标准的分类,A、B、C、D 类的区别主要在于设备的谐波电流发射限值不同。 A 类设备:平衡的三相设备、不归属 B、C 或 D 类的设备、家用电器(不包括列入 …

TiDB实践—索引加速+分布式执行框架创建索引提升70+倍

作者: 数据源的TiDB学习之路 原文来源: https://tidb.net/blog/92d348c2 背景介绍 TiDB 采用在线异步变更的方式执行 DDL 语句,从而实现 DDL 语句的执行不会阻塞其他会话中的 DML 语句。按照是否需要操作 DDL 目标对象所包括的数据来划分…

直播带货还是新电商吗?

现在已经没有新电商和老电商区分,抖音现直播电商现在也算是传统电商了。直播电商这几年听起来非常的火热,但是它有天花板,最多也就3万亿的市场规模,为什么呢?因为它是基于 IP 模型的,有非常强的头部效应。 …

一分钟图情论文:《叙事信息的语义表示与组织结构研究》

叙事作为人类知识与信息交流的重要方式,其语义建模、形式化表示与组织在数智时代显得尤为重要。近日,由曲阜师范大学和武汉大学的侯西龙、王晓光教授合著论文《叙事信息的语义表示与组织结构研究》从语义表示和组织结构视角出发审视了叙事信息的复杂性和…

电子画册制作利器大揭秘,提升销量全靠它

​随着科技的不断发展,电子画册逐渐成为企业营销的新宠。它以生动活泼、互动性强的特点,吸引了众多消费者的目光。而一款优秀的电子画册制作利器,更是为企业提升了销量,实现了营销目标。本文将为大家揭秘电子画册制作的利器&#…

《基于 Kafka + Quartz 实现时限质控方案》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

密码学基础-Hash、MAC、HMAC 的区别与联系

密码学基础-Hash、MAC、HMAC 的区别与联系 Hash Hash 是一种从一段数据中创建小的数字“指纹”的方法。就像一个人的指纹代表一个人的信息一样,Hash 对输入的数据进行整理,生成一个代表该输入数据的“指纹” 数据。通常该指纹数据也可称之为摘要、散列…

linux配置podman阿里云容器镜像加速器

1.下载podman yum install -y podman systemctl status podman systemctl start podman 2.获取阿里云个人容器镜像加速器地址 访问阿里云官网:首先,您需要访问阿里云(Alibaba Cloud)的官方网站。阿里云官网的URL是:…

TinyVue:与 Vue 交往八年的组件库

本文由体验技术团队莫春辉老师原创~ 去年因故停办的 VueConf,今年如约在深圳举行。作为东道主 & 上届 VueConf 讲师的我,没有理由不来凑个热闹。大会结束后,我见裕波在朋友圈转发 Jinjiang 的文章《我和 Vue.js 的十年》,我就…

如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等

SLAM&3DGS 1)SLAM/3DGS/三维点云/医疗图像/扩散模型/结构光/Transformer/CNN/Mamba/位姿估计 顶会论文指导 2)基于环境信息的定位,重建与场景理解 3)轻量级高保真Gaussian Splatting 4)基于大模型与GS的 6D pose e…

【AI大模型】生成式AI的未来——CHAT还是AGENT?

【AI大模型】CHAt还是AGENt? 最近,许多人工智能公司或者部门都在针对Agent——人工智能体有所动作。 例如: 文心一言智能体 Gnomic智能体 英伟达视觉AI代理 那么人工智能概念中的智能体Agent到底是什么呢?它又为何会突然在人工智…

「网络通信」HTTP 协议

HTTP 🍉简介🍉抓包工具🍉报文结构🍌请求🍌响应🍌URL🥝URL encode 🍌方法🍌报文字段🥝Host🥝Content-Length & Content-Type🥝User…

基于Nginx搭建RTMP流媒体服务器视频无法保存

文章目录 基于Nginx搭建RTMP流媒体服务器安装Nginx-RTMPNginx 配置文件 视频无法保存 基于Nginx搭建RTMP流媒体服务器 安装Nginx-RTMP 要实现RTMP流媒体服务器需要安装Nginx-RTMP模块 已有Nginx安装Nginx-RTMP模块 sudo apt update sudo apt install libnginx-mod-rtmp可能会…

pnpm build打包时占内溢出

这两天在打包H5网页的时候失败,总是提示下方错误 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 严重错误:堆限制附近标记压缩无效分配失败 - JavaScript 堆内存不足 尝试了多种方法&…

XXE:XML外部实体引入

XXE漏洞 如果服务器没有对客户端的xml数据进行限制,且版本较低的情况下,就可能会产生xxe漏洞 漏洞利用流程 1.客户端发送xml文件,其中dtd存在恶意的外部实体引用 2.服务器进行解析 3.服务器返回实体引用内容 危害:任意文件读…

JavaScript之WebAPIs-BOM

目录 BOM操作浏览器一、Window对象1.1 BOM(浏览器对象模型)1.2 定时器-延时函数1.3 js执行机制1.4 location对象1.5 navigator对象1.6 history对象 二、本地存储三、补充数组中的map方法数组中的join方法数组中的forEach方法(重点)数组中的filter方法(重…

2024可信数据库发展大会:TDengine CEO 陶建辉谈“做难而正确的事情”

在当前数字经济快速发展的背景下,可信数据库技术日益成为各行业信息化建设的关键支撑点。金融、电信、能源和政务等领域对数据处理和管理的需求不断增加,推动了数据库技术的创新与进步。与此同时,人工智能与数据库的深度融合、搜索与分析型数…