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

系列文章如下

学习过程中一定要有系统观念(知识框架,每一章开头都会有一个思维导图),知道目前自己在学习的是哪一板块的内容,和前面有什么样的联系

操作系统的很多知识点前后都是联系非常紧密的,去一点一点理解而不是死记硬背会学习的非常愉快的!!!

操作系统相关文章

概述,初步了解操作系统功能及其一些概念

操作系统(一)| 概述 作业 批处理 OS运行环境要求 基本特征-CSDN博客

进程管理部分,重头戏

操作系统(二 )| 进程控制 进程状态 进程描述 进程控制 进程同步互斥-CSDN博客

操作系统(三)| 进程管理上 进程状态 同步 互斥-CSDN博客

操作系统(三)| 进程管理下 经典进程问题分析 线程 死锁-CSDN博客

内存管理部分

操作系统(四)| 内存管理 实存储器管理 虚拟存储器管理 分页 分段式管理-CSDN博客

文件系统管理部分

操作系统(五)| 文件系统上 结构 存取方式 文件目录 检索-CSDN博客

操作系统(六)| 文件系统下 文件使用 共享 保护-CSDN博客

设备管理部分

操作系统(七)| 设备管理-- 端口 驱动程序 基本I/O控制 磁盘I/O-CSDN博客


目录

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. 设计方案评价:

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值