版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6 6章章 文件管理文件管理 主要内容主要内容0 6.1 6.1 文件文件0 6.2 6.2 文件目录文件目录0 6.3 6.3 文件组织与数据存储文件组织与数据存储0 6.4 6.4 文件系统其他功能的实现文件系统其他功能的实现0 6.5 Linux6.5 Linux的文件管理的文件管理0 6.6 Windows 20036.6 Windows 2003文件系统文件系统1文件系统概述文件系统概述(1)(1) 文件系统是操作系统中负责存取和管理信息的模块,文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式管理用户和系统信息的存储、检索、它用统一的方式管理用户和系统信息的存储、检索
2、、更新、共享和保护,并为用户提供一整套方便有效的更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。文件使用和操作方法。 文件的逻辑结构和存储结构。文件的逻辑结构和存储结构。 逻辑文件和物理文件。逻辑文件和物理文件。2文件系统概述文件系统概述(2)(2)u文件系统面向用户的功能文件系统面向用户的功能文件的按名存取文件的按名存取文件目录建立和维护文件目录建立和维护实现逻辑文件到物理文件的转换实现逻辑文件到物理文件的转换文件存储空间的分配和管理文件存储空间的分配和管理提供合适的文件存取方法提供合适的文件存取方法实现文件的共享、保护和保密实现文件的共享、保护和保密提供一组可供用户使用的
3、文件操作提供一组可供用户使用的文件操作36.1 6.1 文件文件6.1.1 6.1.1 文件概念文件概念 6.1.2 6.1.2 文件命名文件命名 6.1.3 6.1.3 文件类型文件类型 6.1.4 6.1.4 文件属性文件属性6.1.5 6.1.5 文件存取方法文件存取方法 46.1.1 6.1.1 文件的概念文件的概念u文件是由文件名字标识的一组信息的集合文件是由文件名字标识的一组信息的集合,操作系统提供文件之后:,操作系统提供文件之后:u便于用户使用便于用户使用u文件安全可靠文件安全可靠u实现文件共享实现文件共享56.1.2 6.1.2 文件的命名文件的命名 文件是一个抽象机制,提供了
4、把文件保存文件是一个抽象机制,提供了把文件保存在磁盘上,用户不必了解信息存储细节且在磁盘上,用户不必了解信息存储细节且便于读取的方法,这一抽象机制中最重要便于读取的方法,这一抽象机制中最重要的是文件命名。的是文件命名。 文件名是字母或数字组成的字母数字串,文件名是字母或数字组成的字母数字串,它的格式和长度因系统而异。它的格式和长度因系统而异。66.1.3 6.1.3 文件的类型文件的类型u有很多种文件分类方法有很多种文件分类方法 u用途:系统文件、库文件、用户文件;用途:系统文件、库文件、用户文件;u保护级别:只读文件、读写文件、不保护文件保护级别:只读文件、读写文件、不保护文件;u信息流向:
5、输入文件、输出文件、输入输出文信息流向:输入文件、输出文件、输入输出文件;件;u存放时限:临时文件、永久文件、档案文件;存放时限:临时文件、永久文件、档案文件;u数据类型:源程序文件、目标文件、可执行文数据类型:源程序文件、目标文件、可执行文件;件;u设备类型:磁盘文件、磁带文件、软盘文件;设备类型:磁盘文件、磁带文件、软盘文件;7uUNIX/LinuxUNIX/Linux操作系统支持的文件类型:操作系统支持的文件类型:u普通文件:源程序文件、数据文件、目标代码普通文件:源程序文件、数据文件、目标代码文件、操作系统文件、库文件、实用程序文件文件、操作系统文件、库文件、实用程序文件等;等;u目录
6、文件:由文件目录所构成的用来维护文件目录文件:由文件目录所构成的用来维护文件系统结构的系统文件;系统结构的系统文件;u特别文件特别文件:块设备文件、字符设备文件、管道:块设备文件、字符设备文件、管道文件。文件。86.1.4 6.1.4 文件的属性文件的属性u文件基本属性文件基本属性u名称、扩展名、属主名称、扩展名、属主IDID、所属组、所属组IDID等等; ;u文件类型属性文件类型属性u文件保护属性文件保护属性u文件管理属性文件管理属性u创建时间、最后访问时间、最后修改时间等;创建时间、最后访问时间、最后修改时间等;u 文件控制属性文件控制属性u最大长度,打开次数等。最大长度,打开次数等。9文
7、件保护属性文件保护属性(1)(1) 文件保护属性用于防止文件被破坏,称为文件保护属性用于防止文件被破坏,称为文件保护。包括两个方面:文件保护。包括两个方面:0 防止系统崩溃所造成的文件破坏;防止系统崩溃所造成的文件破坏;0 防止文件主和其他用户有意或无意的非法操作防止文件主和其他用户有意或无意的非法操作所造成的文件不安全性所造成的文件不安全性。10文件保护属性文件保护属性(2)(2)l防止系统崩溃造成文件破坏的方法:防止系统崩溃造成文件破坏的方法:l定时转储定时转储l多副本多副本 l防止文件主和其他用户有意或无意的非法防止文件主和其他用户有意或无意的非法操作所造成的文件不安全性的方法:操作所造
8、成的文件不安全性的方法:l访问控制访问控制-防止文件主和其他用户有意或无防止文件主和其他用户有意或无意的非法操作所造成的文件不安全性,基本思意的非法操作所造成的文件不安全性,基本思想是建立三元组:(用户、对象、存取权限想是建立三元组:(用户、对象、存取权限) )11文件保护属性文件保护属性(3)(3)UNIXUNIX例例 三种访问模式:三种访问模式:readread、writewrite、executeexecute 三类用户:三类用户: R W XR W X a) owner access 7 a) owner access 7 1 1 11 1 1 (文件主)(文件主)b) group a
9、ccess 6b) group access 6 1 1 01 1 0 (同组用户)(同组用户)c) public access 5c) public access 5 1 0 11 0 1 (其他用户)(其他用户)126.1.5 6.1.5 文件的存取文件的存取 存取方法是操作系统为用户程序提供的使存取方法是操作系统为用户程序提供的使用文件的技术和手段。用文件的技术和手段。 存取方法存取方法0 顺序存取顺序存取x 严格按照记录排列的顺序依次存取严格按照记录排列的顺序依次存取0 直接存取直接存取x 根据记录号立即存取所需记录根据记录号立即存取所需记录0 索引存取索引存取x 先按名搜索,再查找所
10、需要的记录先按名搜索,再查找所需要的记录136.2 6.2 文件目录文件目录6.2.1 6.2.1 文件控制块、文件目录与目录文件文件控制块、文件目录与目录文件 6.2.2 6.2.2 层次目录结构层次目录结构6.2.3 6.2.3 目录的检索目录的检索 14文件系统的分层结构文件系统的分层结构 文件管理文件管理-实现文件的逻辑结构,为用户提供各实现文件的逻辑结构,为用户提供各种文件系统调用,及文件访问权限的设置等工作种文件系统调用,及文件访问权限的设置等工作; 目录管理目录管理-负责查找文件描述符,进而找到需要负责查找文件描述符,进而找到需要访问的文件,及进行访问权限检查等工作;访问的文件,
11、及进行访问权限检查等工作; 磁盘主存映射管理磁盘主存映射管理-将文件的逻辑地址转换成磁将文件的逻辑地址转换成磁盘的物理地址,即由逻辑块号找到柱面号、磁道盘的物理地址,即由逻辑块号找到柱面号、磁道号和扇区号,具体的数据传输操作由设备管理实号和扇区号,具体的数据传输操作由设备管理实现。现。156.2.1 6.2.1 文件目录与文件目录项文件目录与文件目录项(1)(1) 文件系统实现文件系统实现“按名存取按名存取”文件的重要手文件的重要手段是文件目录。段是文件目录。 文件系统基本功能之一是负责文件目录的文件系统基本功能之一是负责文件目录的建立、维护和检索。建立、维护和检索。 文件目录项又称文件控制块
12、文件目录项又称文件控制块FCB(File FCB(File Control Block) Control Block) 。16文件目录与文件目录项文件目录与文件目录项(2)(2)l文件目录项内容文件目录项内容l文件标识和控制信息文件标识和控制信息l文件逻辑结构信息文件逻辑结构信息l文件物理结构信息文件物理结构信息l文件使用信息文件使用信息 l文件管理信息文件管理信息17文件目录与文件目录项文件目录与文件目录项(3)(3)文件目录文件目录将将FCBFCB集中进行管理,组成文件目录。文件目集中进行管理,组成文件目录。文件目录包含许多目录项。录包含许多目录项。文件目录文件目录项项目录项有两种,分别用
13、于描述子目录和文件的目录项有两种,分别用于描述子目录和文件的FCBFCB。全部由目录项所构成的文件称为目录文。全部由目录项所构成的文件称为目录文件。件。目录文件目录文件目录文件永远不会空,至少包含两个目录项:目录文件永远不会空,至少包含两个目录项:当前目录项当前目录项“.”.”和父目录项和父目录项“.”.”。186.2.2 6.2.2 层次目录结构层次目录结构(1)(1)LinuxLinux层次目录结构层次目录结构B Btestfile.ctestfile.ctty00tty00devdevusrusrliblibetcetchomehometty01tty01binbinliblibmanm
14、anpasswdpasswdvarvarfei1fei1myfile.cmyfile.cgettygettyfei3fei3fei2fei2fei4fei4fei5fei5tmptmp19桌面桌面我的电脑我的电脑软盘软盘(A:)(A:)本地磁盘本地磁盘(C:)(C:)本地磁盘本地磁盘(D:)(D:)user1user1user2user2CDCD驱动器驱动器(E:)(E:)网络邻居网络邻居回收站回收站Windows层层次目录结构次目录结构20层次目录结构层次目录结构(2)(2) 每一级目录可以是下一级目录的说明,也每一级目录可以是下一级目录的说明,也可以是文件的说明,形成层次关系。可以是文件的
15、说明,形成层次关系。 多级目录结构采用树形结构,是一棵倒向多级目录结构采用树形结构,是一棵倒向有根树,树根是根目录;从根向下,每个有根树,树根是根目录;从根向下,每个树枝是一个子目录;而树叶是文件。树枝是一个子目录;而树叶是文件。 树型多级目录优点树型多级目录优点0 能确切地反映系统内部文件的分支结构;能确切地反映系统内部文件的分支结构;0 不同的文件可以重名,只要它们不位于同一末不同的文件可以重名,只要它们不位于同一末端子目录中。端子目录中。21层次目录结构层次目录结构(3)(3) 路径名路径名 目录路径名目录路径名 文件路径名文件路径名 绝对路径名绝对路径名 相对路径名相对路径名226.2
16、.3 6.2.3 文件目录的检索文件目录的检索(a)(a)用户角度目录结构用户角度目录结构usrusrmyfilmyfilxyzxyzhomehomefei1fei1myfile.cmyfile.cfei3fei3fei2fei2A Afei4fei4fei5fei5testfile.ctestfile.cB B685 685 100 100 941 A941 A270 fei1270 fei1250 fei2250 fei2770 fei3770 fei3270 270 685 685 302 302 myfile.cmyfile.c250 250 685 685 302 302 myfil
17、e.cmyfile.c770 770 685 685 345 fei4345 fei4565 fei5565 fei5345 345 770 770 302 302 testfile.ctestfile.c565 565 770 770 824 B824 B 不同角度的目录结构不同角度的目录结构(b)(b)系统角度目录链接系统角度目录链接23文件名14Bi-node #2Bmytest.c56目录文件的内容目录文件的内容存取权限,大小,文件主,建立/修改日期,磁盘地址 等56文件属性i-node #磁盘上的磁盘上的i-node表表64B UNIXUNIX中的文件控制块中的文件控制块: i-no
18、de: i-node索引节点索引节点24思考:思考:UNIXUNIX使用使用i-nodei-node的好处是什么?的好处是什么?因为按文件名检索目录文件时,只用到了文件名。当找到因为按文件名检索目录文件时,只用到了文件名。当找到该文件名时,才需要它的其它描述信息。所以在把存放该该文件名时,才需要它的其它描述信息。所以在把存放该目录文件的盘块从外存调入内存进行比较时,应使一个盘目录文件的盘块从外存调入内存进行比较时,应使一个盘块中包含尽量多的文件名,以块中包含尽量多的文件名,以减少启动磁盘次数减少启动磁盘次数, 加快按加快按名存取的速度。所以引入索引结点。名存取的速度。所以引入索引结点。 例:设
19、物理块大小为例:设物理块大小为512B512B,某目录下有,某目录下有128128个文件。个文件。q 原来的原来的FCBFCB占占64B64B,则每物理块能容纳,则每物理块能容纳 512/64=8 512/64=8 个个FCBFCB,则,则该目录文件需占该目录文件需占 128/8 = 16 128/8 = 16 块,查找一个文件的平均访盘块,查找一个文件的平均访盘次数为:(次数为:(1+161+16)/ 2 = 8.5 / 2 = 8.5 次。次。 q 采用采用i-nodei-node后:文件名部分有后:文件名部分有16B16B,i-nodei-node部分有部分有64B64B,每物,每物理块
20、能容纳理块能容纳 512/16=32512/16=32个文件名部分或个文件名部分或 512/64=8512/64=8个个i-nodei-node,则该目录的文件名部分需占则该目录的文件名部分需占 128/32 =4 128/32 =4 块,块,i-nodei-node部分需部分需占占 128/8=16 128/8=16 块。查找一个文件的平均访盘次数为:块。查找一个文件的平均访盘次数为:(1+41+4)/ 2 + 1 = 3.5 / 2 + 1 = 3.5 次。次。 256.3 6.3 文件组织与数据存储文件组织与数据存储6.3.1 6.3.1 文件的存储文件的存储 6.3.2 6.3.2 文
21、件的逻辑结构文件的逻辑结构 6.3.3 6.3.3 文件的物理结构文件的物理结构 266.3.1 6.3.1 文件的存储文件的存储(1)(1) 卷是存储介质的物理单位。卷是存储介质的物理单位。0 一张光盘一张光盘0 一个硬盘分区一个硬盘分区0 一盘磁带一盘磁带27文件的存储文件的存储(2)(2) 块是存储介质上连续信息所组成的一个区域,也块是存储介质上连续信息所组成的一个区域,也叫物理记录。叫物理记录。 块是主存储器和辅助存储设备信息交换的物理单块是主存储器和辅助存储设备信息交换的物理单位,每次交换一块或整数块。位,每次交换一块或整数块。 决定块的大小要考虑到用户使用方式、数据传输决定块的大小
22、要考虑到用户使用方式、数据传输效率和存储设备类型等多种因素。效率和存储设备类型等多种因素。0 不同类型的存储介质,块的长短常常各不相同;不同类型的存储介质,块的长短常常各不相同;0 同一类型的存储介质,块的长短也可以不同。同一类型的存储介质,块的长短也可以不同。 间隙是块之间不记录用户代码信息的区域。间隙是块之间不记录用户代码信息的区域。286.3.2 6.3.2 文件的逻辑结构文件的逻辑结构1 1、流式文件和记录式文件、流式文件和记录式文件(1)(1) 文件组织指文件中信息的配置和构造方式文件组织指文件中信息的配置和构造方式,应该从文件的逻辑结构和组织及文件的,应该从文件的逻辑结构和组织及文
23、件的物理结构和组织两方面考虑。物理结构和组织两方面考虑。 文件的逻辑结构和组织是从用户观点出发文件的逻辑结构和组织是从用户观点出发,研究用户概念中的信息组织方式,这是,研究用户概念中的信息组织方式,这是用户能观察到,可加以处理的数据集合。用户能观察到,可加以处理的数据集合。29流式文件和记录式文件流式文件和记录式文件(2)(2) 文件的逻辑结构分两种形式:文件的逻辑结构分两种形式:0 流式文件流式文件:指文件内的数据不再组成记录,只:指文件内的数据不再组成记录,只是依次的一串信息集合,可以看成是只有一个是依次的一串信息集合,可以看成是只有一个记录的记录式文件。记录的记录式文件。0 记录式文件记
24、录式文件:包含若干逻辑记录,逻辑记录是:包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含意划分的信息文件中按信息在逻辑上的独立含意划分的信息单位。单位。x记录式顺序文件记录式顺序文件x记录式索引顺序文件记录式索引顺序文件302 2、成组和分解、成组和分解(1)(1)逻辑记录和块的关系逻辑记录和块的关系 逻辑记录是按信息在逻辑上的独立含义划分的单逻辑记录是按信息在逻辑上的独立含义划分的单位,块是存储介质上连续信息所组成的区域。位,块是存储介质上连续信息所组成的区域。 逻辑记录被存放到文件存储器的存储介质上时,逻辑记录被存放到文件存储器的存储介质上时,可能占用一块或多块,也可以一个物理块包
25、含多可能占用一块或多块,也可以一个物理块包含多个逻辑记录。个逻辑记录。0 块因子块因子:若干逻辑记录合并成一组,写入一块叫做记:若干逻辑记录合并成一组,写入一块叫做记录成组,每块中的逻辑记录的个数称为块因子。录成组,每块中的逻辑记录的个数称为块因子。0 成组操作成组操作:现在系统输出缓冲区内进行,凑满一块后:现在系统输出缓冲区内进行,凑满一块后才将缓冲区内的信息写到存储介质上。才将缓冲区内的信息写到存储介质上。0 分解操作分解操作:当存储介质上的一个物理块读进系统输入:当存储介质上的一个物理块读进系统输入缓冲区后,把逻辑记录从块中分离出来。缓冲区后,把逻辑记录从块中分离出来。31成组和分解成组
26、和分解(2)(2)记录成组和分解处理过程记录成组和分解处理过程逻辑记录逻辑记录1 1逻辑记录逻辑记录2 2逻辑记录逻辑记录3 3物理记录物理记录逻辑记录逻辑记录用户缓冲区用户缓冲区系统缓冲区系统缓冲区323 3、记录格式和记录键、记录格式和记录键 记录格式:记录内数据的排列方式。记录格式:记录内数据的排列方式。 定长记录定长记录长度相同,相对位置固定长度相同,相对位置固定处理方便,易于控制处理方便,易于控制 变长记录变长记录x长度不同,但处理之前能预先确定长度不同,但处理之前能预先确定x处理复杂,但能节省存储空间处理复杂,但能节省存储空间0 跨块记录跨块记录逻辑记录大于块长,跨越物理块逻辑记录
27、大于块长,跨越物理块由文件系统自动分割和组装由文件系统自动分割和组装334 4、记录键、记录键记录键:用于标识某条逻辑记录的数据项记录键:用于标识某条逻辑记录的数据项 主键,次键主键,次键 单键记录,多键记录单键记录,多键记录采用键标识逻辑记录的格式采用键标识逻辑记录的格式定长记录存储时分为两个字段定长记录存储时分为两个字段记录键记录键记录信息记录信息变长记录存储时分为三个字段变长记录存储时分为三个字段单个变长逻辑记录的记录键和记录信息的字节数单个变长逻辑记录的记录键和记录信息的字节数记录键记录键记录信息记录信息346.3.3 6.3.3 文件的物理结构文件的物理结构(1)(1) 文件的物理结
28、构和组织是指逻辑文件在物文件的物理结构和组织是指逻辑文件在物理存储空间中存放方法和组织关系。理存储空间中存放方法和组织关系。 文件的存储结构涉及:块的划分、记录的文件的存储结构涉及:块的划分、记录的排列、索引的组织、信息的搜索,其优劣排列、索引的组织、信息的搜索,其优劣直接影响文件系统的性能。直接影响文件系统的性能。35 计算法计算法0 设计映射算法,对记录键进行计算转换成对应设计映射算法,对记录键进行计算转换成对应的物理地址,从而找到所需要的记录。的物理地址,从而找到所需要的记录。0 顺序文件顺序文件 指针法指针法0 设置专门的指针,指明相应的物理地址或表达设置专门的指针,指明相应的物理地址
29、或表达各记录之间的关联。各记录之间的关联。0 索引文件、连接文件索引文件、连接文件构造文件物理结构的方法构造文件物理结构的方法文件的物理结构文件的物理结构(2)(2)361 1、顺序文件、顺序文件( (连续文件连续文件 ) ) 文件中逻辑上连续的信息存放到存储介质的依次文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序文件。相邻的块上便形成顺序文件。 逻辑记录顺序和物理记录顺序完全一致的文件,逻辑记录顺序和物理记录顺序完全一致的文件,通常,记录按出现的次序被读出或修改。通常,记录按出现的次序被读出或修改。 顺序文件的优点顺序文件的优点0 存取记录时速度较快存取记录时速度较快 顺序文
30、件的缺点顺序文件的缺点0 建立文件之前需要预先确定文件长度;建立文件之前需要预先确定文件长度;0 修改、插入和添加文件记录有一定的难度;修改、插入和添加文件记录有一定的难度;0 对于变长记录的处理很困难;对于变长记录的处理很困难;0 对磁盘做连续分配,会造成空闲块的浪费。对磁盘做连续分配,会造成空闲块的浪费。372 2、连接文件、连接文件( (串联文件串联文件)(1)(1)连接文件结构示意图连接文件结构示意图文件文件控制块控制块0 038 连接文件使用连接字,又叫指针来表示文连接文件使用连接字,又叫指针来表示文件中各个记录之间的关系件中各个记录之间的关系 引进指向其它数据的连接表示是计算机程引
31、进指向其它数据的连接表示是计算机程序设计的一种重要手段,是表示复杂数据序设计的一种重要手段,是表示复杂数据关系的一种重要方法。关系的一种重要方法。连接文件连接文件( (串联文件串联文件)(2)(2)39 连接结构的优点连接结构的优点0 存放信息的物理块不必连续,借助指针表达记录之间存放信息的物理块不必连续,借助指针表达记录之间的逻辑关系;的逻辑关系;0 适宜于增、删、改。适宜于增、删、改。 连接结构的缺点连接结构的缺点0 必须将连接字和数据信息混合存放,会破坏数据块的必须将连接字和数据信息混合存放,会破坏数据块的完整性;完整性;0 存取信息必须通过缓冲区,待获得连接字后,才能找存取信息必须通过
32、缓冲区,待获得连接字后,才能找到下一个物理块的地址,仅适宜于顺序存取。到下一个物理块的地址,仅适宜于顺序存取。 连接文件变种连接文件变种: : 堆栈、队列堆栈、队列连接文件连接文件( (串联文件串联文件)(3)(3)403 3、直接文件、直接文件( (哈希文件哈希文件)(1)(1) 记录的关键字与其地址间可通过某种方式记录的关键字与其地址间可通过某种方式建立对应关系,利用这种关系实现存取的建立对应关系,利用这种关系实现存取的文件叫直接文件。文件叫直接文件。 hashhash技术要建立技术要建立hashhash表,表,hashhash表是一个指表是一个指针数组,数组通过索引访问,找到的指针针数组
33、,数组通过索引访问,找到的指针便指向数据记录。索引是与数据记录有关便指向数据记录。索引是与数据记录有关的关键字或其变换。的关键字或其变换。 41直接文件直接文件( (哈希文件哈希文件)(2)(2)假定有一个文件系统,用散列法来管理假定有一个文件系统,用散列法来管理FCBFCB,hashhash文件的设计过程:文件的设计过程:步步1 1 构造转换构造转换(hash)(hash)函数函数 设文件名为设文件名为8 8个个ASCASC字符。构造的字符。构造的hashhash函函数为模数为模2 2加加“”,求已知文件名的,求已知文件名的ASCASC字符值的模字符值的模2 2加值作为该文件的加值作为该文件
34、的FCBFCB所在物所在物理块在目录文件中的索引理块在目录文件中的索引A A,那么,那么, A= (aA= (a1 1a a2 2a a8 8) )42步步2 2 建立目录文件建立目录文件(1)(1) 目录文件采用索引结构,建立文件时由步目录文件采用索引结构,建立文件时由步1 1求出文件名的求出文件名的hashhash值值A A, 凡凡A A值相同的文件的值相同的文件的FCBFCB都存放在同一个物都存放在同一个物理块。磁盘的物理块号存放在索引表中的理块。磁盘的物理块号存放在索引表中的相对位置应等于相对位置应等于A A值。值。43 目录文件目录文件 A=10A=102626号物理块号物理块fil
35、e1file1文件控制块文件控制块file2file2文件控制块文件控制块 0 010102626步步2 2 建立目录文件建立目录文件(2)(2)44 根据给定文件名,由步根据给定文件名,由步1 1算出该文件的算出该文件的FCBFCB所在物理块号在索引表中的相对位置所在物理块号在索引表中的相对位置A A。根。根据据A A就可找到该就可找到该FCBFCB所在物理块号,所在物理块号, 把这个物理块读入主存缓冲区,用文件名把这个物理块读入主存缓冲区,用文件名逐个比较,找出要求的逐个比较,找出要求的FCBFCB。步步3 3 查找文件查找文件45 物理块中存放的物理块中存放的FCBFCB是有限的,建立目
36、录文件时是有限的,建立目录文件时,如果,如果A A值相同的文件数目超过物理块能容纳数值相同的文件数目超过物理块能容纳数时,产生溢出。时,产生溢出。 溢出时,系统再申请一个盘区,该区物理块号放溢出时,系统再申请一个盘区,该区物理块号放在在A+kA+k的索引表目中,的索引表目中,k k是质数作为位移常数。是质数作为位移常数。 第二块盘区也溢出,则申请第三块,块号放在第二块盘区也溢出,则申请第三块,块号放在A+2A+2k k表目中,依此类推。表目中,依此类推。 查找目录时,如第一块找不到可找查找目录时,如第一块找不到可找A+kA+k表目中的表目中的物理块号,读出后继续比较,依次类推。物理块号,读出后
37、继续比较,依次类推。步步4 4 溢出处理溢出处理464 4、索引文件、索引文件(1)(1) 索引结构是实现非连续存储的另一种方法索引结构是实现非连续存储的另一种方法,适用于数据记录保存有随机存取存储设,适用于数据记录保存有随机存取存储设备上的文件。备上的文件。 使用索引表,每个表目包含一个记录的键使用索引表,每个表目包含一个记录的键及其记录数据的存储地址,这类文件称索及其记录数据的存储地址,这类文件称索引文件。引文件。 47 索引文件索引文件(2)(2)两种索引文件结构示意图两种索引文件结构示意图(a)(a)无键索引表无键索引表盘块号盘块号文件文件控制块控制块块块块块块块48(b)(b)有键索
38、引表有键索引表Key 1Key 1记录键记录键 盘块号盘块号Key 2Key 2Key NKey N块块块块块块文件文件控制块控制块49 索引顺序文件是顺序文件的扩展,各记录本身在索引顺序文件是顺序文件的扩展,各记录本身在介质上也顺序排列,有直接处理和修改记录的能介质上也顺序排列,有直接处理和修改记录的能力。力。 索引顺序文件能象顺序文件一样进行快速顺序处索引顺序文件能象顺序文件一样进行快速顺序处理,既允许按物理存放次序(记录出现的次序)理,既允许按物理存放次序(记录出现的次序);也允许按逻辑顺序(由记录主键决定的次序);也允许按逻辑顺序(由记录主键决定的次序)进行处理。进行处理。 二级索引。
39、二级索引表的表项列出一级索引表每二级索引。二级索引表的表项列出一级索引表每一块最后一个索引项的键值及该索引表区的地址一块最后一个索引项的键值及该索引表区的地址,若干个记录的索引本身也是一种记录。查找时,若干个记录的索引本身也是一种记录。查找时先查看二级索引表找到某键所在的索引表区地址先查看二级索引表找到某键所在的索引表区地址,再搜索一级索引表找出数据记录。,再搜索一级索引表找出数据记录。 三级索引三级索引索引文件(索引文件(3 3)索引顺序文件)索引顺序文件50索引文件索引文件(4)(4)UNIX/LinuxUNIX/Linux多重索引结构多重索引结构0 01 12 23 34 45 56 6
40、7 78 89 91010111112120 01271270 01271270 01271270 01271270 01271270 01271270 01271270 01271270 01271270 01271270 0127127516.4 6.4 文件系统其他功能实现文件系统其他功能实现 6.4.1 6.4.1 文件系统调用的实现文件系统调用的实现 6.4.2 6.4.2 文件共享文件共享 6.4.3 6.4.3 文件空间管理文件空间管理 6.4.4 6.4.4 主存映射文件主存映射文件 6.4.5 6.4.5 虚拟文件系统虚拟文件系统 526.4.1 6.4.1 文件系统调用的实
41、现文件系统调用的实现 文件系统提供给用户程序的一组系统调用文件系统提供给用户程序的一组系统调用,包括:建立、打开、关闭、撤销、读、,包括:建立、打开、关闭、撤销、读、写和控制,通过这些系统调用用户能获得写和控制,通过这些系统调用用户能获得文件系统的各种服务。文件系统的各种服务。53文件系统磁盘结构文件系统磁盘结构 1 1 超级块:占用超级块:占用1#1#号块,存放文件系统的结构号块,存放文件系统的结构和管理信息。和管理信息。 2 2 索引节点区:索引节点区:2#2#k+1#k+1#块块 ,存放,存放inodeinode表。表。3 3 数据区:数据区:k+2#k+2#n#n#,保存文件内容。,保
42、存文件内容。 两个重要数据结构:两个重要数据结构:1 1 用户打开文件表用户打开文件表 2 2 系统打开文件表系统打开文件表 54系统有一张系统有一张系统打开文件表系统打开文件表每个进程一张每个进程一张用户打开文件表用户打开文件表系统打开文件表系统打开文件表SFTFile#打开打开计数计数FCB主部主部131142151用户打开文件表用户打开文件表(1)文件描述符文件描述符存取存取权限权限文件读写文件读写指针指针SFT入口入口56用户打开文件表用户打开文件表(2)文件描述符文件描述符存取存取权限权限文件读写文件读写指针指针SFT入口入口8955磁盘文件卷磁盘文件卷主存主存i_numberi_n
43、umberi_counti_counti_numberi_numberi_counti_counti_addr40i_addr40 i_numberi_numberi_counti_counti_addr40i_addr40f_flagf_flagf_countf_countf_inodef_inode filefile的指针的指针fpfp 用户打开文件表用户打开文件表files_structfiles_struct文件描文件描述符述符fdfd用户空间用户空间内核空间内核空间系统打开文件系统打开文件表表file_structfile_struct一个打开一个打开文件的文件的filefile活动
44、活动inodeinode活动活动inodeinode主存活动主存活动inodeinode表表磁盘磁盘0#0#1#1#2#2#引导块引导块超级块超级块磁盘文件磁盘文件磁盘磁盘inode区区磁盘信息区:磁盘信息区:目录块和数据块目录块和数据块文件系统内部结构文件系统内部结构56目录项、目录项、inodeinode和数据块的关系和数据块的关系inodeinode文件名文件名inodeinode文件名文件名磁盘文磁盘文件卷件卷磁盘磁盘文件文件0#0# 1#1# 2#2# 数据数据块块数据数据块块目录目录块块数据数据块块数据数据块块目录目录块块引导块引导块超级块超级块inodeinodeinodeino
45、de磁盘磁盘inode区区磁盘信息区:磁盘信息区:目录块和数据块目录块和数据块57文件系统调用文件系统的创建文件系统调用文件系统的创建 系统调用系统调用C C语言格式为:语言格式为: int fd, mode;int fd, mode; char char * *filenamep;filenamep; fd = create (filenamep, mode); fd = create (filenamep, mode);路径名路径名存取存取权限权限文件描文件描述符述符58文件系统调用文件创建执行过程文件系统调用文件创建执行过程 为新文件分配索引节点和活动索引节点,并把索为新文件分配索引节点
46、和活动索引节点,并把索引节点编号与文件分量名组成新目录项,记到目引节点编号与文件分量名组成新目录项,记到目录中。录中。在新文件所对应的活动索引节点中置初值,如置在新文件所对应的活动索引节点中置初值,如置存取权限存取权限i_modei_mode,连接计数,连接计数i_nlinki_nlink等。等。分配用户打开文件表项和系统打开文件表项,置分配用户打开文件表项和系统打开文件表项,置表项初值。包括在表项初值。包括在f_flagf_flag中置中置“写写”标志,读写标志,读写位移位移f_offsetf_offset清清“0”0”。把各表项及文件对应的活。把各表项及文件对应的活动索引节点用指针连接起来
47、,把文件描述字返回动索引节点用指针连接起来,把文件描述字返回给调用者。给调用者。59文件系统调用文件的删除文件系统调用文件的删除 u删除把指定文件从所在的目录文件中除去删除把指定文件从所在的目录文件中除去。如果没有连接用户。如果没有连接用户(i_link (i_link 为为“1”)1”),还要把文件占用的存储空间释放。删除系还要把文件占用的存储空间释放。删除系统调用形式为:统调用形式为:unlink (filenamep)unlink (filenamep)u在执行删除时,必须要求用户对该文件具在执行删除时,必须要求用户对该文件具有有“写写”操作权。操作权。60文件系统调用文件的打开文件系统
48、调用文件的打开 调用方式为:调用方式为: int fd, mode;int fd, mode; char char * * filenamep; filenamep; fd = open (filenamep, mode); fd = open (filenamep, mode);61文件系统调用文件打开执行过程文件系统调用文件打开执行过程检索目录,把它的外存索引节点复制到活检索目录,把它的外存索引节点复制到活动索引节点表。动索引节点表。根据参数根据参数modemode核对权限,如果非法,则这核对权限,如果非法,则这次打开失败。次打开失败。当当“打开打开”合法时,为文件分配用户打开合法时,为文
49、件分配用户打开文件表项和系统打开文件表项,并为表项文件表项和系统打开文件表项,并为表项设置初值。通过指针建立这些表项与活动设置初值。通过指针建立这些表项与活动索引节点间的联系。把文件描述字,即用索引节点间的联系。把文件描述字,即用户打开文件表中相应文件表项的序号返回户打开文件表中相应文件表项的序号返回给调用者。给调用者。62文件系统调用文件的关闭文件系统调用文件的关闭调用方式:调用方式: int fd;int fd; close (fd); close (fd);过程:过程:根据根据fdfd找到用户打开文件表项,再找到系统打开文件表项找到用户打开文件表项,再找到系统打开文件表项。释放用户打开文
50、件表项。释放用户打开文件表项。把对应系统打开文件表项中的把对应系统打开文件表项中的f_countf_count减减“1”1”,如果非,如果非“0”0”,说明还有进程共享这一表项,不用释放直接返回,说明还有进程共享这一表项,不用释放直接返回;否则释放表项,并找到与之连接的活动索引节点。;否则释放表项,并找到与之连接的活动索引节点。把活动索引节点中的把活动索引节点中的i_counti_count减减“1”1”,若不为,若不为“0”0”,表,表明还有用户进程正在使用该文件,不用释放而直接返回明还有用户进程正在使用该文件,不用释放而直接返回,否则在把该活动索引节点中的内容复制回文件卷上的,否则在把该活
51、动索引节点中的内容复制回文件卷上的相应索引节点中后,释放该活动索引节点。相应索引节点中后,释放该活动索引节点。63文件系统调用读文件文件系统调用读文件调用的形式为:调用的形式为: int nr, fd, count;int nr, fd, count; char buf char buf nr = read (fd, buf, count); nr = read (fd, buf, count);文件文件描述描述符符实际实际读入读入字节字节数数用户用户数据数据区首区首地址地址要读要读的字的字节数节数64fdfdf_flag(r/w)f_flag(r/w)f_count(1)f_count(1)
52、i_mode(x)i_mode(x)f_flag(r/w)f_flag(r/w)f_count(1)f_count(1)f_flag(r/w)f_flag(r/w)f_count(1)f_count(1)f_offset(0)f_offset(0)f_inodef_inode读操作时文件数据结构的关系读操作时文件数据结构的关系文件描述符文件描述符用户打开用户打开文件表文件表活动活动inodeinode表表物理块物理块系统打开文件表系统打开文件表i_nlink(1)i_nlink(1)i_addr(40)i_addr(40)fpfp65文件系统调用写文件文件系统调用写文件调用的形式为:调用的形式
53、为:nw = write (fd, buf, count);nw = write (fd, buf, count);bufbuf是信息传送的源地址,即把是信息传送的源地址,即把bufbuf所指所指向的用户主存区中的信息,写入到文件向的用户主存区中的信息,写入到文件中。中。其它参数同其它参数同readread。66文件系统调用文件的随机存取文件系统调用文件的随机存取系统调用的形式为:系统调用的形式为: long lseek;long lseek; long offset; long offset; int whence, fd; int whence, fd; lseek (fd, offset
54、, whence); lseek (fd, offset, whence);文件描述字文件描述字fdfd必须指向一个用读或写方式必须指向一个用读或写方式打开的文件,当打开的文件,当whencewhence是是“0”0”时,则时,则f_offsetf_offset被置为被置为offsetoffset,当,当whencewhence是是“1”1”时,则时,则f_offsetf_offset被置为文件当前位置加上被置为文件当前位置加上offsetoffset。676.4.2 6.4.2 文件共享文件共享 1.1.文件的静态共享文件的静态共享 2.2.文件的动态共享文件的动态共享 3.3.文件的符号链
55、接共享文件的符号链接共享 681.1.文件的静态共享文件的静态共享(1)(1)系统调用形式为:系统调用形式为: chat chat * * oldnamep, oldnamep, * * newnamep; newnamep; link (oldnamep, newnamep); link (oldnamep, newnamep); 检索目录找到检索目录找到oldnamepoldnamep所指向文件的索引节点所指向文件的索引节点inodeinode编号。编号。 再次检索目录找到再次检索目录找到newnamepnewnamep所指文件的父目录所指文件的父目录文件,并把已存在文件的索引节点文件,并
56、把已存在文件的索引节点inodeinode编号与编号与别名构成一个目录项,记入到该目录中去。别名构成一个目录项,记入到该目录中去。 把已存在文件索引节点把已存在文件索引节点inodeinode的连接计数的连接计数i_nlinki_nlink加加“1”1”。69文件的静态共享文件的静态共享(2)(2)链接实际上是共享已存在文件的索引节点链接实际上是共享已存在文件的索引节点inodeinode,完,完成链接的系统调用:成链接的系统调用: link(“/usr/fei1/myfile.c”,”/usr/fei2/myfile.c”); link(“/usr/fei1/myfile.c”,”/usr/
57、include/testfile.c”);执行后,三个路径名指的是同一个文件:执行后,三个路径名指的是同一个文件: /usr/fei1/myfile.c/usr/fei1/myfile.c, /usr/fei2/myfile.c/usr/fei2/myfile.c, /usr/include/testfile.c/usr/include/testfile.c。70文件的静态共享文件的静态共享(3)(3)文件解除链接调用形式为:文件解除链接调用形式为: unlink (namep)unlink (namep)解除链接与文件删除执行的是同一系统调解除链接与文件删除执行的是同一系统调用代码。删除文件
58、是从文件主角度讲的,用代码。删除文件是从文件主角度讲的,解除文件连接是从共享文件的其他用户角解除文件连接是从共享文件的其他用户角度讲的。都要删去目录项,把度讲的。都要删去目录项,把i_nlinki_nlink减减“1”1”,不过,只有当,不过,只有当i_nlinki_nlink减为减为“0”0”时时,才真正删除文件。,才真正删除文件。 712.2.文件的动态共享文件的动态共享(1)(1) 文件动态共享是系统中不同的用户进程或同一用文件动态共享是系统中不同的用户进程或同一用户的不同进程并发访问同一文件。户的不同进程并发访问同一文件。 这种共享关系只有当用户进程存在时才可能出现这种共享关系只有当用
59、户进程存在时才可能出现,一旦用户的进程消亡,其共享关系也就自动消,一旦用户的进程消亡,其共享关系也就自动消失。失。 文件的每次读写由一个读文件的每次读写由一个读/ /写位移指针指出要读写位移指针指出要读写的位置。现在的问题是:若文件可以为多个进写的位置。现在的问题是:若文件可以为多个进程所共享,那么,应让多个进程共用同一个读程所共享,那么,应让多个进程共用同一个读/ /写位移,还是各个进程具有各自的读写位移呢?写位移,还是各个进程具有各自的读写位移呢?72文件的动态共享文件的动态共享(2)(2) 同一用户父、子进程协同完成任务,使用同一用户父、子进程协同完成任务,使用同一读同一读/ /写位移,
60、同步地对文件进行操作。写位移,同步地对文件进行操作。 该位移指针宜放在相应文件的活动索引节该位移指针宜放在相应文件的活动索引节点中。当用系统调用点中。当用系统调用forkfork建立子进程时,建立子进程时,父进程的父进程的pcbpcb结构被复制到子进程的结构被复制到子进程的pcbpcb结结构中,使两个进程的打开文件表指向同一构中,使两个进程的打开文件表指向同一活动的索引节点,达到共享同一位移指针活动的索引节点,达到共享同一位移指针的目的。的目的。 73文件的动态共享文件的动态共享(3)(3)使用同一位移指针的文件共享使用同一位移指针的文件共享系统打开文件表系统打开文件表活动活动inodeino
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 展会项目合同范本
- 机柜租用合同范本
- 村民出资合同范本
- 板房安装合同范本
- 网约车运营合作合同协议
- 楼板质保合同范本
- 劳务派遣合同协议与用工协议
- 2025年死因监测报告管理培训考核试题(附答案)
- 商业广告合作合同范本及注意事项
- 跨境海外仓配送服务合同
- 房屋出租安全免责协议书
- 2024《整治形式主义为基层减负若干规定》全文课件
- 公共关系与人际交往能力智慧树知到期末考试答案章节答案2024年同济大学
- 中国法律史-第三次平时作业-国开-参考资料
- 2024年建筑继续教育-建筑八大员(九大员)继续教育笔试历年真题荟萃含答案
- 慢性中耳炎教学查房
- (2023年基价)井巷工程消耗量定额说明
- 放射医学技术职称考试 《相关专业知识》篇 考点汇总
- 地铁资料城市轨道交通设备系统控制中心
- 企业数字化转型发言稿
- GB/T 3089-2020不锈钢极薄壁无缝钢管
评论
0/150
提交评论