C5 文件管理

第五章-文件管理

5.1-文件系统概述

引入文件的优点

  • 用户使用方便,按名存取
  • 文件安全可靠
  • 文件可备份
  • 文件可共享

文件系统的功能

  • 面向用户
    • 按名存取
    • 共享和保护
    • 操作和使用
  • OS要实现
    • 文件目录的建立与维护
    • 存储空间的分配和回收
    • 数据安全
    • 用户权限

5.2-文件的存储

物理文件

卷:介质的物理单位

块:主存储器和辅助存储器进行信息交换的物理单位,也叫物理记录

逻辑文件

流式文件

文件中的数据是一串没有结构的字符流,比如一串字符串组成的文件

记录式文件

若干逻辑记录信息所组成的记录流文件。逻辑记录是逻辑上的一坨信息的单位

逻辑记录的成组与分解

这个条目解决了从逻辑记录大小物理记录大小不匹配的问题

优点

  • 节省存储空间
  • 减少IO次数

特点

提前读:因为一次读了多个逻辑记录

推迟写:要缓冲区逻辑记录满了才写

长记录

变长记录

跨块记录

文件的物理结构

这个条目解决了从逻辑记录存到物理记录的组织

顺序文件

逻辑记录——线性排列——>物理记录

优点:顺序读取快

缺点:无法动态分配、修改

连接文件

逻辑记录——链表——>物理记录

优点:能动态增长与修改

缺点:读取必须从头顺序读

直接文件

逻辑记录——Hash——>物理记录

优点:动态、即时读取

缺点:哈希冲突

⭐索引文件

逻辑记录——索引表——>物理记录

优点:动态、“半“即时读取

缺点:建表空间开销和查表时间开销

通常是多级索引。多级索引的项指向了一个目录块

5.3-文件的目录结构

文件目录是实现按名存取的重要结构

如其名,就是个目录。既可能是像书那样的线性目录,也可能是树形目录

目录结构的分类

一级目录结构

一张线性表当目录

评价:所有用户共享、文件还不能重名,所以这样很混乱

二级目录结构

第一级目录按用户分,第二级就是对应用户的文件目录

评价:用户的问题解决了,但是对单个用户来说还是很难用

树形目录结构

层次性的目录结构,既可以是森林(Windows),也可以是一颗树(UNIX)

评价:层次关系能反映现实的关系、文件可以重名、每个子树都可以设置权限等机制

活动文件表

解决查目录的访辅存问题,给每一个进程建立一个活动文件表

用文件之前,通过OS提供的“打开文件”操作,文件的有关目录被放到主存的活动文件表

不用文件了就关掉,并且把修改过的内容写回辅存

⭐inode

直观理解:从文件名到inode号的映射

inode区

在磁盘上,保存了诸多inode项

inode项

保存了inode号、inode引用数、inode所在设备等信息

更重要的,保存了文件的索引表

活动/动态inode

类比活动文件表,把活跃的inode从磁盘里复制到主存

静态inode就是磁盘里inode区存的一堆inode项

5.4-文件的安全和保护

文件共享

不同用户共同使用

好处

  • 减少用户大量重复性劳动
  • 免除系统复制文件的工作
  • 节省文件占用的存储空间
  • 减少程序设计输入输出文件的次数

文件保护

防止文件损坏

文件副本

动态多副本

  • 多个介质上维持同一内容的文件(有点类似RAID0?)
  • 会增加设备和系统开销,适合小而重要的文件的保护

文件转储

  • 定时保存文件副本

存取控制矩阵

为每个用户设置访问每个文件对象的存取属性

系统的全部用户对全部文件的存取属性就组成的一个二维矩阵,称为存取控制矩阵

二维矩阵是稀疏矩阵,故将其简化为存取控制表,每行包括:用户、文件、存取属性

文件属性

先对用户分类,再对每一类用户规定文件属性

用户分类:属主、合作者、其他

文件属性:读、写、执行等

文件保密

防止某些用户窃取

措施

  1. 隐蔽文件目录
  2. 设置口令
  3. 使用密码