1.6k likes | 1.75k Views
Windows 文件管理. Instructor: Hengming Zou, Ph.D. In Pursuit of Absolute Simplicity 求于至简,归于永恒. 内容提要. 第 1 讲 文件概念与实现 第 2 讲 目录与文件系统. 第 1 讲 文件概念与实现. 文件 文件实现. 文件. 1.1 文件概念 1.2 文件命名 1.3 文件属性 1.4 文件分类 1.5 文件存取 1.6 文件结构. 1.1 文件概念. 一个抽象机制: 一组带标识的在逻辑上有完整意义的信息项的序列,这个标识为文件名 两种观点看待文件 用户观点
E N D
Windows文件管理 Instructor: Hengming Zou, Ph.D. In Pursuit of Absolute Simplicity求于至简,归于永恒
内容提要 • 第1讲 文件概念与实现 • 第2讲 目录与文件系统
第1讲 文件概念与实现 • 文件 • 文件实现
文件 • 1.1 文件概念 • 1.2 文件命名 • 1.3 文件属性 • 1.4 文件分类 • 1.5 文件存取 • 1.6 文件结构
1.1 文件概念 • 一个抽象机制:一组带标识的在逻辑上有完整意义的信息项的序列,这个标识为文件名 • 两种观点看待文件 • 用户观点 • 操作系统观点
1.2 文件命名 • 给出文件命名规则: • 长度,数字和特殊字符,大小写区分,支持文件扩展名(一个或多个) • 例子:.bak .c .f77 .gif .hlp .html .mpg .o .ps .tex .txt .zip
1.3 文件属性 • 包括两部分内容 • 文件数据 • 文件属性 • 常用的数种文件属性
1.4 文件分类 • 按文件性质和用途分类 • 按信息保存期限分类 • 按文件的保护方式分类 • 按文件的逻辑结构分类 • 按文件的物理结构分类
UNIX系统文件分类 • 普通文件(regular) • 目录文件(directory) • 特殊文件(special file)
1.5 文件存取 • 顺序存取 • 随机访问(直接访问) • 索引访问(按键访问)
文件创建 • create(文件名,访问权限,(,最大长度)) • ①检查参数的合法性 • 文件名是否符合命名规则:是→②,否则→错误返回 • ②检查同一目录下有无重名文件:无→③,有→错误返回 • ③在目录中有无空闲位置:有→②,否则→不成功返回 • 有的系统可能要为此文件申请数据块空间 • ④填写目录项内容: • 文件名,用户名等,存取权限,长度置零,(,首址) • ⑤返回
文件打开 • 使用文件的第一步,任何一个文件使用前都要先打开,即把FCB送到内存 • fd=open(文件路径名,打开方式)
文件打开的步骤 • ①根据文件路径名查目录,找到FCB主部; • ②根据打开方式、共享说明和用户身份检查访问合法性 • ③根据文件号查系统打开文件表,看文件是否已被打开 • 是→共享计数加1 • 否则→将外存中的FCB主部等信息填入系统打开文件表空表项,共享计数置为1 • ④在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项 • 返回信息:fd文件描述符,是非负整数,用于以后读写文件
文件读 • read(文件名,(文件内位置),要读的长度,内存地址) • 隐含参数:进程主 • ① 检查长度是否为正整数 • 是→②,否则→⑩ • ② 根据文件名查找目录,确定该文件在目录中的位置 • ③根据隐含参数中的进程主和目录中该文件的存储权限数据,检查是否有权读? • 是→④,否则→⑩
文件读 • ④由文件内位置与要读的长度计算最末位置,将其与目录中的文件长度比较,超过否? • 是→⑩,否则→⑤ • 也可将参数中的长度修正为目录中的文件长度 • ⑤根据参数中的位置、长度和目录中的映射信息,确定块号、块数、块内位移与长度。(多次读盘) • ⑥根据下一块号读块至内存缓冲区 • ⑦根据块内位移长度取出要读的内容,送至参数中的内存目的地址
文件读 • ⑧根据块内长度或起始块号+块数,确定还读下一块吗?同时确定下一块块号 • 是→⑤,否则→⑨ • ⑨正常返回 • ⑩错误返回,返回相应错误号
文件读写定位 • ①由fd查用户打开文件表,找到对应的入口; • ②将用户打开文件表中文件读写指针位置设为新指针的位置,供后继读写命令存取该指针处文件内容
其它文件操作 • 文件关闭 • 文件写 • 文件删除 • 文件截断
1.7 文件结构 • 分为逻辑结构和物理结构 • 逻辑结构是从用户角度看文件,研究文件的组织形式 • 物理结构是从系统的角度来看文件,从文件在物理介质上的存放方式来研究文件
2. 文件实现 • 主要考虑如何在外部存储介质上为创建文件而分配空间,为删除文件而回收空间,以及对空闲空间进行管理 主要考虑: • 空间分配策略 • 空闲空间管理
2.1 空间分配策略 (1)连续空间分配(顺序) 文件的信息存放在若干连续的物理块中 优点: 简单 支持顺序存取和随机存取 顺序存取速度快 所需的磁盘寻道次数和寻道时间最少
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 文件目录 count 文件名 始址 块数 f count 0 2 tr 14 3 mail 19 6 list 28 4 f 6 2 tr mail list
缺点: • 文件不能动态增长 预留空间:浪费 重新分配和移动 • 不利于文件插入和删除 • 外部碎片问题-存储压缩技术
(2)链接结构 • 一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块 • 优点:提高了磁盘空间利用率,不存在外部碎片问题 • 有利于文件插入和删除 • 有利于文件动态扩充
文件目录 文件名 始址 末址 jeep 9 25 0 1 10 2 3 4 5 6 7 8 9 16 10 25 11 12 13 14 15 16 1 17 18 19 20 21 22 23 24 25 -1 26 27 28 29 30 31
缺点:存取速度慢,不适于随机存取 可靠性问题,如指针出错 更多的寻道次数和寻道时间 链接指针占用一定的空间 • 链接结构的一个变形: 文件分配表FAT
(3)索引结构 一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构--索引表,并将这些块的块号存放在一个索引表中 一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 文件目录 文件名 索引表地址 Jeep 19 9 16 1 10 25 -1 -1 -1 19
优点: 保持了链接结构的优点,又解决了其缺点: • 即能顺序存取,又能随机存取 • 满足了文件动态增长、插入删除的要求 • 能充分利用外存空间
缺点:较多的寻道次数和寻道时间 索引表本身带来了系统开销 如:内外存空间,存取时间
索引表组织 • 链接模式 • 多级索引 • 综合模式
UNIX文件系统采用的是多级索引结构(综合模式) • UNIX中采用了三级索引结构后,文件最大可达16兆个物理块
2.2 空闲空间管理 (1)空闲块表 将所有空闲块记录在一个表中,即空闲块表,有两项 (2)空闲块链表 把所有空闲块链成一个链 扩展:成组链接法
第一组各块块号与总块数 文件存储设备 最后组 第三组 第二组 第一组 最后组的块号与总块数 50块 50块 49块 第二组各块块号与总块数 倒数第二组各块块号与总块数 文件资源表
分配和回收的算法 1.分配一个空闲块 查L单元内容(空闲块数): 当空闲块数>1 i : =L+空闲块数; 从i单元得到一空闲块号; 把该块分配给申请者; 空闲块数减1。 当空闲块数=1 取出L+1单元内容(一组的第一块块号或0); 其值=0 无空闲块,申请者等待 不等于零 把该块内容复制到专用块; 该块分配给申请者; 把专用块内容读到主存L开始的区域。
分配和回收的算法(续) 2.归还一块 查L单元的空闲块数; 当空闲块数<100 空闲块数加1; j : =L+空闲块数; 归还块号填入j单元。 当空闲块数=100 把主存中登记的信息写入归还块中; 把归还块号填入L+1单元; 将L单元置成1。
(3)位图法 • 用一串二进制位反映磁盘空间中分配使用情况, 每个物理块对应一位, 分配物理块为1,否则为0 • 申请物理块时,可以在位示图中查找为0的位,返回对应物理块号; • 归还时;将对应位转置0 • 描述能力强,适合各种物理结构
计算公式: 已知字号i,位号j 块号=i×字长+j 已知块号: 字号=[ 块号/字长] 位号=块号 mod 字长
已知块号,则磁盘地址: 柱面号=[块号/(磁头数×扇区数)] 磁头号=[(块号mod (磁头数×扇区数))/扇 区数] 扇区号=(块号mod (磁头数×扇区数))mod 扇区数 • 已知磁盘地址: 块号=柱面号×(磁头数×扇区数)+磁头号×扇区数+扇区号
小测验 • 文件属性包含哪两个部分的内容? A. 文件数据 B. 文件本身的说明信息 C. 文件类型 D. 文件长度 • 下列哪一类不属于按文件的物理结构分类? A. 顺序(连续)文件 B. 链接文件 C. 索引文件 D. 记录文件 • 磁带所采取的存取方式是 A. 顺序 B. 随机 • Unix 采用的是 A. 一级索引结构 B. 二级索引结构 C.多级索引结构
习题 • 从用户观点和操作系统观点看文件各有什么特点? • 按物理结构文件可以如何分类,按文件的逻辑结构如何分类? • 请列举常用的空间分配策略及其优缺点。
第2讲 目录与文件系统 • 目录的概念与实现 • 文件系统
1. 目录概念与实现 • 目录 • 目录概念 • 目录功能 • 目录结构 • 目录操作 • 目录实现
1.1目录概念 • 文件控制块FCB • 文件控制块是文件存在的标志 • 文件控制块的主要内容 • 文件目录 • 目录项 • 目录文件
文件控制块(FCB):文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文件属性)文件控制块(FCB):文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文件属性) 文件控制块是文件存在的标志
文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合 • 目录项:构成文件目录的项目(目录项就是FCB) • 目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件
文件控制块的内容: 文件名,文件号,用户名,文件地址,文件长度,文件类型,文件属性,共享计数,文件的建立日期,保存期限,最后修改日期,最后访问日期,口令,文件逻辑结构,文件物理结构
文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合 • 目录项:构成文件目录的项目(目录项就是FCB) • 目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件
1.2 目录功能 • 实现“按名操作” • 提高检索速度 • 允许文件同名 • 允许文件共享