操作系统学习笔记(十)-- 文件系统管理(上)

Posted on 2016-04-13 22:57  paulingzhou  阅读(325)  评论(0编辑  收藏  举报

最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助。同时盼望大家能对文章评论,大家一起多多交流,共同进步!

本文主要分以下几个方面:

  • 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. 查找文件
  2. 创建文件
  3. 删除文件
  4. 列目录下文件
  5. 重命名文件
  6. 遍历文件系统

目录的目的:

  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