操作系统——文件管理

news2024/11/24 9:03:36

0.关注博主有更多知识

操作系统入门知识合集

目录

9.1文件系统概念

思考题:

9.2文件的物理结构

思考题:

9.3文件存储和目录

9.1文件系统概念

文件的定义:

  文件是计算机信息存取的一种重要组织形式,文件由若干信息项有序构成,信息项可以是一个字节,也可以是结构化的数据(多字节)。用户通过读写指针来存取文件的信息项;文件具有文件名,用户通过文件名存取文件

文件的分类:

  1.按用途分类:

    1)系统文件:包括操作系统的可执行程序和数据文件,这种文件对用户不开放,仅供操作系统使用

    2)库文件:操作系统为用户提供的各种标准函数库和实用程序等,用户只能使用这些文件,而无权对其进行修改

    3)用户文件:由用户创建的文件,例如用户创建的可执行文件、源文件、数据文件等等,这种文件的使用和修改权均属于用户

  2.按操作权限分类:

    1)只读文件:只允许进行读操作的文件

    2)读写文件:读写操作都允许的文件

    3)不保护文件:没有任何权限限制的文件

  3.按文件的性质分类:

    1)普通文件:指一般的用户或操作系统文件

    2)目录文件:记录目录里面文件列表的信息,例如文件名、文件存放地址、文件属性......实际上文件并不存储在目录当中,目录只负责记录文件的各项属性

    3)设备文件:在一些操作系统当中,把设备作为文件管理和使用,例如Linux

文件的属性:

  在Windows中,我们可以通过可以随时查看文件的属性:

  文件属性指定文件的类型、操作特性和存取保护等一组信息;文件属性存放在所在目录的目录文件中,也就是说,文件本身并不存储任何有关于自己本身属性的信息,所有的属性信息都存放在了所在目录的目录文件中。在MS-DOS操作系统当中,文件属性占目录项的一个字节(目录也是一个文件,所以目录也有信息项),例如[00000001]表示只读只读,[00000010]表示隐藏属性......

  如何证明文件本身不存储自己的属性信息呢?在Windows中,我们创建一个空文件,即没有任何内容的文件,其大小为0:

文件系统:

  1.定义:负责管理文件的机构称为文件系统

  2.功能:负责文件的创建、删除、读写、修改、复制和存取控制等行为,并管理存放文件的存储设备(即管理磁盘、硬盘......)

  3.目的:文件系统的目的就是让用户以文件名来存储文件

文件的结构:

  1.记录式文件:文件的信息项是结构化的数据。例如学生花名册文件包含若干个学生记录,每条记录记录有学生的姓名、学号、性别等等,每条记录都对应一个信息项,文件的头部需要保存文件的长度和数量等说明信息。记录式文件的缺点就在于浪费存储空间

  2.流式文件:文件的信息项是字节,文件的长度就是字节的数量。其优点在于无需额外的说明信息和控制信息并且节省存储空间

  3.现代操作系统当中的文件都是流式文件,由应用程序解释和处理文件。例如".cpp"源文件,记事本也可以打开它,Visual Studio编译器也可以打开它,但是这两款应用程序对该源文件的解释不同,以至于给用户呈现不同的效果:

文件的存取方法:

  1.顺序存取:按文件信息项排列顺序依次存取。文件打开时,读写指针指向第一个信息项,每存取一个信息项,读写指针自动向后跳转一个信息项,即存取下一个位置的信息项

  2.随机存取:存取操作时指定存取的位置。对流式文件或定长的记录式文件的存取位置比较容易确定;而不定长记录式文件定位存取位置比较麻烦

思考题:

1.计算机中还有哪些重要的信息存储方式?

除了文件以外,还有数据库、寄存器、高速缓存、U盘等等。

9.2文件的物理结构

文件物理结构指的是存储设备上的存储方式,强调合理利用存储空间,并缩短I/O的存取时间。文件的存储方式分为连续文件、索引结构、串联文件。

连续文件:

  1.概念:文件按逻辑块的顺序存放在硬盘连续的物理存储块中,文件目录记录了文件长度(块数)和第一个存储块的块号:

  2.优点:简单、支持顺序存取和随机存取;顺序存取速度快,其所需磁盘寻道次数和寻道时间最少

  3.缺点:文件不易于动态增长,如果预留空间则会造成浪费,不预留就可能导致存储空间重新分配和移动;不利于文件插入和删除(不利于动态增长);外部碎片问题

索引文件:

  1.概念:文件存放在不连续的存储块中,建立索引表记录文件逻辑块和物理存储块的对应关系,目录中的索引块就是索引表,并且是单独存储的。

  2.特点:文件=索引区+数据区;先访问索引,再访问数据;支持顺序存取和随机存取;支持文件的动态增长、插入、删除。

串联文件:

  1.概念:文件存放在不连续的存储块中,每个存储块有一个指针(next),指向文件的下一个存储块;文件目录指明文件名和第一个存储块的块号。串联文件就类似于带头链表,文件目录为头

  2.特点:适用于顺序存取,随机存取较为困难;提高了磁盘空间利用率,不存在外部碎片问题;有利于文件的动态扩充、插入和删除

  3.缺点:存取速度慢、不适合随机存取;若next出错,则访问文件失败,即可靠性不强;next指针占用一定的空间

  4.应用:典型的应用为FAT文件系统

