操作系统--文件管理
文件管理系统
操作系统中各类文件,管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。
文件管理系统只处理无结构,无格式的字节流。
文件的基本概念
文件是一种具有符号名的,相关联元素的有序集合;各种程序,数据集合;一些低速的字符设别(键盘,终端)。
文件中的数据结构
-
字段或域
字段具有唯一的值。
字段的基本属性:长度,数据类型
字段长度:固定,可变
复合字段:有若干子字段组成
-
记录
一组相关字段的集合
记录长度:固定,可变
记录:关键字,唯一地标识一条记录
文件的类型
按文件逻辑结构分:
按文件的物理组织结构分:
文件的操作
文件目录
文件目录的内容:
基本信息-文件名,文件类型,文件组织等
地址信息-存储文件的设备,起始地址,文件长度
访问控制信息-文件所有者,访问信息,合法操作
使用信息-创建时间,创建者身份,当前状态,最近修改时间,最近访问时间
文件目录内容组织方式:
下面是两种文件目录组织方式:
目录结构
-
单级目录结构:所有用户的全部文件目录保存在一张目录表中,每一个文件的目录项占用一个表项。
-
两级目录结构:把目录分成主文件目录和用户文件目录
-
层次目录结构-树形目录结构
-
层次目录结构-无循环图结构
(可以通过指针来完成文件的共享,指针用虚线表示)
有结构文件的逻辑组织
堆文件-可以是无结构的字节流文件,也可以是由记录构成的有结构的文件。
顺序文件-有若干条逻辑记录按照其关键字的某种顺序排列而构成的文件。
(排序和索引的区别:排序是物理顺序排序,索引是逻辑排序)
索引顺序文件- 将主文件(顺序文件)的所有记录按照某种标准分组,例如,首字母相同的记录为一组;或者按照每小时或者某固定长度的时间将记录分组。
多级索引:为了提高访问效率,可以为顺序文件建立多级索引,即为索引文件在建立一个索引表,从而形成二级索引;依次类推。
索引文件-相当于将主文件的记录逻辑上进行了排序,而无需将每一条记录进行物理上的移动,从而节省了大量的系统时间。
直接文件-利用hash函数,根据记录的关键字计算记录的存储位置,并按照关键字访问记录
文件的分配:
预分配:一次性的为新文件分配足够的存储空间
动态分配:先为文件分配一部分存储空间,以后在根据需要增加存储空间。
分区:
分区
= 数据块;或者 分区 = 若干数据块
文件存储空间的分配技术
连续分配方法:
连续分配实现效果图:
链接分配:
非连续分配实现效果图:
索引分配:
索引分配实现效果图:
文件存储空间与空闲空间的管理
-
空闲分区表
-
空闲分区链表
-
索引
-
位示图
空闲分区表
空闲分区链表
索引
下面是空闲分区索引表的实现方式:
(白色的为空闲分区,这个空闲分区建立索引表方式,相当于我们之前使用的文件存储空间分配方法)
位示图
将记录组织成数据块:
记录:记录是有结构文件的最小单位,一个有结构文件是由若干个记录组成的。
对于记录组织成数据块,我们常有三种记录组块方法(记录组织成数据块简称)
-
固定组块法
-
可变长跨块组块法
-
可变长非跨块组块法
固定组块法
如图:
可变长跨块组块法
如图:
可变长非跨块组块法
可变长非跨块组块法的数据块有变长记录组成,不允许一天记录跨越合并数据块存储,如下图所示:
文件共享
文件共享的有效控制设计到两个方面:
同时存取,存取权限
控制同时存取
允许多个用户同时读文件内容,但不允许同时修改,或同时读且修改文件内容。
可以采取下面的方式:
控制存取权限
控制授权用户以合法的方式访问文件,包括:
无:用户不知道文件的存在。用户无法获取该文件的目录信息,当然更不知道文件的内容。
探知:用户可以检测文件的存在和文件的文件主,还可以向文件主申请增加该文件的存取权限。
执行:用户可以装载并执行程序,但不允许拷贝程序内容。
读:允许用户读文件内容,包括拷贝和执行文件。某些系统严格的将浏览文件内容和拷贝权限分开,可以控制文件只能被浏览(显示),不能被拷贝。
追加:允许用户向文件添加数据,通常只能将数据添加到文件尾部。但是,不能修改或者删除文件内容。例如,超市收银员只能将新结账的数据添加到文件中,不允许其修改或者删除已有的数据。
更新:允许用户修改,删除,增加文件内容。包括创建文件,重写文件的全部或者部分内容,移动文件全部或者部分数据等操作。
更改权限:一般只有文件主才能更改共享该文件的其他用户对该文件的存取权限。有的系统允许文件主将更改文件存取权限赋予其他某个用户,但必须限制授权用户更改的权限范围。
删除:允许用户删除文件。
共享文件的实现
-
链接目录项实现文件共享
-
基本文件目录实现文件共享
-
利用索引节点实现文件共享
-
利用URL实现文件共享
链接目录项实现文件共享
实现效果图:
基本文件目录实现文件共享
实现效果图:
利用索引节点实现文件共享
实现效果图:
利用URL实现文件共享
URL:统一资源定位器是internet上用来链接超文本文件的一种方法。它可以链接同一台计算机中的本地文件,也可以链接internet中任何主机上的远程文件。
下面是一个完成的URL:http://blog.csdn.net/daiyibo123
internet上任何主机的用户都可以通过改URL地址链接此文件,使全球计算机用户都可以通过internet共享该文件。
文件保护-文件安全性管理
-
系统级管理
-
用户级管理
-
目录级管理
-
文件级管理
系统级管理
主要任务是:防止未核准用户进入系统,以保证系统资源不得非法使用。就相当于我们开机输入的登录密码操作。
用户级管理
根据用户的性质,要求及访问的文件属性为用户分配“文件访问权限”。用户级安全管理包括对用户分类和为指定用户分配文件访问权两个方面。
文件访问权仅赋予系统的合法登录用户,由于文件目录也作为文件看待,当为某用户赋予指定目录的访问权限时,该用户便具有对该目录下地所有子目录和文件的访问权。
目录级管理
目录级安全管理与用户权限无关,是为保护系统中的各种目录而设计的。只有系统内核才具有写目录的权利。
通常,系统分别为用户和目录独立地指定访问权限。当用户视图访问一个目录时,系统将比较用户访问权和目录访问权。仅当用户访问权同时出现在目录访问权中时,用户才能合法访问目录,否则,用户无法访问目录。
文件级管理
用户对文件的访问权(就是要在有了系统,用户,目录访问权的情况下,才可以有访问权利)
系统备份
文件备份
常用的系统备份设备有磁带,磁盘和光盘。
文件备份方法
全量转储:定期进行完整备份
增量转储:定期进行对增加修改的文件,进行存储备份。
文件系统数据的一致性
分为磁盘块的一致性检查,文件的一致性检查。
磁盘块的一致性检查:
下面是这个磁盘块的一致性检查实例:
文件的一致性检查:
通过检查文件目录系统的一致性来实现。建立一张文件计数器表,每一个文件对应其中的一个计数器,统计文件的索引节点个数。检验程序从根目录开始查找,每当在目录中找到一个索引节点号时,便将该计数器表中的相应文件的计数器加1.将文件计数器表中各文件索引节点计数器值逐个与文件索引节点中的链接计数count比较。
如果索引节点中的链接数大于计数器表中的对应值,则说明我们记录错误,需要将索引节点中的count值更新为计数器表中的对应值。