知识结构
- 文件逻辑结构
- 无结构文件
- 有结构文件
- 目录结构
- FCB与索引节点
- 单级、两级、多级目录
- 文件共享
- 硬链接
- 软链接
- 文件保护
- 口令
- 密码
- 访问控制
文件的逻辑结构
文件的逻辑结构是从用户观点出发看到的文件的组织形式;指数据逻辑上怎么组织起来的
- 无结构文件
- 有结构文件
无结构文件(流式文件)
数据以字节流或字符流的逻辑形式体现;那些对基本信息单位操作不多的文件可采用这种结构;如源文件程序、目标代码文件;
有结构文件
- 顺序文件:记录一般定长
- 串结构:记录按存入时间先后排序
- 顺序结构:所有记录按关键字顺序排列
- 索引文件:由索引表指示逻辑文件
- 可变长记录
- 定长记录
- 索引顺序文件:对记录分组
- 直接文件或散列文件:给定记录的键值或通过散列函数转换的键值决定记录的物理地址
特点
- 顺序文件:批量操作时效率最高
- 索引文件:通过添加索引表增加检索速度,索引表本身是定长记录的顺序文件;如果记录很多,索引表可能会很大;
- 顺序索引文件:记录分组,查找时,先查找组内第一个关键字,再在组内查找;最好情况查找 n \sqrt n n次;提高了检索速度;和索引文件一样增加了索引表的存储空间;
- 直接文件(散列文件):速度很高,但是可能出现冲突
文件目录的逻辑结构
即文件逻辑上如何被组织的
- 文件控制块
- 索引节点
- 目录结构
文件控制块
FCB的有序集合成为文件目录,一个FCB就是一个文件目录项,它包含一下信息:
- 基本信息:文件名、文件物理位置、文件逻辑结构、文件物理结构
- 存取控制信息:文件存取权限
- 使用信息:文件建立时间、修改时间
索引节点
检索目录时,只需要文件名,于是将文件名与文件描述信息分开放,文件描述信息单独形成一个索引节点;一个文件目录项指向一个索引节点
- 磁盘索引节点:文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件链接计数、文件存取时间
- 内存索引节点:在上面基础上额外增加:内存索引节点编号、状态(结点是否被上锁或修改)、访问计数、逻辑设备号、链接指针;
目录结构
- 单级目录结构:实现了按名存取,查找速度慢,文件不允许重名,不便于文件共享、不适用于多用户os
- 两级目录结构:可解决多用户之间的文件重名的问题,可以在目录上实现访问权限,缺乏灵活性,不能分类;
- 多级目录结构:可以很方便的对文件分类,更有效地进行文件的管理和保护,但是增加了磁盘访问次数,不便于文件共享;为每一个共享节点设置一个共享计数器;
- 无环图目录:可以实现文件共享,但是管理很复杂;
文件共享
- 基于索引节点(硬链接):指向同一个索引节点
- 符号链接(软链接):保存共享文件的路径名;需要根据路径查找目录,直到找到索引节点,因此开销大,访问磁盘次数增加,符号链接的索引结点也耗费磁盘空间;
显然的,硬链接比软连接快
文件保护
- 访问控制
- 口令
- 密码
特点:
- 访问控制:由系统实现,可以使用复杂的访问方法,增加的访问控制信息长度无法估计,且能导致复杂的空间管理
- 口令:用户请求访问时给出相应口令,时间空间开销不多,但口令存在系统内部,不安全;
- 密码:用户对文件加密,访问时用密钥解密,保密性强,节省存储空间,但编码、译码需要一定时间
密码和口令都是防止用户文件被他人存取或窃取,没有控制用户对文件的访问类型;