《操作系统文件》文件管理笔记(下)

五、文件操作
预告

(1) 创建文件(create系统调用)
  1. 进行Create系统调用时,需要提供几个参数:
    1. 所需的外存空间大小(如:一个盘块)
    2. 文件存放路径(“D:/Demo”)
    3. 文件名
  2. 操作系统在处理create系统调用时,主要做了两件事:
    1. 在外存中找到文件所需的空间(利用空闲链表法、位示图、成组链表法等管理策略,找到空闲空间)
    2. 根据文件存放路径的信息找到该目录对应的目录文件。在目录中创建该文件对应的目录项。目录项中包含了文件名、文件在外存中的存放位置等信息 。
(2) 删除文件(Delete系统调用)
  1. 进行Delete系统调用时,需要提供几个参数:
    1. 文件存放路径(“D:/Demo”)
    2. 文件名
  2. 操作系统在处理Delete系统调用时
    1. 根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的目录项
    2. 根据该目录项记录的文件在外存的存放位置、文件大小等信息回收文件占用的磁盘块(回收磁盘块时,根据空闲表法、空闲链表法、位示图法等管理策略的不同,需要做不同的处理)
(3) 打开文件(Open系统调用)
  1. 进行Open系统调用时,需要提供几个参数(在很多操作系统中,在对文件进行操作之间需要使用open系统调用)
    1. 文件存放路径
    2. 文件名
    3. 要对文件的操作系统
  2. 操作系统在处理Open系统调用时
    1. 根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的目录项, 并检查该用户是否有指定的操作权限
    2. 将目录项复制到内存中的“打开文件表”中。并将对应表目的编号返回给用户。之后用户使用打开文件表的编号来指明要操作的文件

(4) 关闭文件(Close系统调用)
  1. 进程使用完文件后,要“关闭文件”
  2. 操作系统在处理Open系统调用时
    1. 将进程的打开文件表相应表项删除
    2. 回收分配该文件的内存空间等资源。
    3. 系统打开文件表的打开计数器count减1,若count = 0,则删除对应表项。
(5) 写文件(Write系统调用)
  1. 进程使用write系统调用完成写操作,需要指明是哪个文件(在支持“打开文件”操作的系统中,只需要提供文件在打开文件表中的索引号即可),还需要指明要写出多少数据、写回外存的数据放在内存中的什么位置。
  2. 操作系统在处理write系统调用时,会从用户指定的内存区域中,将指定大小的数据写回写指针指向的外存。
(6) 读文件(Read系统调用)
  1. 进程使用read系统调用完成写操作,需要指明是哪个文件(在支持“打开文件”操作的系统中,只需要提供文件在打开文件表中的索引号即可),还需要指明要读入多少数据、读入的数据放在内存中的什么位置。
  2. 操作系统在处理read系统调用时,会从读指针指向的外存中,将用户指定大小的数据读入用户指定的内存区域中。
总结


六、文件共享
预告

##### (1) 基于索引结点的共享文件(硬链接)

知识回顾:索引结点,是一种文件目录瘦身策略。由于检索文件时只需用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中。这些目录项就只需要包含文件名、索引结点指针。

  1. 索引结点中设置了一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数,即有多少用户在共享此文件。
  2. 若某用户决定“删除”该文件,则只是要把用户目录中该文件对应的目录项删除,且索引结点的count减1。若count = 0时系统负责删除文件。
(2) 基于符号链的共享方式(软连接)

  1. 当User3访问“ccc”时,操作系统判断文件“ccc”属于Link类型文件,于是会根据其中记录的路径层层查找目录,最终找到User1的目录表中的“aaa”表项,于是就找到了文件1的索引结点。
  2. 当软连接指向的共享文件已被删除,Link型文件依然存在,只是通过Link型文件中的路径去查找共享文件会失败。
总结

七、文件保护
预告

(1) 口令保护

为文件设置一个“口令”(口令一般存放在文件对应的FCB或索引结点中),用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与FCB中存储的口令进行对比,正确则可以访问。

优点保存口令的空间开销不多,验证口令的时间开销也很小。
缺点正确的“口令”存放在系统内部,不够安全。

(2) 加密保护

使用某种加密算法利用某个“密码”对文件进行加密,而操作系统中保存加密之后的文件,在访问文件时需要提供“密码”对文件进行解密,正确解密之后的文件与原文件相同。

优点保密性强,不需要在系统中存储“密码”。
缺点编码(加密)/译码(解密)需要花费一定时间

(3) 访问控制

在每个文件的FCB(或索引点)中增加一个访问控制列表,该表中记录了各个用户可以对该文件执行哪些操作。但是假如用户太多时文件会比较大,所以操作系统有精简的访问列表,以组为单位,标记各组用户可以对文件执行哪些操作。当用户访问文件时,操作系统会检查用户所属的分组是否有相关的访问权限。



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

总结

八、文件系统的层次结构


用一个例子辅助记忆文件系统的层次结构
假设某用户请求删除文件“D:/work/student.txt”的记录

  1. 用户需要通过操作系统提供的接口发出上述请求——用户接口
  2. 由于用户提供的是文件的存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录项——文件目录系统
  3. 不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否优访问权限——存取控制模块(存取控制验证层)
  4. 验证了用户的访问权限之后,需要打用户提供的“记录号”转变为对应的逻辑地址——逻辑文件系统与文件信息缓冲区
  5. 知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址——物理文件系统
  6. 要删除这条记录,必定要对磁盘设备发出请求——设备管理程序模块
  7. 删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收——辅助分配模块

操作系统文件管理思维导图

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值