1、什么是文件,文件系统?都有哪些功能? |
文件是一段程序或数据的集合。两种文件形式,一是流式文件,它采用字符流方式,与源程序、目标代码等形式上是一致的,因此该方式适用于源程序、目标代码等文件。二是记录式文件,它由相关联记录组成的文件中的有些基本信息单位是记录。记录是由N个字节组成的具有特定意义的信息单位,记录式文件主要用于信息管理。
文件系统:操作系统中于管理文件有关的软件和数据成为文件系统。
文件系统的作用:负责为用户建立文件,撤销、读写、修改和复制文件,还负责完成用户对文件的按名存取和进行存取控制。
2、文件一般根据什么分类?可以分为哪几类?
按照文件的性质和用途分为三类:一是系统文件,只允许用户通过系统调用来执行它们,而不允许对其进行读写和修改。例如操作系统核心是由各种系统应用程序和数据所组成;二是库文件,允许用户读取、执行,但不允许进行修改。它由各种标准子程序库组成,如C语言子程序库;三是用户文件,是用户委托文件系统保存的文件。只有文件的所有者或所有者授权的用户才能使用。
按照组织形式分为三类:一是普通文件,系统中规定最一般格式的文件,如字符流组成的文件,txt、word等;二是目录文件,由文件的目录信息构成的特殊文件。它的内容不是各种程序和数据,而是用来检索普通文件的目录信息;三是特殊文件,在UNIX系统中,所有的输入、输出设备都被看成特殊文件。他们在使用形式上与普通文件相同,如查找目录、存取操作等。
3、什么是文件的逻辑结构?什么是记录?
文件的逻辑结构式用户可见结构——字符流式的无结构文件 和 记录式的有结构文件
记录 ——是一个具有特殊意义的信息单位,它由该记录在文件中的逻辑地址(相对地址)与记录名所对应的一组键、属性及其属性值所组成。
4、文件的存取方法
顺序存取法——按照文件的逻辑地址顺序 存取
随机存取法——允许用户根据记录的编号来存取文件的任一记录,或者根据存取命令把读写指针移动到欲读取处来读写
按键存取——用在复杂文件系统,特别是数据库管理系统中的存取方法。
5、常用的搜索方法有哪些?
线性搜索法:从第一个键值或记录开始,一次和要搜索的键值或记录比较,找到所需的记录停止。平均比较n/2次。
散列法:定义一个散列函数h(k),使得对于给定的键值k,散列函数h(k)将其变换为k所对应的逻辑地址。容易产生冲突问题,解决方法就是采用多次散列探索。
二分搜索法:对于顺序结构排列的键或记录来说,二分搜索法具有较高的搜索效率。
6、关于物理结构与存储设备
文件系统采用哪种存取方法和逻辑结构,实际上是和物理存储介质有关的。
物理结构:连续文件(有长度信息,连续存储,难以适应变化)、串联文件(类似单链表的结构,只能顺序搜索)、索引文件(为每个文件建立索引表,需要维护,可扩展为多重索引)
7、文件存储空间管理方法
空闲文件目录(空闲块号统一放在一个称为空闲文件目录的物理块中,适合连续文件存储区的分配与回收)
空闲块链(链表形式,成组链法首先把文件存储设备中的所有空闲块从后往前按照50块划分为一组,每组第一块存前面一组的总块数、块号)
位示图(每个物理块都对应一个比特位,0空闲,1占用)
8、文件目录
文件说明组成目录文件,文件系统利用目录文件完成按名存取 和 对文件信息的共享与保护
文件说明有时也叫 文件控制块(FCB),至少包括文件名、与文件名相对应的文件内部标识以及文件信息在文件存储设备上第一个物理块的地址。
9、文件的存取控制方法
文件的存取控制是和文件的共享、保护和保密三个不同而又相互联系的问题紧密相关的。
四种方法:
存取控制矩阵——其中一维是所有的用户,另外一维是所有的文件,对应的矩阵元素就是R/W/E
它实现简单,但是当用户和文件较多时,存取控制矩阵将会变得非常庞大。
存取控制表——它以文件为单位,把用户按照某种关系划分为若干组,同时规定每组的存取权限。
实现时该表放在文件说明中,也就是BFD的有关表目中,文件打开时,存取控制表复制进内存
活动文件中,存取控制验证可以高效地进行。
口令方式——第一种是当用户进入系统,为建立终端进程时获得系统使用权的口令;第二种是每个用户在创建文件时为每一个创建的文件设置一个口令,且将其置于文件说明中。 口令简单,占用内存单元以及验证口令所费时间都非常少。但口令方式保密性较差,当修改某个用户的存取权限时,用户必须修改口令,这样所有共享该文件的用户存取权限都被取消,除非重新通知。
密码方式——在用户创建源文件并将其写入存储设备时,对文件进行编码加密,在读出文件时对其进行译码解密。优点是保密性强,解决的键值由用户掌握不存于系统中,编码和解码工作要耗费大量的处理时间。