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

在这里插入图片描述

在这里插入图片描述

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


  • ⚔️1 文件的基本操作
    • ⚖️1.1 总览
    • ⚖️1.2 几种基本操作
      • 🔭1.2.1 创建文件
      • 🔭1.2.2 删除文件
      • 🔭1.2.3 打开文件
      • 🔭1.2.4 关闭文件
      • 🔭1.2.5 读文件
      • 🔭1.2.6 写文件
    • ⚖️1.3 总结
  • ⚔️2 文件共享
    • 🗜️2.1 总览
    • 🗜️2.2 基于索引结点的共享方式(硬链接)
      • 📡2.2.1 什么是索引结点
      • 📡2.2.2 解释
    • 🗜️2.3 基于符号链的共享方式(软链接)
      • 📡2.3.1 解释
      • 📡2.3.2 示意图
      • 📡2.3.3 注意
    • 🗜️2.4 总结
  • ⚔️3 文件保护
    • 💣3.1 总览
    • 💣3.2 口令保护
      • 🔬3.2.1 解释
      • 🔬3.2.2 优缺点
    • 💣3.3 加密保护
      • 🔬3.3.1 解释
      • 🔬3.3.2 例子
      • 3.3.3 优缺点
    • 💣3.4 访问控制
      • 🔬3.4.1 解释
      • 🔬3.4.2 例子
      • 🔬3.4.3 精简的访问列表
    • 💣3.5 总结
  • 🕮4 总结


⚔️1 文件的基本操作

⚖️1.1 总览

image1

⚖️1.2 几种基本操作

🔭1.2.1 创建文件

(1)创建文件会进行create系统调用,需要传入的几个主要参数为:
image2
(2)操作系统在处理create系统调用时进行的工作
image3

🔭1.2.2 删除文件

(1)删除文件会进行delete系统调用,需要传入的几个主要参数为:
image4

(2)操作系统在处理delete系统调用时的工作
image5

🔭1.2.3 打开文件

(1)打开文件会进行open系统调用,需要传入的几个主要参数为:
image6

(2)操作系统在处理open系统调用时的工作
image7
为什么要将目录项复制到”打开文件表“?这样做的话,用户在之后1再次操作文件就不要重新指定目录了,这样可以加快访问速度

(3)打开文件表
①用户的打开文件表
每个用户都有一个自己的打开文件表,其内容如图:
image8
其中,读写指针记录用户目前对文件的读取位置。用户对文件的操作不可以超出打开文件表中的访问权限字段。
用户表中的系统表索引号与系统表中对应文件的索引号相同。

②系统的打开文件表
在操作系统内,有一张打开文件的总表,其基本结构如图
image9
打开计数器的值表示这个文件此时被多少个进程打开了,设置这个表项的好处为:
image10

🔭1.2.4 关闭文件

选择关闭文件时操作系统做的事:
image11

🔭1.2.5 读文件

(1)读文件时进程需要做的事
①进行read系统调用
②指明打开哪个文件(打开文件表中的索引号)
③指明读入多少数据
④指明读入的数据要放在内存中的什么位置

(2)读文件时操作系统做的事
①从进程提供的读指针指向的外存中,将进程指定大小的数据读入进程指定的内存区域中。

🔭1.2.6 写文件

与读文件的操作类似

(1)写文件时进程需要做的事
①调用操作系统提供的write系统调用
②指明写回哪个文件(打开文件表中的索引号)
③指明写回多少数据
④写回外存的数据在内存中的位置指针

(2)写文件时操作系统做的事情
①从用户指针的内存区域中,将指定大小的数据写回到指定的外存区域内

⚖️1.3 总结

image12

⚔️2 文件共享

🗜️2.1 总览

image1

🗜️2.2 基于索引结点的共享方式(硬链接)

📡2.2.1 什么是索引结点

是文件的一种物理结构,文件的具体信息(物理地址、文件权限等等)放在索引结点中,而文件表中只存放文件名与指向索引结点的指针。这样可以加快检索文件的速度

📡2.2.2 解释

(1)示意图
image2
(2)在不同用户的目录中的索引结点指针指向同一个索引结点,这样就是先了文件共享。
(3)此外,索引结点中还必须增加一个额外变量count:
image3

