最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助。同时盼望大家能对文章评论,大家一起多多交流,共同进步!
本文主要分以下几个方面:
- File Concepts 文件概念
- Access Methods 访问方式
- Directory Structure 目录结构:按名存取
- Protection 保护
文件结构:
- None 无结构:由字或字节的序列组成
- Simple record structure:简单记录结构:行,定长,变长
- Complex Structure 复杂结构:格式化,重定位
- Who decides:OS, Program 定义
文件属性:文件信息由目录结构保存,储存在磁盘中
- Name 名字
- Type 类型
- Location 位置
- Size 大小
- Protection 保护
- Time, date and user identification 时间,日期和用户信息
文件操作 File Operation: Create, Write, Read, Seek(定位), Delete, Truncate(截取)
Open(Fi):查找文件目录,找到文件对应的目录表目,然后将表目的内容拷贝入主存
Close(Fi):将Fi目录的内容写回磁盘,中断文件与内存的联系
访问方式:
- 顺序访问 Sequential Access:read next, write next, reset 主要针对顺序介质(磁带)
- 直接访问 Direct Access:磁盘定位+扇区定位
目录结构:
- 包含文件相关信息(基本属性)的集合
- 文件和文件信息都保存在磁盘上
目录信息:文件名,文件类型,位置信息,当前长度,最大长度,上次访问时间,上次修改时间,创建者标识,保护信息
对目录操作:
- 查找文件
- 创建文件
- 删除文件
- 列目录下文件
- 重命名文件
- 遍历文件系统
目录的目的:
1. Efficiency - 快速定位文件
2. Naming 命名 - 方便用户使用
-
- 允许多个用户对于不同的文件有相同的文件名
- 相同的文件可以有不同的文件名
3. Grouping - 对文件按照属性进行分组
单级目录 Single-Level Directory:所有用户创建文件在一个目录下。
缺点:1. Naming problem 命名冲突 2. Grouping problem 单级目录下不支持分组
两级目录 Two-Level Directory:为每个用户划分目录
树型结构目录 Tree-Structure Directories
1. 查询效率高
2. 可继续分组
3. 绝对路径/相对路径
4. 创建新文件都在当前目录下
5. 删除文件 rm <file-name>; 在当前目录创建新的字目录 mkdir<dir-name>
无环图结构目录 Acyclic-Graph Directories
- 可以在子目录间共享文件
- 同一内容可以有不同名字
- 删除共享节点可能引入危险指针,解决方法:1. 引入计数器计共享该内容的进程数,当无进程共享时删除实体空间;2. 把所有指向该实体空间的指针都删除
通用图目录 General Graph Directory
保护 Protection
文件拥有者需要控制访问方式/访问用户。
访问方式:Read, Write, Execute, Append, Delete, List