【考研408操作系统】最容易理解的知识体系-文件管理-面向计算机管理

news2024/12/23 13:55:15

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家


本篇内容续写上一篇的【考研408&操作系统】最容易理解的知识体系-文件管理-面向人类管理

这一篇将站在计算机如何管理好文件的角度去梳理这一章节的知识点

目录

本篇内容续写上一篇的【考研408&操作系统】最容易理解的知识体系-文件管理-面向人类管理

文件系统

文件系统结构

用户接口

文件目录系统

存取控制模块

逻辑文件系统

文件信息缓冲区

物理文件系统

辅助分配模块

设备管理模块

上面提到的应用与用户接口之间的交互  但是不同文件系统之间的差异 规格可能不一样 这样就会容易造成一些错误和带来麻烦  为了解决这个问题 提出了虚拟文件系统(VFS)

虚拟文件系统(VFS)

​编辑

文件系统挂载

虚拟文件系统与文件系统挂载的关系

文件管理

空闲文件管理(即文件的空闲空间的管理模式)

1. 空闲表法

2. 空闲链表法

3. 位示图法

4. 成组链接法

​编辑

非空闲文件管理

连续分配

链接分配

1.隐式链接

2.显式链接

索引分配

1.单级索引

2.多级索引

3.混合索引


文件系统

文件系统结构

用户接口

用户接口是文件系统的最顶层,为用户提供了与文件系统交互的方式。这包括文件的创建、删除、移动、重命名等操作,以及打开、读写、关闭文件等基本文件操作。用户接口隐藏了文件系统内部的复杂性,使得用户能够以一种直观和方便的方式使用文件系统。

文件目录系统

文件目录系统负责维护文件系统中的目录结构,包括文件和子目录的组织。它允许用户通过路径名访问文件,实现文件和目录的浏览、搜索和管理。目录系统还负责处理文件名到索引节点的映射,是文件系统访问控制和路径解析的基础。

存取控制模块

存取控制模块负责文件的安全性和访问控制。它根据用户的身份和权限,决定用户对文件的访问请求是否被允许。存取控制模块通常与用户账户和组管理紧密结合,确保文件系统的安全性和数据的完整性。

逻辑文件系统

逻辑文件系统处理文件的逻辑结构和访问方法。它定义了文件的属性(如大小、类型、权限等),以及文件数据在内存中的表示。逻辑文件系统还负责文件的缓冲管理,通过缓存文件数据来提高文件访问的效率。

文件信息缓冲区

文件信息缓冲区是逻辑文件系统和物理文件系统之间的中间层,用于暂存文件的元数据和部分数据。缓冲区可以减少对物理存储设备的访问次数,提高文件系统的访问速度和整体性能。

物理文件系统

物理文件系统负责管理文件在存储设备上的实际存储。它涉及到文件分配策略(如连续分配、链接分配、索引分配等),以及磁盘空间的管理。物理文件系统还负责处理文件的物理读写操作,将逻辑文件系统中的请求转换为对存储设备的实际操作。

辅助分配模块

辅助分配模块是物理文件系统中的一个组成部分,它负责管理文件系统中的空闲空间。通过使用空闲表法、空闲链表法、位示图法或成组链接法等技术,辅助分配模块能够高效地分配和回收磁盘空间,保证文件系统的有效运行。

设备管理模块

设备管理模块是操作系统中负责管理所有硬件设备的组件,包括存储设备。它负责设备的初始化、配置和调度,确保设备的正确使用和高效运行。在文件系统中,设备管理模块与物理文件系统紧密协作,共同完成文件的存储和访问。

上面提到的应用与用户接口之间的交互  但是不同文件系统之间的差异 规格可能不一样 这样就会容易造成一些错误和带来麻烦  为了解决这个问题 提出了虚拟文件系统(VFS)

虚拟文件系统(VFS)

虚拟文件系统是操作系统中的一个抽象层,它将不同的文件系统统一为一个统一的接口集,使得应用程序能够通过统一的方式来访问不同类型的文件系统。VFS 的主要特点和功能包括:

  1. 统一的接口:为所有文件系统提供一个统一的API,简化了应用程序对文件系统的操作。
  2. 文件系统无关性:应用程序不需要关心底层文件系统的实现细节,只需通过VFS提供的接口进行操作。
  3. 动态挂载:支持动态挂载和卸载文件系统,提供了更好的灵活性和扩展性。
  4. 文件系统类型支持:能够支持多种文件系统类型,如ext4、NTFS、FAT32等。

文件系统挂载

文件系统挂载是指将一个文件系统与文件系统的某个目录关联起来的过程。挂载后,该目录下的操作将被转发到挂载的文件系统。挂载的主要知识点包括:

  1. 挂载点:挂载点是一个现有的目录,它作为访问挂载文件系统的入口。
  2. 设备文件:挂载通常与一个设备文件关联,设备文件代表了要挂载的存储设备。
  3. 挂载参数:挂载时可以指定一些参数,如读写权限、文件系统类型等。
  4. 卸载:卸载是挂载的逆过程,它将断开目录与文件系统的关联,使得存储设备可以被安全地移除或重新分配。

虚拟文件系统与文件系统挂载的关系

虚拟文件系统通过抽象化不同文件系统的操作,使得文件系统挂

文件管理

空闲文件管理(即文件的空闲空间的管理模式)

1. 空闲表法

基本概念:空闲表法为每个文件分配一块连续的内存空间,系统为外存上的所有空闲区建立一张空闲盘块表,每个空闲区对应于一个空闲表项,包括起始序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息。

性质:这种方法便于快速找到大的连续空间,但可能会导致外部碎片。

考点:空闲表的构建和维护,空闲空间的分配和回收。

易错点:在频繁的分配和回收操作中,空闲表可能会变得分散,影响查找效率。

2. 空闲链表法

基本概念:分为两种形式:

  • 空闲盘块链:以盘块为单位,将所有空闲空间链接成一条链。
  • 空闲盘区链:以盘区为单位,将所有空闲空间链接成一条链。

性质:空闲链表法可以快速分配空间,但可能产生外部碎片。

考点:链表的构建、遍历和维护,空闲空间的分配策略。

易错点:链表的维护需要额外的指针字段,可能会导致空间使用效率降低。

3. 位示图法

基本概念:利用二进制的一位来表示磁盘中一个盘块的使用情况,0表示空闲,1表示已分配。

性质:位示图法可以快速确定盘块的使用情况,适用于随机分配。

考点:位示图的构建和维护,位操作技巧。

易错点:位示图的空间效率取决于磁盘大小,对于大容量磁盘可能占用较多内存。

4. 成组链接法

基本概念:将顺序的n个空闲扇区地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一个顺序空闲扇区的地址,形成链式结构。

这里的成组 指的是 将这些块 分组的作为若干个集合 在超级块里面以每一组的首块号做指针 指向自己的那个组 在自己的组里面如果位置不够装完 又可以进行套娃 就无限的使用这个方法进行链接

性质:成组链接法可以减少查找空闲空间的时间,适用于顺序分配。

考点:成组链接的构建和维护,空闲空间的快速分配。

易错点:如果空闲空间分散,成组链接法可能需要多次查找才能找到足够大的空间。

非空闲文件管理

连续分配

基本概念:连续分配方式为每个文件分配一块连续的存储空间。这种方式简单,支持顺序访问,减少了寻道时间和旋转延迟。

性质

  • 实现简单,存取速度快。
  • 容易产生外部碎片。
  • 文件长度不宜动态增加。

考点:连续分配方式的特点、优点和缺点,以及如何减少外部碎片的产生。

易错点:连续分配方式可能导致文件不易动态扩展,且容易产生外部碎片。

链接分配

链接分配有两种形式:隐式链接和显式链接。

1.隐式链接

基本概念:每个文件由一系列离散的盘块组成,每个盘块包含指向下一个盘块的指针。

性质

  • 消除了外部碎片。
  • 便于文件的增删改。

考点:隐式链接的实现方式,以及如何通过指针实现文件的动态扩展。

