13 文件管理(3)

1.关闭文件

        文件关闭后一般不能存取,若要存取,则必须再次打开。关闭文件系统调用的一般格式为:close(文件名)。系统根据用户提供的文件名或文件描述符,在该文件的文件控制块上做修改。

2.删除文件

        删除文件系统调用的一般格式为:delete(文件名)。系统根据用户提供的文件名或文件描述符,检查此次删除的合法性,若合法,则收回该文件所占用的文件控制块及物理块等资源。

3.指针定位

        指针定位的一般格式为:seek(fd,新指针的位置)。指针定位时,系统主要完成以下工作:
① 由fd 检查用户打开文件表,找到对应的入口;② 将用户打开文件表中文件读写指针位置设为新指针的位置,供后续读写命令存取该指针处文件内容。

4.文件的保护

        文件系统经常采用建立副本和定时转储的方法来保护文件。

4.1 建立副本

        对文件建立副本,是保护文件不受破坏的有效方法。一般用于短小且极为重要的文件。

4.2 定时转储

        定时转储的含义是,每隔一定的时间就把文件转储到其他的存储介质上。UNIX 系统就是釆用定时转储的方法保护文件,以提高文件的可靠性。
        (1)按照转储内容可分为增量转储和全量转储。增量转储是指备份自上一次转储以来更改过的文件。
        (2)按照转储方式可分为物理转储和逻辑转储。① 物理转储是从磁盘的第0 块开始,将全部磁盘块按序输出到另一介质上,直到最后一块复制完毕。② 而逻辑转储是从一个或几个指定的目录开始,递归地转储其自给定日期(例如,最近一次增量转储或全量转储的日期)后有所更改的全部文件和目录。

4.3 规定文件的存取权限

        规定用户使用文件的权限的方法有两种:①采用树形目录结构。凡能得到某级目录的用户就可得到该级目录所属的全部目录和文件,按目录中规定的存取权限使用目录或文件。②存取控制表。列出每个用户对每个文件或子目录的存取权限。

5.存取控制矩阵

        在存取控制矩阵方式中,系统以一个二维矩阵来实施文件的存取控制。在这个二维矩阵中,其中一维代表所有的用户,另一维代表所有的文件。两维交叉点所对应的矩阵元素则是某一个用户对一个文件的存取控制权限,包括读R、写W 和执行E,当然,还可以有其他的划分形式。

6.二级存取控制

        对文件实施存取控制的另一种方法是二级存取控制。二级存取控制方法中设立两个存取级别。① 在第一级,把用户按某种关系划分为若干用户组,进行对访问者的识别;② 在第二级,进行对操作权限的识别。常用的文件保密措施还有隐蔽文件目录、设置口令与使用密码等。

7.UNIX 系统内部数值

        读(Read)操作(R);写(Write)操作(W);执行(e X e c u t e ) 操作(X ) ;不能执行任何操作(--)。UNIX 系统内部使用数值来表示上述的文件属性每一个属性与文件属性中的一个二进制位相对应。如果该存取权限设置了,对应的二进制位就是1,如果该存取权限没有设置,对应的二进制位是0。
例:a.out 的权限属性 rwxr--xr--x 用二进制来表示就是 111101101。在 UNIX 中常使用八进制的
形式表示,于是 a.out 的这个权限是 755。

8.提高文件系统性能的方法

        常见的技术措施有如下几种:块高速缓存、磁盘空间的合理分配和对磁盘调度算法进行优化。

8.1 块高速缓存

        其基本思想是,系统在内存中保存一些磁盘块,这些磁盘块在逻辑上属于磁盘,内存的这一区域被称为块高速缓存。块高速缓存的内容需要定期写回到磁盘上,以保存对磁盘块的修改。

8.2 合理分配磁盘空间

        在磁盘空间中分配块时,应该把有可能顺序存取的块放在一起,最好在同一柱面上。这样可以有效地减少磁盘臂的移动次数,加快了文件的读写速度,从而提高了文件系统的性能。

