【操作系统】文件管理——文件共享与保护,文件系统的结构(个人笔记)

news2024/9/21 23:38:15

学习日期:2024.7.18

内容摘要:文件共享,文件保护,文件系统的层级结构和全局结构,虚拟文件系统


文件共享

操作系统提供的文件共享功能,可以让多个用户共享使用同一个文件。文件共享和文件复制是不一样的,共享意味着系统中只有“一份”文件数据,一个用户修改,其他的用户都可以看到文件数据的变化。而复制意味着有好几份数据,用户修改自己的那份,对其他用户没有影响。

基于索引节点的共享方式(硬链接)

之前介绍过,索引节点是只包括文件名和索引节点指针的结构。索引节点中设计了一个链接计数变量count,统计链接到本索引节点上的用户目录项数。

通过共享同一个节点来共享文件,当用户决定删除文件时,事实上操作系统只是删除了用户目录中与该文件对应的目录项,并且让count--了,只有当count==0时,才真正删除文件的数据。

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

比如说,当User3也共享这个文件时,使用一个Link类型的文件指向文件1,这个Link就类似快捷方式,User3的索引节点指针不是直接指向要访问的文件,而是指向Link类型文件,再通过Link类型的文件访问要共享的文件。

 当文件1被删除时,软链接方式找不到文件1了,此快捷方式就失效了,在Windows操作系统中,会提示我们“此快捷方式指向的项目xxx已删除”。

文件保护

口令保护

用户为文件设置一个口令(一般是一个字符串,保存在文件对应的FCB或索引节点当中,访问前操作系统会比对),用户请求访问该文件时必须提供该口令,否则不允许访问。

优点:空间开销和时间开销都很小。

缺点:正确的口令放在系统内部,可能被入侵,不够安全。

加密保护

使用某个“密码”(与口令的本质区别是,设置了加密算法,且不需要存在系统当中)对文件进行加密,在访问文件时需要提供正确的密码才能解密。

优点:保密性强,不需要在系统中存储密码。

缺点:编码和解码需要一定的时间开销。

访问控制

系统会在每个文件的FCB或索引节点中增加一个访问控制表(Access-Control List,ACL),该表中记录了用户可以对文件进行的访问操作权限。 在用户访问前,操作系统会检查访问控制表,确认用户的权限。

而用户很多时,控制表可能会比较复杂,此时就把用户分成几组,比如说可以分成系统管理员,文件主,文件主的伙伴,其他用户 这几个分组。 在Windows中,“以管理员身份运行”就是这样。

 优点:实现灵活,可以实现复杂的文件保护功能。

文件的层次结构

用一个例子来帮助记忆层次

一个用户想删除文件"D:/工作记录:/学生信息.xlsx"的最后100条记录。

1.用户需要通过操作系统提供的接口发出请求——用户接口

2.由于用户提供的是文件的路径,操作系统需要按照路径一层一层的查找目录,找到对应的目录项——文件目录系统

3.不同的用户对文件有不同的操作权限,操作系统要确认用户的权限——存取控制模块

4.在验证了用户有权限后,操作系统把用户提供的“记录号”转换为对应的逻辑地址——逻辑文件系统与文件信息缓冲区

5.把上一层提供的逻辑地址再转换为实际的物理地址——物理文件系统

6.有了物理地址,再对磁盘设备发出请求,删除数据——设备管理程序模块

7.删除这些记录后,肯定有一些盘块空闲,将这些盘块重新回收——辅助分配模块

文件系统的全局结构

从一个磁盘出厂开始,文件系统在外存中是如何一步步建立的?

物理格式化:将磁盘分成一个个扇区,并用备用扇区替换。

坏扇区对操作系统也是透明的,操作系统不知道有坏扇区的存在,因为已经被自动替换了。

逻辑格式化:磁盘分区(CDE盘),划分超级块等方便找到空闲块的结构。

空闲空间管理块在之前介绍过,主要用于记录空闲空间,而i节点区主要存放索引节点。

内存中会有最近打开的目录的缓存(相对路径,详见文件管理基础)以此来快速访问附近的文件,不需要每次都从磁盘读入,而进程打开文件表和系统打开文件表,分别记录了进程打开的文件和系统打开的全部文件。当我们删除文件时,有时会提示“无法删除,因为该文件正在被xx进程占用”这就是系统/进程打开文件表记录的作用,它能避免不同进程访问同一文件时的一些冲突。