🗜️2.3 基于符号链的共享方式(软链接)

📡2.3.1 解释

与硬链接中直接使用指针指向文件不同,软链接是新建一个文件,此文件中存放共享文件的路径(称为link文件)

📡2.3.2 示意图

image4

📡2.3.3 注意

当共享文件被删除时,该link文件实际上也随机失效(联想Windows下的快快捷方式)

🗜️2.4 总结

image5

⚔️3 文件保护

💣3.1 总览

image1

💣3.2 口令保护

🔬3.2.1 解释

image2

🔬3.2.2 优缺点

image3

💣3.3 加密保护

🔬3.3.1 解释

image4

🔬3.3.2 例子

image5

3.3.3 优缺点

用户只需要记住自己的密码就可以了
image6

💣3.4 访问控制

🔬3.4.1 解释

image7
当某个用户对文件执行操作时,操作系统会首先查看访问控制列表,确认用户有该操作的权限。

🔬3.4.2 例子

(1)常用的文件操作
image8
(2)访问控制列表
image9

🔬3.4.3 精简的访问列表

(1)为什么要有精简的访问列表?
当系统内用户很多时,访问控制列表可能会很长,会造成比较大的开
(2)解释
image10
而系统会管理分组的信息,例如哪些用户属于哪些分组
(3)例子
image11

💣3.5 总结

image12

🕮4 总结

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

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

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

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

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

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql:事务的特性ACID、并发事务(脏读、不可重复读、幻读、如何解决、隔离级别)、undo log和redo log的区别、相关面试题和答案

事务是一组操作的集合,它会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的特性(ACID) 原子性(Atomicity):事务是不可分割的…

React16源码: React中处理hydrate的核心流程源码实现

hydrate 1 )概述 hydrate 在react当中不算特别重要, 但是很多时候会用到的一个API这个 API 它主要作用就是在进入第一次渲染的时候,如果本身 dom 树上面已经有一个dom结构存在是否可以去利用这一部分已经存在的dom,然后去避免掉在第一次渲染…

2024/2/4 备战蓝桥杯 5-1 前缀和

目录 求和 0求和 - 蓝桥云课 (lanqiao.cn) 可获得的最小取值 0可获得的最小取值 - 蓝桥云课 (lanqiao.cn) 领地选择 P2004 领地选择 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 求和 0求和 - 蓝桥云课 (lanqiao.cn) 思路:先对公式进行合并同类相&#x…

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?

专业视听领域尤其显示控制和坐席控制领域,最近几年最激动人心的技术,莫过于分布式了。 分布式从推出之日就备受关注:担心稳定性的,质疑同步性能的,怀疑画面质量的…… 诚然,我们在此前见多了带着马赛克的…

windows安装Visual Studio Code,配置C/C++运行环境(亲测可行)

一.下载 Visual Studio Code https://code.visualstudio.com/ 二.安装 选择想要安装的位置: 后面的点击下一步即可。 三.下载编译器MinGW vscode只是写代码的工具,使用编译器才能编译写的C/C程序,将它转为可执行文件。 MinGW下载链接:…

day31 JS执行机制