8.3 磁盘的驱动调度

        磁盘是一种高速旋转的存储设备。磁头沿着盘片直径方向移动,同时对指定磁道上的扇面中的数据进行读写操作。当多个访盘请求在等待时,系统采用一定的策略,对这些请求的服务顺序进行调整安排,使寻道时间和延迟时间都尽可能小的那个访问请求可以优先得到服务,并降低若干个访问者的总访问时间,增加磁盘单位时间内的操作次数。其目的在于降低平均磁盘服务时间,从而实现公平、高效的访盘请求。

9.磁盘调度算法

9.1 磁盘的存取访问时间

        磁盘的存取访问时间由3 部分组成:①寻道时间,即将磁头移动到相应的磁道或柱面所需的时间;②旋转延迟时间,即一旦磁头到达指定磁道,必须等待所需要的扇区旋转到读\头下的时间;③传输时间,即信息在磁盘和内存之间的实际传送时间。一次磁盘服务的总时间就是以上3 个时间之和。要使磁盘服务尽可能地快,就需要操作系统提供合适的磁盘调度算法,以改善磁盘服务的平均时间。

9.2 设计磁盘调度算法应当考虑两个基本因素:

        公平性:一个磁盘访问请求应当在有限时间内得到满足。高效性:减少设备机械运动所带来的时间开销,增加磁盘缓存。

9.3 磁盘驱动调度

        移臂调度:根据访问者指定的柱面位置来决定执行次序的调度,称为“移臂调度”。移臂调度的目的是尽可能地减少操作中的寻找时间。一般可采用以下几种移臂调度算法:先来先服务调度算法(FCFS)、最短寻道时间优先调度算法(SSTF)、 扫描算法(SCAN)、循环扫描算法(C-SCAN)。

10.先来先服务调度算法(FCFS)

        即按照访问请求的次序为各个进程服务,这是最公平而又最简单的算法,但是效率不高。因为磁头引臂的移动速度很慢,如果按照访问请求发出的次序依次读写各个磁盘块,则磁头引臂将可能频繁大幅度移动,容易产生机械振动,亦造成较大的时间开销,影响效率。

11.最短寻道时间优先调度算法(SSTF)

         SSTF 算法以寻道优化为出发点,优先为距离磁头当前所在位置最近磁道(柱面)的访问请求服务。这种算法改善了平均服务时间,但也存在缺点:假设某一段时间外磁道请求不断,则可能有内磁道请求长时间得不到服务,缺乏公平性。

12.扫描算法(SCAN)

        这种算法因其基本思想与电梯的工作原理相似,故又称电梯算法。SCAN 算法也是一种寻道优化的算法,它克服了SSTF 算法的缺点。SSTF 算法只考虑访问磁道与磁头当前位置的距离,而未考虑磁臂的移动方向,而SCAN 算法则既考虑距离,也考虑方向,且以方向优先。这种算法比较公平,而且效率较高。

13.文件分配表(FAT)

        FAT 是一个简单的文件系统,最初为DOS 操作系统设计,适用于小容量的磁盘,具有简单的目录结构。为了向后兼容,也为了方便用户升级,目前新版本的Wmdows 仍然提供对FAT 的支持。FAT 文件系统总共有3 个版本:FAT-12、FAT-16 和FAT-32,取决于用多少二进制位表示磁盘地址。FAT 文件系统以簇为单位进行分配,所以FAT-16 文件系统表示用16 位(2 字节)表示簇号。

14.文件系统执行(close())

        执行“关闭”操作时,文件系统主要完成如下工作:① 将活动文件表中该文件的“当前使用用户数”减1;若此值为0,则撤销此表目,并保存文件控制块写入磁盘或者缓存;② 若活动文件表目内容已被改过,则表目信息应复制到文件存储器上相应表目中,以使文件目录保持最新状态;③ 卷定位工作,一个关闭后的文件不能再使用,若要再使用,则必须再次执行“打开”操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值