思考题:

1.索引文件和串联文件有何异同?它们的优点各自是什么?

索引文件存储内容物理结构上不连续,需要索引表找到内容所在的物理地址,优点是索引所占内存空间较小,利用率较高。而串联文件利用链表数据结构将文件内容串联起来,需要增加内存用于指针上,降低内存使用效率,优点是查找较快。同:他们都是物理存储结构不连续方式。

9.3文件存储和目录

存储空间管理:

  1.功能:记录磁盘使用情况,管理和分配、回收存储空间

  2.记录磁盘空闲块的方法:空闲文件目录、空闲块链、位示图

  3.空闲文件目录

    1)空闲文件:把连续空闲区看成一个特殊文件,这个特殊文件由多个连续的空闲块组成

    2)空闲文件目录:所有空闲文件代表存储设备的全部空闲空间,为这些空闲文件建立专门的目录,即空闲文件目录,每个信息项对应一个空闲文件,包括第一个空闲块号、空闲块个数等信息

  4.空闲块链:把所有空闲块以链表的形式链接在一起,当申请者需要空闲块时,链头开始搜索所需空闲块;当回收空闲块时,把释放的空闲块逐个加在链尾

  5.位示图:从内存中划出若干个字节,每一比特位表示一个存储块的空闲或占用状态。1表示空闲,0表示被占用

文件目录管理:

  1.文件目录:文件名址录,即记录文件名和存放地址的目录;具有将文件名转换为外存物理位置的功能;文件属性也记录在目录中

  2.目录文件:文件目录以目录的形式存储在外存设备,这个文件称为目录文件

  3.目录结构:不同的文件系统文件按目录的组织也不完全相同,例如DOS操作系统的文件目录就有32个字节,然后被划分成了不同的区域:

  在UNIX当中,使用的是索引节点,即文件目录项的文件名和其他属性信息分开,后者单独组成一个定长数据结构,即索引节点i_node。这部分内存将在Linux系统编程中讲解

  主流的目录结构为单级目录、二级目录、多级目录,其中多级目录是以树组织而成的数据结构,并且也是现代操作系统使用的目录结构。

文件全名和路径:

  1.文件的全名:文件的全名包括从根目录开始到文件为止的通路上的所有子目录路径,子目录之间用"/"或"\"隔开,子目录名组成的部分又称为路径名。每个文件都有唯一的路径名

  2.两种路径名形式:绝对路径名:从根目录到指定的文件;相对路径名:从当前目录直到指定的文件。

  3.Linux文件目录:

文件的保护:对文件的访问,文件系统首先要检查访问权限:

  1.仅允许执行(E)

  2.仅允许读(R)

  3.仅允许写(W)

  4.仅允许在文件尾写(A)

  5.仅允许对文件进行修改(U)

  6.允许改变文件的存取权限(C)

  7.允许取消文件

  以上所有的文件权限可以随机组合

文件和目录的操作:目录虽然也可以看作文件,但是目录可做的操作比普通文件少:

  1.文件操作:创建文件、删除文件、写文件、读文件、定位文件、截短文件、属性设置和读取

  2.目录操作:目录只能创建和删除

典型的文件系统:微软公司常使用FAT16、FAT32、NTFS......而Linux常用的文件系统为EXT2、EXT3、EXT4......

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

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

相关文章

多项式时间验证与NP完全性

多项式时间的验证 对语言的“验证”算法: 验证与求解花费时间一样长:最短路径问题的一个实例的证书很容易能在多项式时间内被验证。实际上最短路径问题本身可以在多项式时间内求解。因此,根据指定的证书来验证与从头开始求解这个问题的时间…

Docker安装常用软件-Nacos

一、单机部署 官方网站:什么是 Nacos 1、下载最新nacos镜像 docker pull nacos/nacos-server 2、新建映射文件夹 --nacos/conf/application.properties --nacos/logs --nacos/sql ①application文件 # # Copyright 1999-2021 Alibaba Group Holding Ltd. #…

Ajax -- from表单与模板引擎

1. from表单的基本使用 1.1 什么是表单 表单在网页中主要负责数据采集功能。HTML中的标签,就是用于采集用户输入的信息,并通过标签的提交操作,把采集到的信息提交到服务器端进行处理。 1.2 表单的组成部分 表单由三个基本部分组成&#…

MySQL基础(七)单行函数

1. 函数的理解 1.1 什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检…

GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解

GNU C特殊语法部分详解 一、指定初始化1、数组初始化2、指定初始化结构体成员3、指定初始化的好处 二、宏构造利器:语句表达式1、表达式、语句和代码块2、语句表达式3、宏定义中的语句表达式 三、typeof 与container_of 宏1、typeof 关键字宏2、Linux内核中的contai…

提示词的天花板来了- ChatGPT 指导学习知识点

