<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24)

本文主要是介绍<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux操作系统原理分析之文件管理(3)》(24)

  • 7 文件管理
    • 7.5 文件存储空间的管理
    • 7.6 文件的共享和保护
      • 7.6.1 文件存取控制
      • 7.6.2 文件共享的实现方法
      • 7.6.3 文件的备份转储

7 文件管理

7.5 文件存储空间的管理

  1. 位示图
    在这里插入图片描述
    对每个磁盘可以用一张位示图指示磁盘空间的使用情况。一个磁盘的分块确定后,根据总块数决定位示图由多少字组成,位示图中的每一位与一个磁盘块对应,某位为“ 1”状态表示相应块已被占用,为“0”状态的位所对应的块是空闲块。
块号 b=(i-1)×n+j 
i=(b-1)DIV n +1
j=(b-1)mod n +1
  1. 空闲块表
    系统为每个磁盘建立一张空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数,空闲块数为“0”的登记项为“空”登记项。 适合采用顺序结构的文件。
序号第一个空白块号空白块个数物理块号
1242、3、4、5
2939、10、11
315515、16、17、18、19
4
  1. 空闲块链表
    1、单块连接
    把所有空闲块用指针连接起来,每一个空闲块中都设置一个指向另一个空闲块的指针,所有的空闲块就构成了一个空闲块链。系统设置一个链首指针,指向链中的第一个空闲块,最后一个空闲块中的指针为“0”。 效率较低,麻烦费时。
    2、成组连接
    UNIX 系统:采用空闲块成组连接的方法。
    采用成组连接后,分配回收磁盘块时均在内存中查找和修改,只是在一组空闲块分配完或空闲的磁盘块构成一组时才启动磁盘读写。比单块连接方式效率高。
    在这里插入图片描述

7.6 文件的共享和保护

7.6.1 文件存取控制

  1. 存取控制矩阵
    如下图,记录所有用户对所有文件的使用权限。缺点:占用较大空间;查找速度慢
    在这里插入图片描述
  2. 存取控制表
    对存取控制矩阵改进,将用户进行分组。对一个文件而言,针对文件所有者,即其所在的各个用户组规定不同的存取权限,从而形成该文件的存取控制表。它比存取控制矩阵规模要小得多。
用户文件权限
文件所有者RWE
用户组 ARW
用户组 BRE
其他R
  1. 口令
    对文件规定一个口令,放在文件说明中,并规定使用该文件的用户。当用户访问文件时,必须提供口令。验证正确后,才能访问。
  2. 加密
    对文件中所有信息以密码形式重新编码存储,在读文件时,再进行译码解密。通常做法是:在用户向外存写入一个文件时,通过一个加密程序对文件的信息进行变化处理。读取文件时,通过一个解密程序把文件恢复原貌。

7.6.2 文件共享的实现方法

  1. 基于索引结点的共享方式:
    引用索引结点,即诸如文件的物理地址及其它的文件属性等信息,不再放在目录中,而是放在索引结点中。在文件目录中只设置文件名及指向相应索引结点的指针,如右图所示。
    在这里插入图片描述
    在索引结点中还应有一个链接计数 count,用于表示链接到本索引结点上的用户目录项的数目。当用户创建一个新文件时,他是该文件的所有者,此时将 count 置 1。当有用户 B 要共享此文件时,在用户 B 的用户目录中增加一目录项,并设置一指针指向该文件的索引结点,此时,文件主仍然是 C,count=2。如果用户 C 不再需要此文件,是不能将文件删除的,因为删除了该文件,也必删除了该文件的索引结点。

在这里插入图片描述

  1. 符号链实现文件共享 符号链实现文件共享:
    B 为了共享 C 的一个文件 F,可以由系统创建一个 LINK 类型的新文件,将新文件 F 写入 B 的用户目录中,以实现 B 的目录文件与文件 F 的链接。在新文件中只包含被链接文件 F 的路径名,称这样的链接方法为符号链接;

7.6.3 文件的备份转储

通过转储技术,定期将全部或部分文件转存在磁带、光盘作为备份。常用的转储方法有两种:全量转储、增量转储。

全量转储:把文件系统中所有文件,定期复制在磁带上。 增量转储:仅把修改过的文件和新建立的文件转储在磁带上。

这篇关于<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.