易错点:隐式链接可能导致文件访问速度较慢,因为需要顺序访问每个盘块。

2.显式链接

基本概念:使用一张文件分配表(FAT)来存储文件各个盘块的指针。

性质

  • 提高了文件访问速度。
  • FAT表本身可能成为系统的瓶颈。

考点:显式链接的实现方式,FAT表的作用和优化。

易错点:显式链接的FAT表管理可能变得复杂,特别是在文件数量很多的情况下。

索引分配

索引分配也分为几种形式:单级索引、多级索引和混合索引。

1.单级索引

基本概念:每个文件都有一个索引块,其中包含该文件所有盘块的地址。

性质

  • 支持直接访问。
  • 没有外部碎片。

考点:单级索引的实现方式,以及如何通过索引块快速访问文件。

易错点:单级索引的索引块大小可能限制了文件的最大长度。

2.多级索引

基本概念:当单级索引块不足以容纳所有盘块地址时,使用多级索引,即索引的索引。

性质

  • 支持更大的文件。
  • 增加了存储开销。

考点:多级索引的实现方式,以及如何通过多级索引快速定位盘块。

易错点:多级索引可能导致访问延迟增加,因为需要多次查找索引。

3.混合索引

基本概念:结合了连续分配、链接分配和索引分配的特点。

性质

  • 灵活性高。
  • 可以适应不同大小的文件。

考点:混合索引的设计原则和实现方式。

易错点:混合索引可能导致管理复杂度增加,需要仔细设计以避免性能下降。


另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


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

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

相关文章

.欧拉函数.

先介绍欧拉函数: 贴一张 证明: 这里利用容斥原理来进行证明:若要求1~N当中与N互质的个数,则应在1~N当中去除N的质因数的倍数,因为既然是因数,那么一定不与N互质,既然是N的因数,那么…

初识Laravel(Laravel的项目搭建)

