计算机操作系统第七章文件管理文档格式.docx
- 文档编号:5173939
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:20
- 大小:174.05KB
计算机操作系统第七章文件管理文档格式.docx
《计算机操作系统第七章文件管理文档格式.docx》由会员分享,可在线阅读,更多相关《计算机操作系统第七章文件管理文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
是能唯一标识一个记录的数据项。
记录的关键字可以不止一个;
关键字可以是一个基本数据项,也可以是一个组合数据项。
4、文件:
是指由创建者所定义的、具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。
在有结构的文件中,文件由若干个相关记录组成(是记录的序列);
而无结构文件则被看成是一个字符(字节)流。
文件是文件系统中一个最大的数据单位,它描述了一个对象集。
图7-1 文件、记录和数据项之间的层次关系
5、文件的属性:
文件具有描述自己各方面特质的----属性,文件的属性主要包括:
P7
●文件类型。
(可以从不同的角度对文件进行分类)
●文件长度。
●文件在外存上的物理位置。
●文件的建立(修改)时间。
6、文件分类
(1)文件分类的目的
文件的分类是为了更好地管理和使用,要科学地分门别类,对不同的文件进行不同的管理。
这样,不仅提高了文件的存取速度,对文件的共享和保护也有利。
(2)文件的分类方法----P10-14
●按性质和用途分类
●按文件中数据的形式分类
●按存取控制属性分类
●按组织形式和处理方式分类
◆用户在OS界面之上看到的文件分类--P9,还有在图形界面上看到的不同形状的文件图标。
✧按逻辑结构分类
✧按物理结构分类
7、文件系统
●是操作系统中统一管理信息资源(软件)的子系统,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。
●文件系统包含文件管理程序和被管理的全部文件
●是用户与外存的接口。
系统软件为用户提供统一方法,访问存储在物理介质上的信息
三、文件系统的层次模型
OS的文件系统可以分为三个层次:
P16-19
●最底层:
被管理的对象及其属性;
●中间层:
对对象进行管理和操作的软件的集合;
●最顶层:
文件系统的用户接口
四、文件操作
1、最基本的文件操作(命令):
P20-22
●创建文件
●删除文件
●读文件
●写文件
●截断文件
●设置文件的读/写位置
2、为了方便用户使用文件,通常,OS都提供了数条有关文件操作的系统调用,可将这些调用分成若干类:
●有关对文件属性进行操作的
●有关目录的
●用于对文件进行操作的
●用于实现文件共享和保护的
3、关于文件的打开和关闭:
P24
第二节文件的逻辑结构和内部数据访问方式
一、文件组织的两种观点
1、用户观点(逻辑结构):
研究的是用户思维中的抽象文件,其目的是为用户提供一种结构清晰、使用简便的信息的数据结构。
用户按此结构去存储、检索和加工处理文件内信息。
它独立于文件的物理特性,又称文件组织。
2、实现观点(物理结构):
研究的是存储在物理设备介质上的实际文件,即文件在外存上的实际存放形式。
它不仅与存储介质的性能有关,还与采用的外存分配方式有关。
系统按此和外部设备打交道,进行信息的存取。
二、文件逻辑结构的类型
1、有结构的(记录式)文件:
P27-28
记录可以是定长的、可以是变长的。
记录式文件可以组织成:
●顺序文件。
●索引文件。
●索引顺序文件。
●直接文件
数据文件通常用这种类型来组织。
2、无结构的(流式)文件
●流式文件是有一定意义的字符(字节)流。
●信息单元的长度以字节为单位。
对流式文件的访问,采用读写指针来指出下一个要访问的字符。
可以把流式文件看作是记录式文件的一个特例。
●大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。
●在UNIX系统中,所有的文件都被看作是流式文件;
即使是有结构文件,也被视为流式文件;
文件系统本身不对文件进行内部结构处理。
三、顺序文件
1、记录被顺序排列在文件中。
这种顺序可以是记录生成时的先后顺序(串结构,连续结构),也可以是按照某个关键字值的大小,递增或递减排列的顺序(顺序结构)。
顺序文件的记录可以是定长的,也可以是变长的。
图7-3定长和变长记录文件
2、对顺序文件(SequentialFile)的读/写操作
顺序读写(顺序访问)
●定长记录:
读指针rptr----指向下一次读出的记录地址;
写指针wptr----指向下一次写入的记录地址。
读完指针做相应修改:
rptr+L=>
rptr
写完指针做相应修改:
wptr+L=>
wptr
●变长记录:
每个记录长度存于记录前的单元中。
访问完,rptr+Li=>
rptr;
wptr+Li=>
3、顺序文件的优缺点
●顺序文件的最佳应用是对连续的记录进行批量存取时,即每次要读或写一大批记录时,对顺序文件的存取效率是所有逻辑文件中最高的;
●此外,也只有顺序文件才能存储在磁带上,并能有效地工作。
◆在交互应用的场合,如果用户要求查找或修改单个记录,系统要逐个地查找诸记录。
这时,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。
◆插入或删除一个记录较困难。
四、索引文件
1、对于定长记录的顺序文件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:
Ai=i×
L
算出地址后可以对该记录进行直接访问;
另外,如果记录按关键字值大小顺序存放,还可以对记录进行按键访问。
2、对于可变长度记录的顺序文件,要查找其第i个记录时,须首先顺序访问前面的每个记录,从中获得相应记录的长度Li,然后才能按下式计算出第i个记录的首址。
假定在每个记录前用一个字节指明该记录的长度,则
,这样,变长记录式文件只能顺序访问。
3、索引文件
为了对所有的记录式文件都能进行直接访问,给记录式文件建立一张索引表,文件中每个记录,在索引表中有一个表项,存放记录的关键字和地址。
索引表本身是一个定长记录的顺序文件,记录按关键字值的大小顺序存放。
通过查找索引表,找到一个记录的起始地址,来完成对记录的直接访问和按键访问。
关键字
图7-4索引文件的组织
五、索引顺序文件
为了缩短索引表的长度,将文件中连续的若干个记录(有相同的关键字值或特征)作为一个记录组。
在为文件建立索引表时,文件中每个记录组,在索引表中有一个表项,存放记录组的关键字和首地址。
索引表本身是一个定长记录的顺序文件。
通过查找索引表,直接找到每组第一个记录的起始地址,组内顺序查找,来完成对记录的访问。
图7-5索引顺序文件
六、直接文件和哈希文件
直接文件,可根据给定记录的键值,直接获得该记录的地址。
换言之,记录键值本身就决定了记录的地址。
这种由记录键值到记录地址的换算被称为键值转换(Keytoaddresstransformation)。
组织直接文件的关键,在于用什么方法(转换函数)进行从记录键值到地址的转换。
哈希(Hash)文件----一种直接文件:
图7-6Hash文件的逻辑结构
七、小结
1、文件的逻辑结构
(1)记录式文件
●定长的
●变长的
(2)流式文件,可以看成定长记录式文件的特例
2、记录的组织方式
(1)顺序文件,文件是记录的序列,记录的排列可以是串结构的,也可以是顺序结构的。
顺序文件是文件的基本逻辑结构,所有的文件,都是顺序文件。
●对于定长的记录式文件,可以进行顺序访问,也可以进行直接访问;
对于定长的顺序结构的记录式文件还可以进行按键访问。
●对于变长的记录式文件只能进行顺序访问。
(2)索引文件,为了对所有的文件都能实现直接访问或按键访问、提高文件的访问速度,就为文件建立索引表,登记每个记录的键值或逻辑序号+地址。
文件的索引表是一个定长的记录式文件。
对索引文件中记录的访问,首先根据键值或逻辑序号、用按键访问方式检索索引表,找到记录的地址,再按照地址直接访问记录。
(3)索引顺序文件,为了缩短索引表的长度,将顺序文件中的记录按一定的规则分组。
建立索引表,登记每组第一个记录的键值或逻辑序号+地址。
对索引顺序文件中记录的访问,首先用按键访问方式检索索引表,找到记录所在组的首地址,然后从该地址开始,对文件进行顺序检索,找到要访问的记录。
(4)直接文件,每个记录,通过键值换算出地址,进行存放和访问。
现代OS一般已不在文件系统这一级过多关注文件的逻辑结构,所有的文件都是流式文件,文件的访问就是“对文件中的第几个字节进行访问”。
文件内部的逻辑结构,到打开、加工文件的软件工具中去进一步解释,文件内部的数据访问由软件工具支持。
第三节文件目录
一、概述
文件存储器上存放着大量的文件。
为了能对这些文件实施有效的管理----实现“按名存取”;
方便、准确、快速的文件检索;
实现文件共享与保护;
允许文件重名----需要引入一种数据结构,将文件组织起来。
这个数据结构就是目录。
目录设计的目标就是实现上述管理功能。
二、文件控制块
1、什么是文件控制块
文件控制块(FCB)是操作系统为管理文件而设置的数据结构,存放了为管理一个文件所需的所有相关信息,也称文件说明。
文件控制块是文件存在的标志。
(对比进程控制块PCB)
2、文件控制块的内容
(1)基本信息类
①文件名;
②文件物理位置;
③文件逻辑结构;
④文件的物理结构。
(2)存取控制信息类(存取权限信息)
(3)使用信息类P91-92
将多个文件控制块组织成序列就构成目录。
三、索引结点
1、为什么要引入索引结点:
P94-95
2、索引结点的组织
将文件名和FCB中的其他描述信息分开组织:
每个文件的FCB,除去文件名,称为文件的索引结点(i结点)。
将磁盘上所有文件的索引结点顺序组织成一个表,称为i结点表,表的每一行对应一个文件;
在目录中,仅存放文件名和指向文件索引结点的指针(记录是第几个i结点)。
这样可以缩短磁盘目录表的长度,减少检索一个文件的访盘次数。
这样,原来磁盘的目录表就被分解为目录表+i结点表两部分。
3、磁盘索引结点
存放在磁盘上的索引结点,每个文件有唯一的一个。
其主要内容:
(1)文件主标识符
(2)文件类型
(3)文件存取权限(4)文件物理地址
(5)文件长度(6)文件连接计数(7)文件存取时间
一个逻辑盘上所有文件的索引结点顺序组成这张磁盘的i结点表。
4、内存索引结点
当打开文件时,其磁盘索引结点被拷贝到内存中,成为内存索引结点,以便以后的使用。
所有已打开文件的内存索引结点组成内存i结点表。
与磁盘索引结点比,内存索引结点增加以下内容:
(1)索引结点编号,用于标识内存索引点;
(2)状态,指示i结点是否上锁或被修改;
(3)访问计数。
记录有几个进程正在访问本文件。
每当有一进程要访问此i结点时,将该访问计数加1,访问完再减1;
(4)文件所属文件系统的逻辑设备号;
(5)链接指针。
设置有分别指向空闲链表和散列队列的指针。
四、目录结构
•将FCB顺序组织在一起,就构成了文件的目录,目录即是文件控制块的有序集合
•目录项:
每个目录项就是一个FCB
•目录文件:
为了实现对目录的管理,通常将目录表以文件的形式组织、保存在外存,这类文件就叫目录文件。
1、单级目录的组成
为整个文件系统建立一张目录表,每个文件占一个目录项。
单级目录的优点:
简单且能实现目录管理的基本功能----按名存取。
缺点:
(1)查找速度慢;
(2)不允许重名;
(3)不便于实现文件共享。
2、两级目录的组成
在文件系统,尤其是多用户文件系统中,文件的“重名”很难避免,为了克服单级目录结构的缺点,引入了两级文件目录,组成如下:
(1)系统给每一个用户建立一张独立的用户目录表(UFD),用来存放属于该用户所有文件的FCB。
UFD的结构与单级目录表相似,它以一个目录文件的形式存在磁盘上;
(2)整个文件系统有一张主目录表(MFD),其中的每一个表目(一行)用来存放一个UFD文件的FCB,这样就形成了两级目录。
•优点:
解决了文件的重名问题和文件共享问题;
提高搜索速度,查找时间降低
•缺点:
妨碍了用户间的文件共享,增加了系统开销P108
图7-10两级目录结构
3、多级目录(树形目录)的组成
将两级目录的这种层次结构推广,就形成多级目录。
在多级目录结构中,MFD演变为文件系统的根目录,在根目录中可以存放一般文件的FCB,也可以存放目录文件的FCB;
每一个目录文件对应一张目录表,其中既可以存放一般文件的FCB,也可以存放目录文件的FCB。
图7-11多级目录结构
层次结构清晰,便于管理和保护;
有利于文件分类;
解决重名问题;
提高文件检索速度;
能进行存取权限的控制。
查找一个文件按路径名逐层检查,由于目录文件和普通文件都放在外存,多次访盘,影响速度。
•路径:
在树形目录结构中,从根目录到任何普通文件,都只有一条惟一的通路。
在该路径上从树的根(即主目录)开始,把全部目录文件名与普通文件名,依次地用“/”连接起来,即构成该普通文件的路径名。
系统中的每一个文件都有惟一的路径名。
如:
/B/F/N
•其他概念
▪当前目录
▪绝对路径
▪相对路径
五、目录查询技术
1、什么是目录查询
系统利用用户提供的文件名(全名),找出该文件的FCB或对应的i结点;
根据其中的物理地址(盘块号)换算出文件在磁盘上的首地址;
最后驱动磁盘,将所需文件读入内存。
目录查询方法主要有:
线性检索和Hash检索。
2、线性检索法
以下示意是以目录表+i结点表的形式组织目录的。
图7-12查找/usr/ast/mbox的步骤
3、Hash检索方法
对于Hash文件(目录用Hash顺序组织),系统利用文件名换算成的索引值,到目录中去查找文件。
在换算过程中,可能出现不同的文件名换算出相同的Hash值。
一种处理“冲突”的有效规则是:
(1)在利用Hash法索引查找目录时,如果目录表中相应的目录项是空的,则表示系统中并无指定文件。
(2)如果目录项中的文件名与指定文件名相匹配,则表示该目录项正是所要寻找的文件所对应的目录项,故而可从中找到该文件所在的物理地址。
(3)如果在目录表的相应目录项中的文件名与指定文件名并不匹配,则表示发生了“冲突”,此时须将其Hash值再加上一个常数(该常数应与目录的长度值互质),形成新的索引值,再返回到第一步重新开始查找。
第四节文件共享
一、什么是文件共享
•文件系统允许多个用户(进程)分享同一份文件,这种功能称为文件的共享。
•文件共享可以节省存储空间、避免文件内容的二义性、实现进程间信息的交换。
•文件共享有许多实现的方法,可以应用在单机环境,也可以应用在网络环境。
二、基于索引结点的共享方法
图7-14基于索引结点的共享方式
1、文件系统为每个文件建立索引结点,存放文件的FCB,并在索引结点中增加一个计数器count,记录共有几个用户(进程)共享该文件。
用户目录中只需记录文件名和该文件索引结点的存放地址(文件的索引结点号)。
2、文件的用户(进程)分文件主和一般共享用户,只有文件主才能建立和删除文件。
3、这种共享方法带来一些问题,如文件删除问题和针悬空问题。
图6-25进程B链接前后的情况
三、利用符号链(文件)实现共享
1、当用户B要共享用户A的文件F时,文件系统为用户B建立一个LINK类的文件,文件的内容是文件F的绝对路径名。
这个LINK文件放在B的目录中。
当B要访问F时,由文件系统去打开LINK文件,读B的路径名,根据路径查找文件F。
2、文件主A能建立和删除文件,其他共享用户只能进行其他被允许的操作。
只是文件主才拥有指向其索引结点的指针;
而共享该文件的其他用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。
当文件的拥有者把一个共享文件删除后,其他用户试图通过符号链去访问一个已被删除的共享文件时,会因系统找不到该文件而使访问失败,于是再将符号链删除,此时不会产生任何影响。
3、符号链实现的文件共享没有删除问题,但非文件主访问共享文件时,要多次访盘;
要建立符号链文件,因此要增加一定的开销。
第五节文件保护
一、什么是文件的保护
1、文件的保护是指防止文件主或其他用户无意或有意破坏文件内容。
也指防止系统出现异常、病毒或其他自然因素对文件内容的破坏。
影响文件安全性的主要因素:
P150
相关主题---文件的保密:
是指未经文件主许可,任何用户不得对该文件的内容和属性进行访问。
2、文件保护采取的主要措施有:
(1)通过存取控制机制,防止人为因素所造成的文件不安全性;
(2)通过磁盘容错技术,防止磁盘部分故障造成的文件不安全性;
(3)通过后备系统,防止自然因素造成的整个文件存储器的不安全性。
二、关于保护域
1、访问权:
一个进程对系统中的某个对象操作的权利。
2、保护域:
进程对一组对象访问权的集合,进程只能在指定的域内执行操作。
进程与保护域之间,可以是静态的一对一关系:
P244,也可以是动态一对多关系:
P245。
三、文件存取控制方法
1、存取控制矩阵
(1)数据结构:
存取控制矩阵,整个系统一张,常驻内存。
(2)存取控制步骤:
当用户向文件系统提出访问文件的要求时,由OS的存取控制验证模块根据该矩阵的内容对比本次存取要求,如果不匹配,系统拒绝本次访问请求。
(3)优缺点:
•概念上比较简单;
•当文件数、用户数多的时候,存取控制矩阵将很庞大,检索效率低,浪费存储资源。
2、存取控制表
存取控制表,每个文件一张。
表的地址或表本身存放在文件说明(FCB)中,文件打开时被读入内存。
与1相似,但用户需要分组,用户访问文件时需要提供分组信息。
(3)优、缺点:
•存取验证能高效进行;
FCB被放大。
•在单用户环境下,存取控制表就被简化为文件的存取控制属性,如只读、读写、隐含等,直接存放在FCB中。
3、口令
(1)数据结构--可以有两个层次
①用户口令;
一个用户一个,与用户名一起被记录在系统的用户管理模块中。
②文件口令;
一个文件一个或几个(不同访问权限),被记录在FCB中。
用户提供的口令正确,就获得文件(文件系统)的访问权,否则访问将被拒绝。
•简单、需要的系统资源少;
•保密性差;
•用户存取权限更新比较繁琐。
以上几种方法的共同特点是要在文件管理信息中保留文件的保护信息,而文件本身是明码存放的,因此保密性不强。
4、密码
代码键KEY,每个文件一个。
用户在创建源文件时指定一个KEY,由OS的加密程序利用KEY对源文件进行编码加密,形成密码文件,存放在磁盘上;
读取文件时,必须提供与加密时相同的KEY,对应解密程序才能对密码文件进行解密,将其还原为原文件。
•保密性强、节省存储空间;
•文件存取时要花费一定的时间进行编码和译码。
作业:
P2465、7、16、23
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 第七 文件 管理