操作系统基础:文件系统基础【上】

在这里插入图片描述

在这里插入图片描述

🌈个人主页:godspeed_lucip
🔥 系列专栏:OS从基础到进阶


  • ⚔️1 文件系统概述
    • ⚙️1.1 文件管理应该解决的问题
      • 📡1.1.1 文件属性
      • 📡1.1.2 文件数据的组织
      • 📡1.1.3 文件之间的组织
      • 📡1.1.4 向上提供的功能
      • 📡1.1.5 总结
    • ⚙️1.2 文件应该怎么存放在外存中
    • ⚙️1.3 其他问题
    • ⚙️1.4 总结
  • ⚔️ 2 文件目录
    • 🧲2.1 总览
    • 🧲2.2 文件控制块
      • 🔬2.2.1 什么是目录文件
      • 🔬2.2.2 什么是文件控制块
      • 🔬2.2.3 文件目录快的作用
      • 🔬2.2.4 目录需要提供的功能
    • 🧲2.3 目录结构
      • 🔬2.3.1 单文件目录结构
      • 🔬2.3.2 两级目录结构
      • 🔬2.3.3 多级目录结构(树形目录结构)
      • 🔬2.3.4 无环图目录结构
    • 🧲2.4 索引结点(FCB的改进)
      • ⚗️2.4.1 概述
      • ⚗️2.4.2 索引结点示意图
      • ⚗️2.4.3 索引结点提升的效率
    • 🧲2.5 总结
  • 🕮 3 总结


⚔️1 文件系统概述

⚙️1.1 文件管理应该解决的问题

image1

📡1.1.1 文件属性

image2

📡1.1.2 文件数据的组织

image3

📡1.1.3 文件之间的组织

image4

📡1.1.4 向上提供的功能

image5

📡1.1.5 总结

image6

⚙️1.2 文件应该怎么存放在外存中

image7
image8
image9

⚙️1.3 其他问题

image10

⚙️1.4 总结

image11

⚔️ 2 文件目录

🧲2.1 总览

image1

🧲2.2 文件控制块

🔬2.2.1 什么是目录文件

打开一层目录,都可以看到里面的文件内容,比如:
image2
那么操作系统会为每一层文件都建立一个目录文件,如图
image3
这张表记录了文件名(最重要)、文件存放的物理位置(最重要)、文件类型等等很多的信息。当我们打开一个文件时,实际上操作系统内部发生的事情为:
image4

🔬2.2.2 什么是文件控制块

目录文件中的一条记录就是一个文件控制块(FCB)。如图
image5

🔬2.2.3 文件目录快的作用

(1)存储基本信息
image6
(2)实现映射
image7

🔬2.2.4 目录需要提供的功能

image8

🧲2.3 目录结构

🔬2.3.1 单文件目录结构

主要存在于早期操作系统,整个系统中只有一个目录表,每个文件都占一个目录项。
image9

🔬2.3.2 两级目录结构

image10
示意图如下所示:
image11
允许不同用户的文件重名,但是用户不可以对自己的文件进行分类,不太方便。
image12

🔬2.3.3 多级目录结构(树形目录结构)

(1)示意图
是现在大多计算机普遍使用的目录结构
image13

(2)绝对路径
image14

(3)相对路径
image15
image16
总而言之,相对路径可以提升操作系统的效率

🔬2.3.4 无环图目录结构

(1)树形结构的缺点
image17

(2)示意图
image18
简而言之,在无环图目录结构中,允许多个文件名指向同一个文件,这样就可以实现文件的共享。

(3)如何删除共享文件?
image19

(4)注意
image20

🧲2.4 索引结点(FCB的改进)

⚗️2.4.1 概述

在之前介绍的目录文件中,每一个FCB都存储了文件的很多信息,但是实际上当操作系统在查找文件时,需要的唯一信息是文件名。此时就可以对目录文件进行瘦身。

⚗️2.4.2 索引结点示意图

image21
索引结点指针指向索引结点,它存储了文件的除文件名以外的所有信息。

⚗️2.4.3 索引结点提升的效率

(1)使用FCB的访问磁盘次数
image22

(2)使用索引结点的访问磁盘次数
image23

🧲2.5 总结

image24

🕮 3 总结

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

2024最新版鸿蒙HarmonyOS开发工具安装使用指南

2024最新版鸿蒙HarmonyOS开发工具安装使用指南 By JacksonML 0. 什么是鸿蒙Harmony OS? 华为鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的分…

Webpack源码浅析

webpack启动方式 webpack有两种启动方式: 通过webpack-cli脚手架来启动,即可以在Terminal终端直接运行; webpack ./debug/index.js --config ./debug/webpack.config.js通过require(webpack)引入包的方式执行;其实第一种方式最终…

C++:第十五讲高精度算法

每日C知识 system("color xx);是改变字体及背景颜色,前一个x代表一个数字,可以改变背景颜色,后一个x代表一个数字,可以改变字体颜色 ,但都是根据颜色表来的。 记住:要加头文件:#include&l…

03. k210-点灯

本章目的是把开发板上的3个三色LED灯点亮。 1.硬件连接 先看下硬件的LED接线如下: 由上图可知: IO_12:LED_G IO_13:LED_R IO_14:LED_B IO输出低电平"0",LED点亮,IO输出高电平"1"…

【C++历练之路】二叉搜索树的学习应用及其实现

W...Y的主页 😊 代码仓库分享💕 前言🍔: 我们之前学过一些查找关键数据的办法,排序二分查找。但是这种方法的插入的时间复杂的太高,今天我们来学习一个更好的办法来应对数据查找——二叉搜索树。 目录…

jsp商场会员卡管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 商场会员卡管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.…

高斯消去法 | LU分解 | PA=LU分解(MatLab)

一、问题描述 利用高斯消去法,LU 分解及PALU 分解求解非线性方程组。 二、实验目的 掌握高斯消去法、LU 分解、PALU 分解的算法原理;编写代码实现利用高斯消去法、LU 分解、PALU 分解来求解线性方程组。 三、实验内容及要求 1. 利用顺序高斯消去法求…

C语言标准库所有字符串操作库函数汇总

以下是C语言标准库中字符串操作相关的API列表&#xff0c;这些函数通常在 <string.h> 头文件中定义&#xff1a; 1. strlen - 计算字符串长度&#xff0c;不包括结尾的空字符\0&#xff1a; size_t strlen(const char *str); 2. strcpy - 复制字符串&#xff1a; c…

【Linux】信号-上

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;信号的概念与产生jobs命令普通信号和实…

154基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流

基于matlab的二维元胞自动机模拟森林火灾&#xff08;生命游戏 &#xff09;和模拟收费站交通流。全国大学生美国建模竞赛&#xff0c;程序已调通&#xff0c;可直接运行。 154 元细胞自动机 森林起火 收费站交通 (xiaohongshu.com)

Python flask 模板详解

文章目录 1 概述1.1 模板简介1.2 templates 文件1.3 简单应用 2 模板语法2.1 for 循环2.2 if 判断 3 模板的继承3.1 格式要求3.2 实现示例3.3 复用父模板的内容&#xff1a;super 1 概述 1.1 模板简介 定义&#xff1a;定义好的 html 文件&#xff0c;用于快速开发 web 页面J…

【linux】git和gdb调试工具

在linux下提交代码同步到gitee 1.创建一个新的仓库&#xff08;演示步骤&#xff09; 2.init 这两个步骤用于识别提交代码的身份&#xff0c;一个你的名字&#xff0c;一个你的邮箱 开启本地仓库 克隆本地仓库成功 我们将这个仓库拷到了111目录底下. 我们发现少了一个.gitig…