目录 前言同步和异步JS执行机制 前言 JavaScript语言的一大特点是单线程。 JavaScript是为处理页面中用户的交互,以及操作DOM而诞生的。比如对某个DOM元素进行添加和删除操作,不能同时进行,应该先进行添加再继续删除。 示例(解…

【日常总结】SourceTree 1.5.2.0 更换用户名称和密码

一、场景 二、问题 三、解决方案 > 方案一:删除缓存文件 > 方案二:更新最新版本,可以直接修改密码(推荐) 方案一:删除缓存文件 Stage 1:设置显示隐藏文件 Stage 2:打开…

基于时频分析的SAR目标微波视觉特性智能感知方法与应用

源自:雷达学报 作者:黄钟泠, 吴冲, 姚西文 “人工智能技术与咨询” 发布 摘 要 合成孔径雷达(SAR)目标识别智能算法目前仍面临缺少鲁棒性、泛化性和可解释性的挑战,理解SAR目标微波特性并将其结合先进的深度学习算法,实现高效…

Springboot写一个对接钉钉机器人的小插件

钉钉机器人 有时候我门需要监控各种事件,需要机器人给我发给提醒 如:git代码交接,代码合并, 服务器异常捕获,。。。。 参照钉钉给我们的开发文档,可以发现对接起来是非常简单哈哈 这是我写的小插件以及例子…

内衣迷你洗衣机什么牌子好?口碑最好的小型洗衣机推荐

随着人们的生活水平的提升,越来越多小伙伴来开始追求更高的生活水平,一些智能化的小家电就被发明出来,而且内衣洗衣机是其中一个。现在通过内衣裤感染到细菌真的是越来越多,所以我们对内衣裤的清洗频次会高于普通衣服,…

大数据知识图谱之深度学习——基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统

文章目录 大数据知识图谱之深度学习——基于BERTLSTMCRF深度学习识别模型医疗知识图谱问答可视化系统一、项目概述二、系统实现基本流程三、项目工具所用的版本号四、所需要软件的安装和使用五、开发技术简介Django技术介绍Neo4j数据库Bootstrap4框架Echarts简介Navicat Premiu…

【开源】JAVA+Vue+SpringBoot实现二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

【【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏(附项目源码)

最终效果 文章目录 最终效果前言导入AI导航系统导航烘培添加羊添加捕食者动画控制随着地面法线旋转在地形上随机生成动物不同部位颜色不同最终效果源码完结前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,…

windows10 利用DDNS-GO解析IPV6 IPV4 阿里云 腾讯云 华为云

这里写目录标题 [工具包DDNS-GO Windows 版](https://github.com/jeessy2/ddns-go/releases)创建ddns-go windows服务打开浏览器 输入127.0.0.1:9876 就可以使用ddns-go解析ipv4 或者 IPV6 了创建的服务已经在windows的服务管理里面自动启动了 工具包DDNS-GO Windows 版 创建dd…

docker proxy 【docker 代理】

第一种 创建代理配置文件 mkdir -p /etc/systemd/system/docker.service.d/ cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf Environment"HTTP_PROXYhttp://192.168.21.101:7890" Environment"HTTPS_PROXYhttp://192.168.21.1…

Python更换国内pip源详细教程

文章目录 一、国内常用镜像源二、临时使用三、永久修改配置1.pycharm终端命令行操作2.Windows平台图形化操作3.MacOS、Linux 平台 四、安装和导出项目依赖包1.使用pip命令自动生成requirement.txt项目依赖的模块2.从文件中一键安装项目中使用到的所有依赖包 五、拓展1.pip下载第…

13. Threejs案例-绘制3D文字

13. Threejs案例-绘制3D文字 实现效果 知识点 FontLoader 一个用于加载 JSON 格式的字体的类。 返回 font&#xff0c;返回值是表示字体的 Shape 类型的数组。 其内部使用 FileLoader 来加载文件。 构造器 FontLoader( manager : LoadingManager ) 参数类型描述managerLo…

音频二维码怎么制作出来的?支持多种格式音频生码的方法

怎么把一个音频的文件做成二维码图片呢&#xff1f;在日常工作和生活中&#xff0c;有很多的场景会需要使用音频类型的文件来展示内容&#xff0c;比如常见的英语听力、课程、听书等类型的内容&#xff0c;现在都可以用二维码展示。而且现在生成音频二维码的方法也很简单&#…

设置 相关

记录使用过程中做的设置相关事宜。方便后续查询 vscode如何自动生成html格式&#xff1a; vscode快速生成html模板 --两种方法&#xff0c;亲测有用_vscode自动生成html模板-CSDN博客 使用第二个方式。存储html格式后缀。输入&#xff01;&#xff0c;vscode自动补全。 安装…

uniapp中使用EelementPlus

uniapp的强大是非常震撼的&#xff0c;一套代码可以编写到十几个平台。这个可以在官网上进行查询uni-app官网。主要还是开发小型的软件系统&#xff0c;使用起来非常的方便、快捷、高效。 uniapp中有很多自带的UI&#xff0c;在创建项目的时候&#xff0c;就可以自由选择。而E…