《操作系统》6文件管理.ppt
《《操作系统》6文件管理.ppt》由会员分享,可在线阅读,更多相关《《操作系统》6文件管理.ppt(41页珍藏版)》请在三一办公上搜索。
1、第6章 文件管理,本章目录,6.1 文件系统概述,6.1.1 文件系统概述,6.1.2 文件系统的功能,6.1.3 文件的逻辑结构,6.1.4 记录的成组与分解,6.2 文件的目录结构,6.2.1 目录,6.2.2 目录的层次结构,6.2.3 路径名,6.3 文件在磁盘上的组织,6.3.1 磁盘存储空间的管理,6.3.2 文件的物理结构,6.3.3 文件的存取方式,6.3.4“按名存取”的实现,6.4 文件的使用,6.4.1 文件的操作,6.4.2 文件共享,6.4.3 文件保护,6.5 Linux的文件管理,6.5.1 Linux文件系统概述,6.5.2 Linux的文件类型,6.5.3 L
2、inux的二次扩展文件系统Ext2,6.5.4 Linux的虚拟文件系统VFS,6.1 文件系统概述,6.1.1 文件系统概述,文件,1.,域:有时也称“字段”,是指数据中不可再分的基本单元。一个域包含一个值,常通过数据类型和长度两个属性来描述域。,.,.,记录:指一组相关域的集合,它是程序进行读/写的单位。记录中的每个域,都有自己的域名,以便使用起来方便。,.,文件:指一组有相同结构的相关记录的集合,通常存储在磁盘上。文件有自己的名字,用户或应用程序通过名字对它进行访问。对文件的访问在文件一级实施,也就是说允许或拒绝用户或应用程序对整个文件的访问,而不能在记录级或域级实施。,.,数据库:由一
3、种或多种类型的文件组成,它们涉及到与一个组织或项目相关的所有数据,反映数据元素间存在的关系,以供不同应用程序共享使用。通常,数据库管理系统是独立于操作系统的,有时也可能要用到一些文件管理系统中的程序功能。,文件的命名,2.,.,用户或应用程序是通过文件名实现对文件的访问的。这就是所谓的“按名存取”。,.,给文件命名的具体规则,各操作系统不尽相同,不过它们大多允许用1到8个英文字母组成的字符串作为合法的文件名。,文件命名时,允许使用文件扩展名,文件名和扩展名之间,用圆点隔开。,.,系统文件:操作系统及其他系统程序构成系统文件范畴。这些文件通常是可执行的目标代码及所访问的数据,用户对它们只能执行,
4、没有读和写的权利。,按文件的性质和用途分类,3.,文件的类型,.,.,(1),用户文件:指用户在软件开发过程中产生的各种文件,如源程序、目标程序代码和计算结果等。这些文件只能由文件主和被授权者使用。,.,库文件:常用的标准子程序、实用子程序等组成库文件。库文件中的文件,用户在开发过程中可以直接调用,但只能读取或执行,不能修改。,按文件的保护性质分类,(2),.,只读文件:这类文件只允许查看,使用者不能对它们进行修改,也不能运行。,.,读写文件:这是一种允许查看和修改的文件,但不能运行。,.,可执行文件:这是一种可以在计算机上运行的文件,以期完成特定的功能。使用者不能对它进行查看和修改。,.,不
5、保护文件:这是一种不设防的文件,可以任意对它进行使用、查看和修改。,按文件的内容分类,(3),.,操作系统把文件的目录项聚集在一起,形成一个文件加以管理。由于这种文件中包含的都是文件的目录项,因此称其为“目录文件”。,.,特殊文件:为了统一管理和方便使用,操作系统常以文件的观点来看待设备。被视为文件的设备称为设备文件,也称为“特殊文件”。,.,普通文件:存储在磁盘上的一般文件。,返回目录,6.1.2 文件系统的功能,用户或程序通过创建文件、删除文件以及各种执行文件操作的命令,开始与文件系统打交道。,用户或程序命令,操作和文件名,文件操作函数,文件,记录,内存缓冲区,磁盘扇区,I/O,目录管理,
6、合法性检查,分解,访问方法,成组,空闲区管理,.,.,在真正执行这些操作前,文件系统必须先用文件名去查目录,找到所需的文件,文件的目录里,有着该文件的各种属性和存放的位置等信息。,.,找到文件后,必须对所要求执行的操作进行合法性检查,只有授权的用户才能以允许的方式访问指定的文件,从而保证文件使用的安全。,.,文件上执行的基本操作,是在记录级进行的。文件记录在磁盘上的存放是有组织的,结构的不同,采用的访问方法也不一样。因此,必须按所提出的访问方法,来转换文件的操作命令。,目录管理:为每个文件建立一个目录项,记载该文件的有关信息和属性。根据用户要求,可以创建或删除目录文件,可以对文件进行检索和权限
7、验证。,提供文件操作命令:主要的文件操作命令有创建、撤销、读/写、查询、插入/删除记录等。不同系统的文件操作命令,从功能上和数量上都不尽相同。,.,为减少对磁盘的I/O次数,为提高磁盘存储空间的利用率,通常是把若干记录汇集成组后,存放在磁盘的扇区里;使用某记录时,是把包含那个记录的整个扇区读到内存缓冲区,然后从中提取所需的记录。因此,文件系统需要承担记录成组、分解以及磁盘存储空间管理的功能。,.,所谓“文件系统”是指操作系统中管理信息资源的一组系统软件、数据结构和文件,它实行文件的存取、检索、更新,提供安全可靠的共享和保护机制,提供操作文件的接口,方便用户“按名存取”。,.,文件系统应该具有的
8、功能:,(1),(2),(3),文件存储空间的管理:对磁盘空间进行统一管理,随时记录整个空间的使用情况,实施对磁盘空间的分配与回收。,(4),文件的共享与保护:文件系统应该提供用户使用其他用户文件的方法,也应该防止用户无意或恶意对文件的破坏。,返回目录,6.1.3 文件的逻辑结构,1.,字节序列结构,一个字节,一个记录,(a),(b),(c),生物系,化学系,物理系,动物,植物,有机,无机,稀土,几何,代数,方程,一班,二班,三班,若文件由一组相关信息的有序字符流组成,那么这样的文件结构称作“字节序列”式的,有时称为“无结构文件”,或“流式文件”。如图(a)所示。,.,.,“文本”是典型的字节
9、序列结构。操作系统见到的是字节,不去关心这些字节的内容和关系。,2.,记录序列结构,.,若把文件中相关信息的集合划分一个个记录,那么它就是有结构的了。这样,整个文件就由记录1、记录2、记录n组成。称这样的文件的结构是记录序列式的。如图(b)所示。,.,记录序列式文件结构的最大特点是把记录视为读/写的单位。,3.,树形结构,.,反映各记录间层次关系的文件结构,就是树形结构,如图(c)所示。,返回目录,6.1.4 记录的成组与分解,R1,R2,R3,R4,磁道1:,扇区间隙及记录适应扇区造成的浪费,一个记录,R5,R6,R7,R8,磁道2:,(a),R1,R2,R5,R6,磁道1:,R3,R4,R
10、4,R6,R7,R10,R12,磁道2:,R8,R9,R9,R11,扇区间隙,(b),R1,R3,R4,R5,磁道1:,R1,R6,R10,R8,R5,磁道2:,R7,(c),扇区间隙及记录适应扇区造成的浪费,.,记录是用户进行读/写的单位,扇区(块)是I/O操作的单位。一般地,扇区尺寸总要比记录大。,.,为减少磁盘的I/O次数,写操作时应先将记录在一个尺寸与磁盘扇区相同的内存缓冲区里聚集“成组”,然后将它们写入扇区;读操作时先将包含所需记录的扇区读到内存缓冲区,然后进行“分解”,挑出所需的记录,将其移入用户指定的区域。,.,三种成组形式:,(1),固定成组,如图(a)所示;,(2),可变长度
11、跨越式成组,如图(b)所示;,(3),可变长度非跨越式成组,如图(c)所示。,返回目录,6.2.1 目录,1.,文件控制块与目录,6.2 文件的目录结构,.,文件在磁盘中的起始地址,文件名,记录长度,记录个数,文件主及存取权限,其他用户的存取权限,文件建立的日期和时间,上次访问的日期和时间,为管理文件,操作系统为每个文件开辟一个存储区,里面记录该文件的有关信息,称为“文件控制块(FCB)”:找到文件的FCB,就得到该文件的有关信息,就能对它进行所需的访问。,.,也把FCB称为“文件描述符”。随系统的不同,FCB中所含内容及大小不尽一样。如图所示为一个FCB的内容样例。,文件控制块中的内容,.,
12、(1),(2),用户为自己的文件起的符号名,它是区分文件的主要标识。不同文件不应该有相同的名字,否则系统无法对它们加以区分。,(3),文件在辅存中存放的物理位置。,文件的逻辑结构和物理结构:用于完成逻辑结构与物理结构之间的映射。,(4),文件的存取控制信息。,(5),文件管理信息。,把系统中各个文件的文件控制块汇集在一起,就形成了系统的文件目录,每个文件控制块就是一个目录项。,.,显示目录:列出一个目录中的全部或指定部分的文件有关属性信息,比如文件的类型、访问控制信息、使用信息等。,跟踪文件系统:为系统的安全、可靠,有时需要定期对整个文件系统的内容和结构进行备份。这就需要访问每一个目录,以及每
13、个目录下的每个文件,将它们复制到磁带或磁盘上。,修改目录:目录中有文件的属性信息,在这些属性发生变化时,就要修改相应的目录项内容。,2.,与目录相关的操作,.,.,.,搜索文件:在用户或应用程序中引用一个文件时,必须搜索目录,以便找到该文件相应的目录项。,.,创建文件:在创建一个新文件时,必须在目录中增加一个目录项。,.,删除文件:在删除一个文件时,必须在目录中删除与该文件相应的目录项。,.,3.,索引节点,搜索文件时只用到“文件名”这样一个信息。只有在找到某个目录项里的文件名与所查找的文件名相匹配时,目录项中的其他信息才会成为有用。这就是说,在搜索文件目录时,除了文件名外的其他信息根本无需调
14、入内存。,.,.,为了加快对文件目录的搜索过程,为了提高对文件的访问速度,现代操作系统就常采用把FCB中的文件名与其他有关信息分离的办法。,把FCB中的文件名与其他信息分离的具体办法:,.,(1),(3),把FCB中除文件名外的其他信息分离出来,独立成一种数据结构,称为该文件的“索引节点”,简称“i-节点”;,文件名,i-节点指针,文件目录,Name1,Name2,Name3,i-节点表,磁盘,文件的目录项,一个i-节点,(2),把系统中所有文件的索引节点集中存放在磁盘的i-节点区里,形成“i-节点表”,每个i-节点在i-节点表里的存放顺序,被称为“i-节点指针”;,由文件的文件名和相应的i-
15、节点指针组成该文件在文件目录中的目录项。,.,在使用文件时,仍用文件名去搜索文件目录;找到与其匹配的目录项后,得到该文件的i-节点指针;由i-节点指针就可到磁盘的i-节点表里读出该文件的关键信息。如图给出了文件的目录项、i-节点指针、磁盘上的i-节点表之间的关系。,.,引入i-节点的概念,一个文件的目录,已经不再是早先所说的目录的含义了,文件的关键信息,其实都在i-节点中,而不是在文件的目录项里。,返回目录,6.2.2 目录的层次结构,1.,一级目录结构,test,文件目录,文件,count,wait,help,robit,food,class,group,data,一个目录项,ZONG的文件
16、,WANG的文件,LING的文件,FANG的文件,.,一级目录结构是最简单形式的目录结构,它使用一个目录来包含系统中的所有文件。这个目录有时称为“根目录”。,新建文件时,在文件目录中增加一个文件控制块(目录项),把该文件的有关信息填入FCB中,这样系统就可感知这个文件的存在;删除一个文件时,就从目录中删去该文件的FCB。,.,.,一级目录的缺点,若系统中的文件很多,文件目录就会很大,按文件名去查找一个文件的FCB,平均需要搜索半个目录文件长,会耗费很多时间。,(1),(2),文件不能重名,即便是不同的用户,也不能给他们的文件起相同的名字,否则就有可能找错所需要的文件。,2.,二级目录结构,.,
17、在二级目录结构下,每个用户拥有自己的目录,缩小了查找一个文件的范围,时间大大减少。在这样的结构下,不同的用户可以给文件取相同的名字,文件重名已经不再成为问题。,如图所示,二级目录结构由“主目录”与“用户目录”两级构成。在主目录(即根目录)中,每个目录项的内容只是给出文件主名以及他的目录所在的 磁盘地址。在用 户目录中,才是由文件的FCB组成的目录。这里的用户目录,实际上就是一级目录。,C,C,C,C,C,C,C,C,C,B,B,B,B,B,A,A,/,用户C的目录,用户C的子目录,C,根目录:,test,count,wait,help,robit,food,class,group,data,Z
18、ONG的目录,WANG的目录,LING的目录,FANG的目录,ZONG,WANG,LING,FANG,用户目录:,主目录(根目录):,.,3.,层次目录结构,.,目录的层次结构,允许用户在自己的目录下,创建多层子目录(即在子目录里还能创建更下一层的子目录),为管理文件提供了有力的支持。,.,如图所示,用户C的子目录有三层之多(注意,在图中,只是用字母表示文件或目录的所有者,没有给它们分别取名字)。在这一棵形如倒置的树中,第1层为根目录,第2层为用户目录,再往下是用户的子目录。另外,每层目录中,既可以有子目录的目录项,也可以有具体文件的目录项。利用这种目录结构,用户可以按照需要,组织起自己的目录
19、层次,既灵活,又方便。,返回目录,文件的绝对路径名一定从根目录出发。文件的绝对路径名是唯一的,其中每一个名字之间用一个分隔符分开。,UNIX采用树型目录结构,如图所示是它的一个局部示例。,6.2.3 路径名,1.,绝对路径名,由根目录出发到具体某个文件所经过路径中的名字组成的序列,称为该文件的“绝对路径名”。,2.,相对路径名,.,.,.,用户指定一个目录作为当前的工作目录。这时,不是从根目录开始的路径名,都被认为是相对于这个工作目录的。,.,一个文件的相对路径名与当前所处的位置有关,因此不是唯一的。,例6-2:,/,usr,ucb,telnet,man,bin,troff,spell,loc
20、al,lib,bin,dev,troff,spell,bin,spell,user,jlp,avi,.,UNIX中文件的绝对路径名由斜杠“/”开头,随后是路径中所经过的所有目录名,中间用斜杠分隔。,.,若现在的工作目录是usr,那么/usr/ucb/telnet 和ucb/telnet表示同一个文件。,返回目录,6.3 文件在磁盘上的组织,磁盘存储空间的管理,位示图,1.,由于磁盘的扇区大小相同,个数固定,因此可用位示图来管理磁盘的存储空间。,.,.,具体做法:为所管理的磁盘设置一张位示图,大小由磁盘的总块数(如一个扇区为一块)决定。某位状态为“1”,表示所对应块已使用;状态为“0”,表示所对
21、应的块空闲。,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0位,1位,2位,3位,30位,31位,第0字,第1字,第99字,1个柱面,申请磁盘空间时,有“已知字号、位号,计算对应块号(即柱面号、磁头号、扇区号)”的问题。文件被删除时,有一个“已知柱面号、磁头号和扇区号,计算对应字号和位号”的问题。,.,空闲区表,2.,.,用空闲区表来管理文件存储空间,就是系统设置一张表格,每一个表项记
22、录磁盘空间中的一个连续空闲盘区的信息,比如该空闲盘区的起始空闲块号、连续的空闲块个数、以及表项的状态等。这样的一张表被称为“空闲区表”。,.,创建一个新文件时,根据文件的长度查找该表。从状态为“有效”的表项中找到有合适的尺寸时,就可以进行分配。,一磁盘有200个柱面,每个柱面20个磁道,每个盘面分成16个扇区。为管理其存储空间,用位示图与空闲区表两种方法作比较。设分配以扇区为单位,字长32个二进制位,空闲区表的一个表项恰好一个字长。问在空闲区表大于位示图之前,该磁盘里应该有多少空闲扇区出现?,例6-3:,解:,依题意,该磁盘共有扇区数为:2020016=64000(块)。采用位示图管理该磁盘空
23、间时,因一个字长是32位,所以整个位示图需要占用的字数为:64000/32=2000(字)。由于空闲区表中的每个表目需用一个字长表示,在有2000个磁盘空闲区时,空闲区表所需的存储量与位示图需占用的字数相当。故在空闲区表大于位示图之前,系统应该出现2000个空闲扇区。,空闲块链,3.,.,所谓空闲块链,即磁盘的每个空闲块设置一个指针,指向另一个磁盘空闲块,所有的空闲块形成一个链表,即磁盘的“空闲块链”。系统为此要增一个空闲块链首指针,链表最后一个空闲块中的指针应表明为结束,比如记为“1”。,.,若申请存储块,就根据链首指针从链首一块一块地摘下分配;若释放存储块,就把释放的块从链首插入。,.,用
24、这种方法管理磁盘的存储空间,增加了对磁盘的I/O操作,对系统效率的发挥会产生不良的影响。,成组链接,4.,.,所谓“成组链接”即系统根据磁盘的总块数,开辟若干块用来专门登记系统当前拥有的空闲块的块号(指针),每块里包含尽可能多的空闲块号。称这种存放空闲块块号的块为“指针块”,各指针块间用指针链接。,.,比如,对于1KB大小的磁盘块和16位的磁盘块号,每个块里可以包含511个空闲块的块号,剩下的位置用来存放指向下一块的指针。如果整个磁盘空间为20MB,那么最多需要40个指针块(编号为039)来存放全部磁盘块的块号。在这些块的每一块里,一方面最多登记511个空闲块的块号,另一方面有一个指针指向下一
25、个块。,17,18,19,块16,块17,块18,块0,块39,511个空闲块块号,136,210,97,42,162,612,342,214,48,320,230,41,86,180,422,242,516,140,空闲块号,块指针,.,如图所示,系统运行一段时间后,用于记录空闲块块号的40个指针块里的块16、17、18所记录的空闲块情形。,.,用成组链接法管理磁盘空闲块时,只需读入一个指针块。创建文件时,从该指针块里得到。当里面的空闲块分配完时,再从磁盘读入一个新的指针块进行分配。类似地,删除某文件时,其占用的磁盘块被释放,并将它的块号添加到位于内存的指针块中。在这块被填满时,就把它写入磁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 文件 管理
链接地址:https://www.31ppt.com/p-4952574.html