• 操作系统(六)| 文件系统下 文件使用 共享 保护


    目录

    4 空闲存储空间的管理

    4.1 空闲区表

    4.2 空闲块链

    4.3 位图

    5 文件的使用

    6 文件共享

    6.1 普通的文件共享方法

    6.1.1 按路径名访问共享文件

    6.1.2 链接法

    6.1.3 基本文件目录BFD

    6.2 基于I节点的文件共享方法(Unix采用)

    6.2.1 硬链接

    6.2.3 符号链接

    7 文件保护


    4 空闲存储空间的管理

    4.1 空闲区表

    将所有空闲区记录在一个表中。 适合连续文件的外存分配与回收。如今很少用

    4.2 空闲块链

    把所有空闲块链成一个链,适合离散分配

    扩展: ①不断地适度增加块大小 从最早的512B 1KB  2KB  4KB  8KB  16KB  32KB  64KB。 ②成组链接法 链上每个节点记录1组空闲块。适合大型文件系统,分配、释放快, 链占用空间少(除首组外均隐藏在空闲块中)。UNIX用之

    成组连接法

    4.3 位图

    用一串二进制位反映磁盘空间的分配情况,每个物理块对应1位,已分配的物理块为1,否则为0 申请物理块时,可以在位图中查找为0的位,返回对应的物理块号 归还时,将对应位设置为0 描述能力强,适合各种物理结构

    5 文件的使用

    为方便用户使用文件,文件系统提供对文件的各种操作, 使用的形式包括系统调用或命令 ① 提供设置和修改用户对文件访问权限的操作 ② 提供建立、修改、删除目录的操作 ③ 提供文件共享、设置访问路径的操作 ④ 提供创建、打开、读、写、关闭、删除文件等操作 其中,最基本的操作是:打开、关闭、读、写文件等

    为什么要 打开/关闭文件呢

    open:把文件说明信息(FCB)装入内存,便于以后的快速访问。 (1)根据指定的文件路径名,查目录,找到相应文件的目录项,检查权限; (2)将文件说明信息装入内存; (3)分配一个文件id(整数)。后面通过该id实施对该文件的操作。

    close: (1)释放文件说明信息所占的内存空间; (2)把文件缓冲区中已修改的内容写回文件。 很多系统限制进程打开文件的个数,用户尽可能要关闭不再使用的文件。

    6 文件共享

    文件共享:一个文件被多个用户或进程使用 共享的目的: 节省时间和存储空间,减少用户工作量 进程间通过文件交换信息

    6.1 普通的文件共享方法

    6.1.1 按路径名访问共享文件

    实现简单,不需要建立另外的目录项 但路径名可能长,检索较慢

    6.1.2 链接法

    在相应目录项之间建立链接。即一个目录项中含有指向另一个目录项的指针。 实现方法: 在目录项中设置一个“链接属性”, 表示目录项中的“物理地址”是指向另一目录项的指针。 同时,在共享文件的目录项中包含“用户计数”。

    6.1.3 基本文件目录BFD

    整个文件系统有1个基本文件目录BFD: 每个文件(及目录)有1个目录项,包含系统赋予的唯一标识符ID(整数) 以及其他的文件说明信息 每个目录有1个符号文件目录SFD:除了ID = 0,1,2外, 每个目录项仅包含文件名和ID 系统把ID = 0,1,2的目录项分别作为BFD、FFD、MFD的标识符 共享方法: 若一个用户想共享另一用户的文件,只需在自己的目录文件中增加一个目录项,填上自己起的文件名和该共享文件的唯一ID即可。如ID = 6的文件。

    6.2 基于I节点的文件共享方法(Unix采用)

    6.2.1 硬链接

    6.2.3 符号链接

    在Windows中叫做 快捷方式

    7 文件保护

    主要涉及文件存取控制

    1. 存取控制矩阵 给出每个用户对每个文件的访问权限。 一维是所有用户,另一维是所有文件, 对应的矩阵元素是用户对文件的访问权限。 例如,访问操作分为: 读操作(r) 写操作(w) 执行操作(x) 不能执行任何操作(-) 当用户和文件较多时,很庞大。

    2. 存取控制表(Access Control List,ACL) 每个文件一张ACL,将用户分类,规定每类用户的访问权限。 例如,Unix/Linux将用户分类为: 文件主(owner) 文件主的同组用户(group) 其他用户(other)

    3. 存取权限表(Capability List,CL) 每个用户一张CL,规定对每个文件的访问权限。

    4. 口令 用户创建文件时,设置一个口令,放在文件目录中。

    5. 密码 写入时加密,读出时解密。

    假定两个用户共享一个文件系统,用户A有文件a,b,e,f ,用户B有文件c,d,e,f。用户A的b和用户B的d是同一个文件。用户A的e和用户B的e不是同一个文件,用户A的f和用户B的f是同一个文件。拟定一个文件组织方案,使得A,B两个用户能够共享该文件系统而不会造成混乱

    为了确保用户A和用户B能够共享文件系统而不会造成混乱,可以采用以下文件组织方案:

    1. 首先创建两个用户目录:为每个用户创建一个独立的目录,目录A和目录B。这样,用户A和用户B的文件可以分别存储在各自的目录中,避免混淆,对于用户A的e和用户B的e不是同一个文件,则可以将它们分别存放在各自的目录中,因为它们不需要共享

    2. 共享文件存放目录:对于文件f,创建一个共享文件存放目录,这确保了用户A和用户B可以共同访问和修改这些共享文件。

    3. 建立符号链接:对于用户A的b和用户B的d是同一个文件,则可以在用户A的目录中创建一个符号链接,指向用户B的文件d。这样,用户A可以访问和操作这个文件,同时避免重复存储。

    通过以上的文件组织方案,用户A和用户B可以共享文件系统,各自管理自己的文件,并且能够访问和修改共享文件,同时避免重名文件和混淆。这样可以确保文件系统的整体有序性和可维护性。

    已知某文件系统采用多级目录结构,逻辑块和物理块大小均为1KB,目录当做文件,采用目录项+I结点的方式。假定要读取文件/a/b/c.dat的第10600-10900个字节,针对连续结构,基本链式结构,FAT和单级索引结构这四种情况,回答下列问题

    1 给出读盘过程

    2 给出读盘次数(如果有必要,可以对本题未给出的条件做出合理假设)

    1. 读盘过程:

    • 连续结构:根据文件/a/b/c.dat在目录中的信息,找到其起始逻辑块号。然后根据逻辑块号和文件系统的块映射关系,直接读取对应的物理块

    • 基本链式结构:根据文件/a/b/c.dat在目录中的信息,找到对应的I节点编号。从I节点中读取文件的索引结构,逐级跳转到链式结构中的下一个块,直到找到包含所需字节范围的块。然后从该块中读取所需字节。

    • FAT(文件分配表)结构:根据文件/a/b/c.dat在目录中的信息,找到对应的I节点编号。从I节点中读取文件的索引结构,根据FAT表的信息,依次读取块链中的物理块,直到找到包含所需字节范围的块。然后从该块中读取所需字节。

    • 单级索引结构:根据文件/a/b/c.dat在目录中的信息,找到对应的I节点编号。从I节点中读取文件的索引结构,根据单级索引指向的块,再根据块内的索引信息找到包含所需字节范围的块。然后从该块中读取所需字节。

    1. 读盘次数:

    • 连续结构:只需进行一次读取,因为连续结构中的数据是连续存储的。

    • 基本链式结构:根据所需字节范围的位置,可能需要多次读取。每次读取都需要跳转到下一个块。

    • FAT结构:根据所需字节范围的位置,可能需要多次读取。每次读取都需要根据FAT表的信息找到下一个块。

    • 单级索引结构:根据所需字节范围的位置,可能需要多次读取。每次读取都需要根据索引结构中的信息找到下一个块。

    需要注意的是,以上的读盘次数可能还会受到文件系统的缓存策略等因素的影响,这里只是基于给出的情况做出的合理估计。

    为某一个应用场景设计一个文件系统,所设计的文件系统不能建立在已有的文件系统的基础上。具体要求如下:

    1 举一个应用场景的例子,说明该场景下对文件系统的具体需求

    2 针对具体需求给出一种文件系统的设计方案

    3 对你的设计方案进行评价

    1. 应用场景示例:智慧农业控制嵌入式系统。在智慧农业系统中,用户可以通过手机或者智能音箱等设备来控制农场中的各种设备,如灯光、温度、安防等。在这个场景中,文件系统被用于存储和管理各类设备的配置文件、日志文件等数据。

    2. 文件系统设计方案:

    考虑到智慧农业控制嵌入式系统的特点和需求,可以设计一种轻量级的文件系统,具备以下特点:

    • 简单快速: 提供简洁的操作界面和易于理解的文件组织方式,方便用户进行文件的存储、查找和管理。优化文件系统的读写性能,以满足实时控制的需求。采用文件缓存、文件索引等技术来提升文件读写效率。

    • 可靠性: 采用数据冗余和文件系统日志等机制来保证数据的完整性和可靠性,防止数据丢失或损坏。

    • 安全性: 对于敏感信息,采用加密算法进行数据保护,防止数据泄露和非法访问。

    • 灵活扩展: 设计分级的结构设计,以便未来能够支持新的设备类型、新的功能和协议。

    1. 设计方案评价:

    该设计方案针对智慧农业控制嵌入式系统的需求进行了考虑,并且具备一定的可行性和可实现性。然而,对于一个完整的文件系统来说,还需要更多的细节和技术实现方面的考虑,如并发访问的处理、容错和恢复机制等。此外,还需要考虑与其他系统组件的协同工作,以确保整个智慧农业控制嵌入式系统的稳定运行和良好的用户体验

  • 相关阅读:
    使用Python爬虫抓取网站资源的方法
    C++ string常用函数用法总结
    【JAVAWEB开发】基于Java+Servlet+Ajax+jsp网上购物系统设计实现
    CH573/CH571低功耗集成BLE 32位微控制器MCU
    使用VSCode进行Python模块调试
    Linux-centos8安装docker
    python基于PHP+MySQL的大学生健康管理系统
    假脸检测:Exploring Decision-based Black-box Attacks on Face Forgery Detection
    摩尔信使MThings的报文管理功能
    1分钟-从例题加深对C语言中指针的了解
  • 原文地址:https://blog.csdn.net/Q52099999/article/details/134497365