1 / 45

第六章 文件管理

第六章 文件管理. 6.1 文件和文件系统. 6.1.1 文件、记录、数据项 ( 说明包含关系 ) 数据项 基本数据项:可命名的最小逻辑单位 / 字段 组合数据项:由若干基本数据项组成 基本数据项的类型和数据 记录 一组相关数据项的集合 关键字:能唯一地标识出记录的基本 / 组合数据项 文件 具有文件名的一组相关信息的集合。. 文件属性. 文件类型 文件长度 文件物理位置 文件建立时间 ……. 6.1.2 文件类型和文件系统模型. 类型 一、按用途分类: 系统文件,用户文件,库文件。 (用户对以上三者的访问权限不同)

hidi
Download Presentation

第六章 文件管理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 文件管理

  2. 6.1文件和文件系统 6.1.1 文件、记录、数据项(说明包含关系) 数据项 基本数据项:可命名的最小逻辑单位/字段 组合数据项:由若干基本数据项组成 基本数据项的类型和数据 记录 一组相关数据项的集合 关键字:能唯一地标识出记录的基本/组合数据项 文件 具有文件名的一组相关信息的集合。

  3. 文件属性 • 文件类型 • 文件长度 • 文件物理位置 • 文件建立时间 • ……

  4. 6.1.2 文件类型和文件系统模型 • 类型 • 一、按用途分类: • 系统文件,用户文件,库文件。 • (用户对以上三者的访问权限不同) • 二、按文件中的数据形式分类 • 源,目标,可执行。 • 三、存取控制 • E,R,R/W

  5. 6.1.2 文件类型和文件系统模型 • 类型 • 四、逻辑结构 • (1)有结构(记录式) • (2)无结构(流式) • 五、物理安排 • (1)顺序文件;数据(连续放) • (2)链接文件; • (3)索引文件; • 六、文件与目录文件

  6. 文件系统模型 • 概念:文件和对文件进行操纵和管理的软件集合。 • 三个层:文件(对象及属性)文件操作文件访问接口 • 一、管理的对象及属性 • (1)文件 • (2)目录:例:目录项 • 用于方便用户(提供文件逻辑名来访问文件)和提高文件存取速度。 • (3)物理存贮空间的管理,好坏将影响访问速度。

  7. 文件系统模型 • 二、对对象操纵和管理的软件集合: • (1)逻辑文件系统:受命write(record of 文件,buf) ->write(逻辑号,buf) • (2)基本I/O管理:write(逻辑号, buf) • (3)基本文件系统:向driver发令,(buf具体物理盘块号) • (4)I/O控制层:driver • 三、文件系统接口 • 命令接口: • 程序接口:

  8. 6.1.3 文件操作 • 一、对记录操作——类似数据库 • 二、对文件操作: • 创/删/读/写/截断(清空)/拔指针 • 三、打开关闭操作 • 打开:将文件的属性从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(索引)返回给用户 • 四、其它 • 更名、更改属性…

  9. 6.2 文件逻辑结构 • 概念:用户所能观察和访问到的文件的数据结构组织,独立于物理特性,容易检索和修改。 • 无论是逻辑还是物理结构,都会影响到文件的检索速度

  10. 6.2.1 逻辑结构类型 • 一、有结构文件:记录式文件 • a类: • (1)定长记录 • (2)变长记录 • b类: • (1)顺序文件:通常是定长记录,(为何,因变长采用此方式查询速度慢) • (2)索引文件: • (3)索引顺序文件:顺序组织多个组,每组记录中的第一个记录设置一索引项。 • 二、无结构文件:流式文件 • 以字节为单位,利用读/写指针进行访问。

  11. 6.2.2 顺序文件 • 一、逻辑记录的排序 • (1)按记录录入的时间排:串结构。 • (2)按关键字排序:顺序结构。 • 后一种情况更有利于提高查询速度。如可用折半查找法等。 • 二、对顺序文件的读/写操作(图6.3) • 定长记录顺序文件:例:顺序读 • 易于定位,甚至可随机读取。 • 变长记录:不易定位,只能顺序读取。

  12. 6.2.2 顺序文件 • 三、优/劣: • 批处理时效率是所有逻辑文件中最高的。 • 可存在于磁带上。 • 交互应用时“效率低”(如要查找单个记录),尤其是对变长记录的顺序文件。 • 增加、删除记录涉及到排序问题,开销大。 • 事务文件(log),用于存放将更新到主文件的记录。

  13. 6.2.3 索引文件 • 由变长记录组成的顺序文件不容易直接存取,因此,为其建立一有序的索引表,对索引采用折半查找,速度更快。 • 特点:提高了速度,增加了存储开销——放索引文件。 • 增、删记录时,对索引表作相应的修改。

  14. 6.2.4 索引顺序文件 • 将顺序文件中若干记录分为一组,每组的第一项在索引表中占一项。 • 速度: • 例1:10000个记录,顺序文件:5000次查找找查到。 • 索引顺序文件,设100个记录一组,索引表的找法设为顺序法的情况下,则查找次数为50+50=100。 • 例2:1000000个纪录: 低级索引:(100个纪录一组):10000。 高级索引:100 • 速度:50+50+50=150

  15. 6.2.5 直接文件和哈希文件 • 直接文件 • 键值转换:由记录键值到记录物理地址的转换 • 哈希文件 • A=H(k) • 是一种索引链接文件

  16. 6.3外存分配方法(文件物理组织) • 6.3.1 连续分配(磁带,磁盘都可采用)(顺序文件) • 每个文件分配一组相邻盘块。 • 特点:简单 • (1)顺序访问容易且速度快,因磁头移动距离小, • (2)要求连续空间,一段时间后需整理磁盘以消除外部碎片。 • (3)必须事先知道长度,文件不易动态增长和删除。 • 文件对应目录项(属性)中包含: • 始址、总块数、最后一块字节数。

  17. 6.3.2 链接分配(串连文件/链接文件) • 文件离散地分配于各盘块中,以提高外存利用率,文件长度可变,易于增删,只能顺序存取。 • 对应目录项:链表的首指针 • 一、隐式链接 • 文件目录表中有start块号,每块中有下一块号。 • 特点:只适合于顺序访问,对随机访问效率低,可靠性差。 • 簇:包含多个块的单位,当以它为单位分配并链接,可减少访问时间,但增大了内部碎片

  18. 6.3.2 链接分配(串连文件/链接文件) • 二、显式链接:把用于链接的指针显式存放在内存的一张表中,查找在内存中进行。 • FDT/FCB―――>FAT----->块链

  19. 链式分配

  20. DOS磁盘盘区划分表

  21. DOS磁盘访问操作流程 磁盘参数表 磁盘目录表 FDT 文件位置分配 表FAT 文件名 磁盘基数表 扇区物理 操作 磁盘扇区 定位

  22. DOS • 对于1.2MB软盘,盘块大小为1KB,每个FAT表项占12位,在每个FAT中共1.2k个表项,故共1.8k.

  23. 6.3.3 索引分配(索引文件) • 一、单级索引 • 链接分配问题: • 不能高效直接存取; • FAT需占较大的内存。 • 概念:为每个文件分配一个索引块 • 特点: • (1)文件较大时有利。文件较小时浪费外存空间(还需为小文件建索引块) • (2)当文件较大时,索引块太多,查找速度减慢 • 解决:当索引太大时,则需建立多级索引

  24. 索引分配

  25. 6.3.3 索引分配(索引文件) • 二、多级索引 • 两级: • 设一个盘块大小为1k,每个盘块号占4byte。则2级索引存放的文件的盘块号总数为:256×256=64k,故文件的最大长度为64M

  26. 6.3.3 索引分配(索引文件) • 三、混合分配方式(UNIX系统) • 一、二、多级索引合用 • 设每个块大小为4k,一索引项占4字节,则 • 1.直接地址:小文件(<40k)则立即读出。 • 2.一次间址:4M • 3.多次寻址:4G->4T。

  27. 6.4目录管理 • 文件目录:将文件名――map―― 外存物理位置,使用户按名存取。 • 功能: • (1)按名存取; • (2)提高检索速度; • (3)文件共享; • (4)允许文件重名。

  28. 6.4.1 文件控制块和索引结点 • 目录文件:其内容为文件目录。 • 文件目录:文件控制块的有序集合(FDT) • 一、文件控制块FCB: • 可分外内存FCB和外存FCB (目录项) • 1.基本信息 • (1)文件名: • (2)文件物理位置:(设备号,盘块号,文件长度) • (3)文件逻辑结构: • 流式 • 记录式:定长、变长 • (4)文件物理结构: • 顺序放 • 离散放:链式、索引式

  29. 文件控制块FCB • 2.存取控制信息(安全性)。 • 文件主/核准用户/一般用户存取权限。 • 3.使用信息类: • (1)文件的建立日期/时间; • (2)文件上一次修改时间; • (3)当前使用信息。 • 例:DOS

  30. 二、索引结点 • 1.引入: • 索引结点:含文件描述信息。 • 为何引入:FCB中含:文件名、描述信息,它们较占空间。 • 例:一个FCB为64byte,一个盘块为1024byte,设文件共有3076个,因一个盘块只能放1024/64:16个FCB,故文件目录占了3076/16=192个块,当要访问某文件,平均调度块数为192/2=96+1=97次。

  31. 二、索引结点(UNIX) • a.将FCB分为 • 文件名、i(index)节点指针和相应的i节点,其中文件名和i节点指针占16字节 • b.离散存放目录结构 • 查询时只调入文件名部分,找到后才调入相应节点。

  32. 2.磁盘索引结点 • (1)文件主标识; • (2)文件类型; • (3)文件存取权限; • (4)文件物理地址;(表达出盘块号) • (5)文件长度; • (6)连接(共享)计数; • (7)存取时间。

  33. 3.内存索引节点 • 文件打开后,将磁盘索引结点的内容部分或全部子集拷贝到内存,并增加以下内容。 • (1)编号; • (2)状态;(上锁、修改) • (3)共享计数; • (4)逻辑设备号; • (5)链接指针:i节点的组织结构。

  34. 6.4.2目录结构 • 单级目录结构 • (1)新建文件时——>有无同名——>加入目录表 • (2)删除文件——>回收块——>清除占用目录项 • 特点: • (1)简单 • (2)速度慢/不允许重名/不便于共享(不能用不同名字访问同一文件)。

  35. 目录项例

  36. 6.4.2目录结构 • 两级目录结构 • MFD+UFD • 特点: • (1)提高了速度:如:n个用户,每用户最多m个文件,则最坏速度为n+m而非n*m • (2)可重名 • (3)可共享(但不方便)

  37. 6.4.2目录结构 • 树型目录结构(多级目录)(图6.18) • 一、树型目录: • 一目录文件中的目录项可为:目录文件、数据文件 • 二、路径名: • 三、当前目录/工作目录。 • 四、增/删除(可/不可删除非空目录) • 五、链接文件

  38. 6.5目录查询技术 • 过程:文件名——目录项(FCB)或索引结点——盘块号——启动磁盘——驱动程序 • 例:/usr/ast/mbox • (1)根中得usr的索引结点号6; • (2)6中得usr目录文件为132#; • (3)132#中得/usr/ast的索引结点是26. • (4)26中的/usr/ast目录文件中406# • (5)406#中得/usr/ast/mbox的索引结点是60. • (6)60中得/usr/ast/mbox的物理地址

  39. 6.5 文件存储空间管理 • 6.5.1-1 空闲表法: • 分配:首次/循环首次/最佳/最坏 • 回收:判断是否合并。 • 由于连续分配比较快,因此对对换空间及小文件的管理适用。 • 6.5.2-2 空闲链表法。 • 1.空闲盘块链 • 缺点:可能该链很长。 • 2.空闲盘区链: • 一个盘区含多个盘块,类似于内存分区分配与回收(合并)。

  40. 6.5 文件存储空间管理 • 6.5.2 位示图法(可采用连续或离散分配) • 1.位图 • 2.盘块的分配: (1)顺序扫描,找一个或一组=0的块。 (2)根据找到的行/列得以盘块号。B=n(i-1)+j (3)修改位图。 • 3.回收 (1)由磁块号得(i,j) i=(b-1)div n +1 j=(b-1)mod n +1 (2)修改位图: 特点:因不占空间,可放入内存,易于访问。

  41. 6.5 文件存储空间管理 • 6.5.3 成组链接法(UNIX) • 一、空闲盘块的组织。 • 空闲盘块号栈: • 二、空闲盘块的分配与回收 • 分配:到s.free(0)时,由于该块内容为下一组的盘号,将内容加入空闲盘块号栈中,再分配。 • 回收:到s.free(100)时,将空闲盘块栈中内容放入新到的回收块中,将该回收块作为栈底。

  42. 6.6文件共享与保护 • 6.6.1 基于索引结点的共享方式 • (1)建立链接时,将共享文件的物理地址链拷贝。 • 缺点:文件增、改时,其它用户不知,造成新增内容不能共享。 • (2)共享索引结点:(类似于BFD方式).当count>1时,这时文件主也不能删文件。否则,指针悬空。

  43. 6.6文件共享与保护 • 6.6.2 利用“符号链”实现文件共享。 • 建立一“符号链”文件,该文件的物理地址指向路径名。 • 这样,仅原文件指向索引结点,其它链接文件仅包含原文件的路径名,文件主可对原文件删除等。 • 速度慢。文件系统传储时,共享文件可能生成多个拷贝.

More Related