版权声明:就是开个版权玩一下 https://blog.csdn.net/qq_41997479/article/details/86321808
(PS:个人课下整理的操作系统笔记,OneNote直接拷贝过来的,图片看不了就将就一下,配合张伟老师的PPT看效果更好)
一、文件的概念
1.文件是一个记录在二级存储上有名称的具有相关信息的集合
2.从用户角度来讲,一个文件是保存信息的最小分配单元
3.文件的属性(attribute)
- 文件的相关信息保存在磁盘的目录结构中
- 文件有了名称之后,就独立于进程,用户,操作系统了
4.文件的操作
- 系统调用open通常返回的是打开文件表的对应条目的指针,后续操作都是基于该指针进行的。
- 单个进程的“打开文件表”和系统的“打开文件表”,单个进程的表的每一条目都指向系统的表。
- 单个进程的“打开文件表”,包含进程中打开的所有文件,以及文件的当前位置指针。
- 系统的“打开文件表”,包含进程的无关信息。磁盘位置、访问日期、文件大小,open count
- 打开文件的有关信息
二、访问方式
- 顺序访问——基于磁带模型
- 直接访问——基于磁盘模型(随机访问设备,利用相对块号),适于大规模容量信息的存储
- 索引访问——建立在直接访问方式基础上,对于比较大的文件
三、目录结构(Directory structure)
- 目录是包含文件信息的结点集合
- Both the directory structure and the files reside on disk,需备份文件和目录
- 分区:逻辑上的磁盘;卷volume:包含文件系统
一个物理上的磁盘对应多个逻辑上的分区
卷volume基于分区来说的,是带有文件系统的分区
- 目录的操作
- 搜索文件:搜索目录结构查找特定文件条目。类似的名称可能预示着文件之间的关系,能够查询给定文件名相关联的所有文件。
- 创建文件
- 删除文件
- 列举目录:能够列举出目录内的所有文件,及其各个条目的内容
- 重命名文件:文件名能够向用户展示其内容。
- 遍历文件系统。用户可能希望遍历目录的每个记录,以及文件系统的每个文件。为了可靠,定期备份。
- 目录的逻辑结构//重点
- Single-Level Directory
- 单层目录中不能有重复命名
- Two-Level Directory
- 一个系统一个MFD,一个用户一个UFD
- 不同的用户文件目录可能会有相同的文件名
- 缺点:对用户的隔离,不能同时在线对同一个任务作业
- Tree-Structured Directory
- 最为常用的目录结构
- 树有根目录。
- 系统内的每个文件都有惟一路径名。
- 路径名是从根经过所有子目录再到指定文件的路径
- 缺点:树形结构禁止共享文件和目录
- Acyclic-Graph Directory无环图目录
- 可以共享文件和目录
- 问题:遍历可能会陷入死循环,删除时可能另一个同样指向它的文件在操作
- General Graph Directory通用图,是一个垃圾例子
- 由于环的存在,遍历会有问题(死循环),删除也会有问题。
- 文件系统加载(mounting)
- 文件共享(sharing)
- 一个文件或者目录的拥有者ID和组ID与其他文件文件属性一起保存
- 远程文件系统:FTP、DFS(分布式文件系统)、www(world wide web)
- 用户服务器模型:允许客户加载到服务器上的远程文件系统
- NFS、CIFS的系统调用都会转换成远程调用
- 分布式系统
- 保护
- 安全性问题
- 物理损坏
- 非法访问
- 解决:增加访问控制列表
- 安全性问题