初识Laravel(Laravel的项目搭建) 一、项目简单搭建(laravel)1.首先我们确保使用国内的 Composer 加速镜像([加速原理](https://learnku.com/php/wikis/30594)):2.新建一个名为 Laravel 的项目&a…

gfast前端UI:基于Vue3与vue-next-admin适配手机、平板、pc 的后台开源模板

摘要 随着现代软件开发的高效化需求,一个能够快速适应不同设备、简化开发过程的前端模板变得至关重要。gfast前端UI,基于Vue3.x和vue-next-admin,致力于提供这样一个解决方案。本文将深入探讨gfast前端UI的技术栈、设计原则以及它如何适配手机…

(补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式

文章目录 前言一、进制1 逢几进一2 常见进制在java中的表示3 进制中的转换(1)任意进制转十进制(2)十进制转其他进制二、计算机中的存储1 计算机的存储规则(文本数据)(1)ASCII码表(2)编码规则的发展演化2 计算机的存储规则(图片数据)(1)分辨率、像素(2)黑白图与灰度…

Linux 复现Docker NAT网络

Linux 复现Docker NAT网络 docker 网络的构成分为宿主机docker0网桥和为容器创建的veth 对构成。这个默认网络命名空间就是我们登陆后日常使用的命名空间 使用ifconfig命令查看到的就是默认网络命名空间,docker0就是网桥,容器会把docker0当成路由&…

linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

文章目录 Nethogs 网络监控程序详解1. 引言2. Nethogs 的安装与运行2.1 安装 Nethogs- **Debian/Ubuntu**- **Fedora**- **Arch Linux** 2.2 运行 Nethogs 3. Nethogs 的使用详解3.1 基本界面- **PID**:进程的 ID。- **用户**:运行该进程的用户。- **程序…

【Linux网络】数据链路层【上】{初识数据链路层/以太网/路由表/MAC地址表/ARP表/NAT表}

文章目录 1.初识数据链路层2.认识以太网2.0前导知识以太网帧和MAC帧CMSA/CD以太网的最小帧长限制是64字节IP层和MAC层 2.1以太网帧格式 3.预备知识计算机网络通信以太网和wifi路由表/MAC地址表/ARP表/NAT表/ACL表 用于同一种数据链路节点的两个设备之间进行信息传递。 1.初识数…

美团一面,你碰到过CPU 100%的情况吗?你是怎么处理的?

本文主要分为三部分 分析一下CPU 100%的常见原因 CPU 100%如何排查 回答这个问题的一个参考答案 CPU被打满的常见原因 1. 死循环 在实际工作中,可能每个开发都写过死循环的代码。 死循环有两种: 在 while、for、forEach 循环中的死循环。 无限递…

期末成绩单怎么单独发给家长,这个小工具超简单!

随着期末考试的落幕,老师们再次迎来了成绩处理的高峰期。传统的成绩单分发方式不仅耗时,还容易出错。但如今,有了易查分小程序,这一过程变得简便而高效。 易查分小程序,一个专为教师和家长设计的便捷工具,让…

[ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法

一、问题: 有时在 Postgres 上部署 Rails 应用程序时,可能会看到 ActiveRecord::PreparedStatementCacheExpired 错误。仅当在部署中运行迁移时才会发生这种情况。发生这种情况是因为 Rails 利用 Postgres 的缓存准备语句(PreparedStatementCache)功能来…

【Apache Doris】周FAQ集锦:第 10 期

【Apache Doris】周FAQ集锦:第 10 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户…

算法力扣刷题记录 四十五【110.平衡二叉树】

前言 二叉树篇继续 记录 四十五【110.平衡二叉树】 一、题目阅读 给定一个二叉树,判断它是否是 平衡二叉树。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:true示例 2: 输入:root [1,2,2,3,3…

【鸿蒙学习笔记】尺寸设置・width・height・size・margin・padding・

官方文档:尺寸设置 目录标题 width:设置组件自身的宽度height:设置组件自身的高度size:设置高宽尺寸margin:设置组件的外边距padding:设置组件的内边距 width:设置组件自身的宽度 参数为Length…

【零基础】学JS之APIS第三天

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

10分钟快速了解神经网络(Neural Networks)

神经网络是深度学习算法的基本构建模块。神经网络是一种机器学习算法,旨在模拟人脑的行为。它由相互连接的节点组成,也称为人工神经元,这些节点组织成层次结构。 Source: victorzhou.com 神经网络与机器学习有何不同? 神经网络是…

电脑资料丢失不用慌,5招教你恢复数据

在数字化时代,电脑资料的安全与完整对我们而言至关重要。然而,生活中总有一些小插曲,如意外删除、系统故障或病毒攻击等,导致电脑上的重要资料消失得无影无踪。面对这种情况,我们往往感到焦虑和无助。今天,…

LabVIEW心电信号自动测试系统

开发了一种基于LabVIEW的心电信号自动测试系统,通过LabVIEW开发的上位机软件,实现对心电信号的实时采集、分析和自动化测试。系统包括心电信号采集模块、信号处理模块和自动化测试模块,能够高效、准确地完成心电信号的测量与分析。 硬件系统…

在 SwiftUI 中的作用域动画

文章目录 前言简单示例动画视图修饰符使用多个可动画属性使用 ViewBuilder总结 前言 从一开始,动画就是 SwiftUI 最强大的功能之一。你可以在 SwiftUI 中快速构建流畅的动画。唯一的缺点是每当我们需要运行多步动画或将动画范围限定到视图层次结构的特定部分时&…

网络规划设计师教程(第二版) pdf

网络规划设计师教程在网上找了很多都是第一版,没有第二版。 所以去淘宝买了第二版的pdf,与其自己独享不如共享出来,让大家也能看到。 而且这个pdf我已经用WPS扫描件识别过了,可以直接CtrlF搜索关键词,方便查阅。 链接…

股指期货存在的风险有哪些?

股指期货因其标的物的特殊性,其面临的风险类型十分复杂,主要面临的一般风险和特有风险如下: 一般风险 从风险是否可控的角度,可以划分为不可控风险和可控风险;从交易环节可分为代理风险、流动性风险、强制平仓风险&…