https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/ 访问 ChatGPT网站选择 GPT-4(或更高版本)模型将 Mr_Ranedeer.json 的内容复制粘贴到 ChatGPT让 Mr. Ranedeer 带领您完成配置过程 开始学习吧! 支持以下命令: /feedback&…

Golang每日一练(leetDay0055) 最长子串、相交链表

目录 159.至多包含两个不同字符的最长子串 Longest-substring-with-at-most-two-distinct-characters 🌟🌟 160. 相交链表 Intersection-of-two-linked-lists 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 …

【C++初阶】类与对象(中)

目录 一.类的6个默认成员函数二、构造函数特性 三、析构函数概念特性 四、拷贝构造函数概念特性 五、赋值运算符重载5.1 运算符重载5.2 赋值运算符重载 一.类的6个默认成员函数 在C中,一个类中并没有实现任何属性和方法,被叫做空类,但是一个…

《Linux 内核设计与实现》05. 系统调用

文章目录 内核通信API、POSIX、C库 系统调用系统调用号系统调用的性能 系统调用处理程序指定恰当的系统调用参数传递 系统调用的实现实现系统调用参数验证 系统调用上下文绑定一个系统调用的最后步骤从用户空间绯闻系统调用 内核通信 系统调用在用户空间进程和硬件设备之间添加…

【疯狂造轮子-iOS】JSON转Model系列之一

1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗忘。这段时间准备自己造一些轮子,主要目的还是为了提升自身实力,总不能一遇到问题就Google 。 之前写i博客园客户端的时候&#xff0…

借助PLC-Recorder,西门子PLC S7-200SMART实现2ms周期采集的方法(带时间戳采集)

目录 1、测试条件 2、测试结论 3、PLC的发送程序 4、PLC-Recorder侧的通讯设置 5、PLC-Recorder的通道配置 6、PLC-Recorder的变量配置 7、记录数据的情况 8、再说时间戳 9、小结 高速数据采集要保证速度,也要保证时刻的准确性。在windows系统里&#xff0…

ESP32学习笔记22-TWAI-CAN

22.TWAI-CAN 22.1概述 22.1.1参考博客 ESP32 基于自带控制器实现CAN总线通信(上) - 知乎 (zhihu.com) ESP32 基于自带控制器实现CAN总线通信(下) - 知乎 (zhihu.com) 22.1.2 ESP32 TWAI/CAN外设说明 可以支持标准帧格式(11位ID)和扩展帧格式(29位ID)ESP32 包含 1 个 T…

生信刷题之ROSALIND——Part 4 (MPRT, MRNA, ORF)

目录 写在前面1、Finding a Protein MotifProblemSample DatasetSample OutputCodeOutput 2、Inferring mRNA from ProteinProblemSample DatasetSample OutputexampleCodeOutput 3、Open Reading FramesProblemSample DatasetSample OutputCodeOutput 写在前面 本来打算每周更…

3.Hive基础命令练习

创建表格如下: 部门表: create table if not exists dept(deptno int, -- 部门编号dname string, -- 部门名称loc int -- 部门位置 ) row format delimited fields terminated by \t; 员工表: create table if not exists emp(empno int,…

AI 工具合辑盘点(十三)持续更新 之 面向宠物爱好者的 AI 工具和面向电影爱好者的 AI 工具

亲爱的宠物爱好者,这个部分是专门为你准备的。🐾 不论你是爱狗人士还是铲屎官,AI 都能满足你。 访问地址: This Cat Does Not Exist 猫咪生成器 你知道喜欢猫的爱好有个专门的名字吗?在国外被称为ailurophilia&…

操作系统考试复习——第四章 对换 分页存储管理方式

对换技术也成为交换技术,由于当时计算机的内存都非常小,为了使该系统能分时运行多个用户程序而引入了对换技术。 1.对换的引入: 所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,…

zk之数据的发布与订阅

数据的发布和订阅: (1)数据的发布与订阅是一个一对多的关系。多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态发生变化时,会通知所有的订阅者对象,使它们能够自动的更新自己的状态。发布和订阅可以让发…

SpringBoot项目修改application.yml,application-prod.yml配置文件中的端口,数据库链接等信息后,项目突然不能运行

SpringBoot项目修改application.yml,application-prod.yml配置文件中的端口,数据库链接等信息后,项目突然不能运行 问题记录 ,SpringBoot项目修改application.yml,application-prod.yml配置文件中的端口,数…

跟姥爷深度学习5 浅用卷积网络做mnist数字识别

一、前言 前面用TensorFlow浅做了一个温度预测,使用的是全连接网络,同时我们还对网上的示例做了调试和修改,使得预测结果还能看。本篇我们更进一步使用CNN(卷积)网络,不过再预测温度就有点大材小用&#x…

Stable Diffusion Webui 本地部署【踩坑记录】

1、安装python Python Release Python 3.10.6 | Python.org 2、安装git git是一个代码管理工具,通过它可以将开源项目仓库克隆到本地 下载地址:Git - Downloading Package 3、下载stable-diffusion-webui 可以新建一个目录,在文件夹内单…