操作系统教程(第4版) 第六章 文件管理 高等教育出版社 2008年4月
第六章 文件管理 6.1文件 6.2文件目录 6.3文件组织与数据存储 6.4文件系统其他功能的实现 6.5 Linux的文件管理 6.6 Windows 2003文件系统
文件系统概述(1) 文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。 文件的逻辑结构和存储结构。 逻辑文件和物理文件。
文件系统概述(2) 文件系统面向用户的功能 • 文件的按名存取 • 文件目录建立和维护 • 实现逻辑文件到物理文件的转换 • 文件的按名存取 • 文件目录建立和维护 • 实现逻辑文件到物理文件的转换 • 文件存储空间的分配和管理 • 提供合适的文件存取方法 • 实现文件的共享、保护和保密 • 提供一组可供用户使用的文件操作
6.1 文件 6.1.1 文件概念 6.1.2 文件命名 6.1.3 文件类型 6.1.4 文件属性 6.1.5 文件存取方法
6.1.1 文件的概念(1) 按用途分类: 按保护级别分类: 按信息流向分类: 按存放时限分类: 按设备类型分类: 按文件的结构分类: •文件是由文件名字标识的一组信息的集合。可按各种方法进行分类: 按用途分类: 按保护级别分类: 按信息流向分类: 按存放时限分类: 按设备类型分类: 按文件的结构分类:
文件的概念(2) 文件系统优点 用户使用方便 文件安全可靠 实现文件共享
6.1.2 文件的命名 文件是一个抽象机制,提供了把文件保存在磁盘上,用户不必了解信息存储细节且便于读取的方法,这一抽象机制中最重要的是文件命名。 文件名是字母或数字组成的字母数字串,它的格式和长度因系统而异。
6.1.3 文件的类型 •普通文件:ASCII/二进制 •目录文件: •特别文件:块设备文件、字符设备文件、管道文件。 操作系统支持不同类型文件: •普通文件:ASCII/二进制 •目录文件: •特别文件:块设备文件、字符设备文件、管道文件。
6.1.4文件的属性 •文件基本属性: •文件类型属性: •文件保护属性: •文件管理属性: •文件控制属性:
文件保护属性(1) 文件保护属性用于防止文件被破坏,称为文件保护。包括两个方面: 一是防止系统崩溃所造成的文件破坏; 二是防止文件主和其他用户有意或无意的非法操作所造成的文件不安全性。
文件保护属性(2) 防止系统崩溃造成文件破坏的方法: • 定时转储 • 多副本 访问控制--防止文件主和其他用户有意或无意的非法操作所造成的文件不安全性,基本思想是建立三元组: (用户、对象、存取权限)
文件保护属性(3) 同组用户、其他用户三类, • 定义存取权限可读r、可写w、可执行x,文件属性共有10位: -rwxrwxrwx • UNIX/Linux把用户分为文件主、 同组用户、其他用户三类, • 定义存取权限可读r、可写w、可执行x,文件属性共有10位: -rwxrwxrwx
6.1.5文件的存取 存取方法是操作系统为用户程序提供的使用文件的技术和手段。 存取方法 1 顺序存取 2 直接存取 3 索引存取
6.2文件目录 6.2.1 文件控制块、文件目录与目录文件 6.2.2 层次目录结构 6.2.3 目录的检索
文件系统的分层结构 文件管理--实现文件的逻辑结构,为用户提供各种文件系统调用,及文件访问权限的设置等工作; 目录管理--负责查找文件描述符,进而找到需要访问的文件,及进行访问权限检查等工作; 磁盘主存映射管理--将文件的逻辑地址转换成磁盘的物理地址,即由逻辑块号找到柱面号、磁道号和扇区号,具体的数据传输操作由设备管理实现。
6.2.1 文件目录与文件目录项(1) 文件系统实现“按名存取”文件的重要手段是文件目录 文件系统基本功能之一是负责文件目录的建立、维护和检索。 文件目录项又称文件控制块FCB(File Control Block) 。
文件目录与文件目录项(2) 文件目录项内容 •有关文件存取控制的信息: •有关文件结构的信息: •有关文件使用的信息: 文件目录与文件目录项(2) 文件目录项内容 •有关文件存取控制的信息: •有关文件结构的信息: •有关文件使用的信息: •有关文件管理的信息:
文件目录与文件目录项(3) 文件目录项内容 •文件目录项 •文件目录 •目录文件
6.2.2层次目录结构(1) Linux和Windows层次目录结构 桌面 我的电脑 软盘 本地磁盘C: 本地磁盘D: user1 … CD驱动器 网络邻居 回收站 软盘(A:) 本地磁盘(C:) 本地磁盘(D:) CD驱动器(E:) B testfile.c tty00 / dev usr lib etc home tty01 bin man tmp passwd var fei1 myfile.c getty fei3 fei2 fei4 fei5
层次目录结构(2) 每一级目录可以是下一级目录的说明,也可以是文件的说明,形成层次关系。 多级目录结构采用树形结构,是一棵倒向有根树,树根是根目录;从根向下,每个树枝是一个子目录;而树叶是文件。 树型多级目录优点;
层次目录结构(3) 路径名 目录路径名 文件路径名 绝对路径名 相对路径名
UNIX/Linux特殊目录项建立方法(1) 14个字节 2个字节 inode号 文件名
6.2.3 文件目录的检索 不同角度的目录结构 (a)用户角度目录结构 (b)系统角度目录链接 usr myfil xyz home fei1 myfile.c fei3 fei2 A fei4 fei5 testfile.c B 685 . 100 .. 941 A 270 fei1 250 fei2 770 fei3 270 . 685 .. 302 myfile.c 250 . 685 .. 302 myfile.c 770 . 345 fei4 565 fei5 345 . 770 .. 302 testfile.c 565 . 824 B 不同角度的目录结构 (b)系统角度目录链接
6.3文件组织与数据存储 6.3.1 文件的存储 6.3.2 文件的逻辑结构 6.3.3 文件的物理结构
6.3.1 文件的存储(1) 卷是存储介质的物理单位。 物理卷和物理设备不总是一致的。 文件和卷 单文件卷 多文件卷 多卷文件 多卷多文件
文件的存储(2) 块: 存储介质上连续信息所组成的一个区域,也叫物理记录 块是主存储器和辅助存储设备信息交换的物理单位: 每次交换一块或整数块。 块大小: 需考虑用户使用方式、数据传输效率和存储设备类型等。 不同类型的存储介质,块大小通常不同 同一类型的存储介质,块大小也可不同 块间隙
6.3.2文件的逻辑结构 1 流式文件和记录式文件(1) 文件组织:文件中信息的配置和构造方式 文件组织的两个方面: 文件的逻辑结构 6.3.2文件的逻辑结构 1 流式文件和记录式文件(1) 文件组织:文件中信息的配置和构造方式 文件组织的两个方面: 逻辑结构 物理结构 文件的逻辑结构 用户角度出发 抽象的信息组织方式
流式文件和记录式文件(2) 文件逻辑结构分类:流式文件、记录式文件 流式文件 记录式文件 字节流文件,文件数据不再组成记录 例如:txt文档、视频文件等 读指针、写指针: read,write,seek 记录式文件 结构性文件,含有逻辑记录 注册表文件等
流式文件和记录式文件(3) 记录式文件包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含意划分的信息单位。 分类: 记录式顺序文件 记录式索引顺序文件 记录键 索引文件
2 成组和分解(1) 逻辑记录和块的关系 逻辑记录:按信息在逻辑上的独立含义划分的单位 块:存储介质上连续信息所组成的区域 2 成组和分解(1) 逻辑记录和块的关系 逻辑记录:按信息在逻辑上的独立含义划分的单位 块:存储介质上连续信息所组成的区域 一个快可以包换多个记录,一个记录可以跨越多个记录 成组操作:多个记录合并成一组写入一个块 分解操作反之 块因子
成组和分解(2) 记录成组和分解处理过程 节省存储空间、提高I/O效率 逻辑记录1 逻辑记录2 逻辑记录3 物理记录 逻辑记录 用户缓冲区 系统缓冲区 节省存储空间、提高I/O效率
3记录格式和记录键 记录格式 定长记录:处理简单、浪费空间 变长记录:处理复杂、节省空间 跨块记录 记录键 主键,次键 单键记录,多键记录
6.3.3 文件的物理结构(1) 文件的物理结构 逻辑文件在物理存储空间中存放方法和组织关系。 文件的存储结构涉及:块的划分、记录的排列、索引的组织、信息的搜索,其优劣直接影响文件系统的性能。
文件的物理结构(2) 构造文件物理结构的方法 第一类计算法。 第二类指针法。
1顺序文件(连续文件 ) 顺序文件:文件中逻辑上连续的信息顺序存放到存储介质上相邻的块中 顺序文件变种: 紧凑顺序文件、扩展顺序文件 特点:逻辑记录顺序和物理记录顺序完全一致的文 优点:顺序存取快 缺点:查询慢、增删文件困难,浪费磁盘空间 顺序文件变种: 紧凑顺序文件、扩展顺序文件 连接顺序文件、划分顺序文件
2连接文件(串联文件)(1) 连接文件结构示意图 目录项 ……
连接文件(串联文件)(2) 连接文件使用连接字,又叫指针来表示文件中各个记录之间的关系 连接结构的优缺点 • 连接文件变种: 优点:增、删、改相对简单 缺点:指针和数据混存;下一个物理块的地址依赖于上一块 • 连接文件变种: 堆栈、队列、两端队列
3直接文件(哈希文件)(1) 记录的关键字与其地址间可通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。 hash表技术:记录关键字哈希值记录物理地址 常用于cache
直接文件(哈希文件)(2) 步1 构造转换(hash)函数 设文件名为8个ASCⅡ字符。构造的hash函数为模2加“⊕”,求已知文件名的ASCⅡ字符值的模2加值作为该文件的FCB所在物理块在目录文件中的索引A,那么, A= (a1⊕a2⊕…⊕a8)
直接文件(哈希文件)(3) 步2 建立目录文件(2) 直接文件(哈希文件)(3) 步2 建立目录文件(2) 目录文件采用索引结构,建立文件时由步1求出文件名的hash值A, 凡A值相同的文件的FCB都存放在同一个物理块。磁盘的物理块号存放在索引表中的相对位置应等于A值。
直接文件(哈希文件)(4) 步2 建立目录文件(2) 直接文件(哈希文件)(4) 步2 建立目录文件(2) 目录文件 A=10 26号物理块 file1文件控制块 file2文件控制块 10 26
直接文件(哈希文件)(5) 步3 查找文件 根据给定文件名,由步1算出该文件的FCB所在物理块号在索引表中的相对位置A。根据A就可找到该FCB所在物理块号, 把这个物理块读入主存缓冲区,用文件名逐个比较,找出要求的FCB。
直接文件(哈希文件)(6) 步4 溢出处理 物理块中存放的FCB是有限的,建立目录文件时,如果A值相同的文件数目超过物理块能容纳数时,产生溢出。 溢出时,系统再申请一个盘区,该区物理块号放在A+k的索引表目中,k是质数作为位移常数。 第二块盘区也溢出,则申请第三块,块号放在A+2×k表目中,依此类推。 查找目录时,如第一块找不到可找A+k表目中的物理块号,读出后继续比较,依次类推。
4索引文件(1) 索引文件 无键索引表 有键索引表 系统为每个文件建立索引表,指示文件数据所在的物理盘块号 实现文件的非连续存储 索引表是文件所在盘块号的序列 适用于流式文件 有键索引表 索引表包括记录键及其磁盘块号
索引文件(2) 两种索引文件 结构示意图 盘块号 记录键 文件 控制块 Key 1 Key 2 (b)有键索引表 (a)无键索 … 引表 Key N (b)有键索引表
索引文件(3) 索引顺序文件 索引顺序文件是顺序文件的扩展,各记录本身在介质上也顺序排列,有直接处理和修改记录的能力 索引顺序文件能象顺序文件一样进行快速顺序处理,既允许按物理存放次序(记录出现的次序);也允许按逻辑顺序(由记录主键决定的次序)进行处理。 二级索引。二级索引表的表项列出一级索引表每一块最后一个索引项的键值及该索引表区的地址,若干个记录的索引本身也是一种记录。查找时先查看二级索引表找到某键所在的索引表区地址,再搜索一级索引表找出数据记录。 三级索引。
索引文件(4) UNIX/Linux多重索引结构 1 2 3 4 5 6 7 8 9 10 11 12 … 127