虚拟文件系统

虚拟文件系统和虚拟内存一样,存在的目的都是向下屏蔽差异,向上提供统一,本质上是为了方便程序员调用的。

 在日常生活中我们使用计算机时,难免会有好几种外存设备同时使用的情况(移动硬盘,U盘,磁盘等),为了避免不同的外存设备的调用接口不同的问题,引入了虚拟文件系统(Virtual File System,VFS)。

 ①VFS要求下层的文件系统必须实现某些规则的函数功能,如open/read/write,一个新的文件系统想要在某个操作系统上被使用,就必须满足其VFS的要求。

②每打开一个文件,VFS就会在主存中新建一个vnode,里面保存了具体的函数功能指针,用统一的数据结构表示该文件,无论其存储在哪个文件系统。vnode只存在于主存当中,而inode既会被调入主存,也会在外存当中存储。


感谢您看到这里,如果满意的话麻烦您点个赞支持一下,个人主页还有更多内容分享。

个人能力不足,如有错漏还请指出,我会尽快修改。

内容总结自王道计算机考研《操作系统》 和 人民邮电出版社《操作系统导论》

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

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

相关文章

DP(6) | 完全背包 | Java | LeetCode 322, 179, 139 做题总结

322. 零钱兑换 我的错误答案 class Solution {public int coinChange(int[] coins, int amount) {int[][]dp new int [coins.length][amount1];for(int j0; j<amount; j) {if(coins[0] j){dp[0][coins[0]] 1;}}for(int i1; i<coins.length; i) {for(int j0; j<am…

实战篇(十一) : 拥抱交互的三维世界:利用 Processing 和 OpenGL 实现炫彩粒子系统

🌌 拥抱交互的三维世界:利用 Processing 和 OpenGL 实现炫彩粒子系统 在现代计算机图形学中,三维粒子系统是一个激动人心的领域。它不仅可以用来模拟自然现象,如烟雾、火焰和水流,还可以用来创造出令人叹为观止的视觉效果。在这篇文章中,我们将深入探讨如何使用 Proces…

Dify中的高质量索引模式实现过程

思考在什么情况下会使用到高质量索引模式呢?第1种情况是在知识库中上传文档,文档被拆分为段落后需要进行编码(增加);第2种情况是在召回测试的时候,需要对query进行编码(查询);第3种情况是当文档中的段落增加和更新时需要进行编码(增加和更新)。索引模式是针对知识库…

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

汇编教程2

本教程主要教大家如何安装32位Linux虚拟机&#xff0c;为后续实验拆炸弹做准备 下载系统映像文件 以Ubuntu14.04.6系统为例 官方网站&#xff1a;下载地址 点击下载图中32位系统 如果官网进不去可以使用镜像网站 清华镜像网站&#xff1a;下载地址 进入之后找到下图中链接…

如何在项目中使用线程池自定义拒绝策略

首先呢&#xff0c;我设计了一个图表在我的项目里面&#xff0c;为了方便展示&#xff0c;我只修改一个字段&#xff0c;线程池设置参数 (2,4,30, TimeUnit.SECONDS, new ArrayBlockingQueue<>(4),new RJ()); 然后通过循环持续的进行增加任务&#xff0c;目的修改数据库的…

解决element-ui e-table表格中使用多选,当翻页时已选中的数据丢失

用element-ui中的table时&#xff0c;当有多选又有翻页功能时&#xff0c;点击翻页后之前选中的数据会丢失&#xff0c;怎么使表格具有记忆功能呢 element-ui API中有几个属性可以供我们完美解决这个问题 1.单元格的属性和方法&#xff1a; 2.表格的方法&#xff1a; <el-…

微软成为PostgreSQL主要贡献者

微软对PostgreSQL贡献的很多新功能都来自于客户在使用微软Azure上的PostgreSQL管理实例数据库&#xff0c;所以这些新功能都来自于真实的客户需求 微软贡献的这些新功能都是比较实用的功能 在这里&#xff0c;【真实的客户需求】要突出一下&#xff0c;因为现在很多社区贡献者…

什么是正则表达式,如何在 Python 中使用?

什么是正则表达式 正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是一种用于匹配字符串中字符模式的工具。它是由普通字符&#xff08;例如字母、数字&#xff09;以及一些特殊字符&#xff08;称为元字符&#xff09;组成的字符序列。这种模式用…

【SASS/SCSS(三)】样式的复用与动态计算(@mixin和@function)

目录 一、mixin 1、定义复用的样式代码&#xff0c;接受传参&#xff0c;搭配include使用。 位置传参 关键词传参 ...语法糖接受传入的任意参数 2、在mixin中使用content&#xff0c;获取外部对mixin的追加内容 二、function 三、字符串——值得注意的点 很多时候&#…

云微客如何实现低成本快速获客?AI矩阵来传播

目前市场环境较为严峻&#xff0c;超过上千万家实体商家都会遇到线下获客难、线上营销成本高的困境&#xff0c;因此商家急需新的获客方案。 云微客AI矩阵系统基于AIGC的企业短视频矩阵及内容生成、协作、管理平台&#xff0c;通过对多个短视频平台进行营销覆盖&#xff0c;深入…

【机器学习】--下采样原理及代码详解

下采样&#xff08;Downsampling&#xff09;是信号处理、图像处理和机器学习中的一个关键概念&#xff0c;主要通过减少数据点的数量来降低信号或图像的采样率 一、定义与原理 定义&#xff1a;下采样是指通过减少数据点的数量来降低信号或图像的采样率。在图像处理中&#…

vue使用x6画流程图,简单使用

官网 https://x6.antv.antgroup.com/tutorial/getting-started 安装 npm install antv/x6 --save 使用 <template><div>3333<div id"container" style"width: 800px;height: 800px;"></div></div> </template> <…

无人机之多旋翼与固定翼的区别

多旋翼无人机和固定翼无人机是无人机技术中的两种主要形式&#xff0c;各自有独特的优势和应用场景。 一、飞行原理与结构 多旋翼无人机&#xff1a;依靠多个旋翼产生升力来平衡飞行器的重力&#xff0c;通过改变每个旋翼的转速控制飞行器的姿态和平稳&#xff0c;使其能够垂…

Linux-开机自动挂载(文件系统、交换空间)

准备磁盘 添加三块磁盘&#xff08;两块SATA&#xff0c;一块NVMe&#xff09; 查看设备&#xff1a; [rootlocalhost jian]# ll /dev/sd* [rootlocalhost jian]# ll /dev/nvme0n2 扩&#xff1a;查看当前主机上的所有块设备&#xff0c;通过如下指令实现&#xff1a; [root…

云监控(华为) | 实训学习day2(10)

spring boot基于框架的实现 简单应用 - 用户数据显示 开发步骤 第一步&#xff1a;文件-----》新建---项目 第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容. 第三步&#xff0c;选择maven后&#xff0c;下一步 第4步 &#xff1a;出现对话框中填写项目名称 第5步&…

json将列表字典等转字符串,然后解析又转回来

在 Python 中使用 json 模块来方便地在数据和 JSON 格式字符串之间进行转换&#xff0c;以便进行数据的存储、传输或与其他支持 JSON 格式的系统进行交互。 JSON 字符串通过 json.loads() 函数转换为 Python 对象。 pthon对象通过json.dumps()转为字符串 import jsonstr_list…

StarRocks on AWS Graviton3,实现 50% 以上性价比提升

在数据时代&#xff0c;企业拥有前所未有的大量数据资产&#xff0c;但如何从海量数据中发掘价值成为挑战。数据分析凭借强大的分析能力&#xff0c;可从不同维度挖掘数据中蕴含的见解和规律&#xff0c;为企业战略决策提供依据。数据分析在营销、风险管控、产品优化等领域发挥…

PostgreSQL的逻辑架构

一、PostgreSql的逻辑架构&#xff1a; 一个server可以有多个database&#xff1b;一个database有多个schema&#xff0c;默认的schema是public&#xff1b;schema下才是对象&#xff0c;其中对象包含&#xff1a;表、视图、触发器、索引等&#xff1b;与user之间的关系&#x…

Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的以太网方案本博已有的FPGA图像缩放方案本方案的缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡…