一、文件系统功能:
用户角度:能对文件、目录进行create、read、write、delete、seek操作
物理角度:能对扇区、磁道、硬盘进行seek、read block、write block操作
文件系统能:
1、持久储存
2、优速访问数据
3、实现共享和保护
4、易用
二、文件的结构
(*)文件系统是指文件的组织形式,对任何一个文件都存在着,逻辑结构和物理结构。
用途分类 | 数据形式分类 | 存取控制属性分类 | 文件组织形式和处理方式 |
(1)系统文件 | (1)源文件 | (1)只执行文件 | (1)普通文件 |
(2)用户文件 | (2)目标文件 | (2)只读文件 | (2)目录文件 |
(3)库文件 | (3)库文件 | (3)读写文件 | (3)特殊文件 |
有结构文件(顺序文件、索引文件、顺序索引文件) | 无结构文件 |
连续存储:顺序访问 | 链接存储:随机访问 | 索引存储 |
一、顺序结构,
优点
1、简单:存储与管理都简单,且容易实现。
2、支持顺序存取和随机存取。
3、顺序存取速度快。
4、所需的磁盘寻道次数和寻道时间最少。
缺点
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构
优点
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构
优点
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等。
三、目录
(*)目录是FCB的集合,一个FCB实际上就是一个目录项
搜索文件的步骤:
1 将目录文件中第一个盘块中的FCB调入内存
2 文件名与FCB中的文件名进行匹配
3 不匹配,将下一个盘块中的FCB调入内存
4 返回
四、目录结构
1、单级结构:优点:简单、按名存取;缺点:查找时间长、命名冲突
2、两级结构:优点:检索速度快,允许重名
3、树形结构
1、存放在磁盘上的文件( )。
A.既可随机访问,又可顺序访问 B.只能随攺访问C.只能顺序访问 D.必须通过操作系统访问
解析:选A。首先介绍一下文件的分类:
用途分类 | 数据形式分类 | 存取控制属性分类 | 文件组织形式和处理方式 |
(1)系统文件 | (1)源文件 | (1)只执行文件 | (1)普通文件 |
(2)用户文件 | (2)目标文件 | (2)只读文件 | (2)目录文件 |
(3)库文件 | (3)库文件 | (3)读写文件 | (3)特殊文件 |
有结构文件(顺序文件、索引文件、 顺序索引文件) | 无结构文件 |
2、下列文件的物理结构中,不利于文件长度动态增长的文件物理结构是()。
连续存储:顺序访问 | 链接存储:随机访问 | 索引存储 |
A.连续文件 B. 串连文件 C. 索引文件
解析:串连结构就是链式结构,链表都知道插入很方便,所以不可能选B,索引大家都知道,STL大家用过的吧map<>插入数据insert就好了,他插入的是key值,key对应value,而A中的连续文件就是数组,你插入数据要整体往后移吧,显然学过c/c++的人都知道选A
3、文件的逻辑记录的大小( )。
A. 是恒定的 B.随使用要求变化的
C.可随意改变的 D.无法确定是哪种可能
解析:选B,逻辑记录有定长记录(文件中的记录长度都是相同的)和不定长记录(文件中的记录长度各不相同-->比如病例、科技报告等)。想想数据库中的表的记录,字段varchar(16)这个16是你自己定义的吧,但你定义完之后可以随意改变吗,给了多少就是多少。而且逻辑结构本身就是用户角度的。
4、实现按名存取后,允许用户对记录式文件进行存取的最小单位是( )。
A.文件 B.记录 C.数据项 D.字符串
解析:选B,想想数据库,选错是不应该的,你数据项就是字段,也就是E-R图中的属性,记录是一个对象,存储东西不可能存储一个属性的。
5、同一文件在不同存储介质上( )的组织形式。
A. 可采用用户指定 B.应该用相同 C.必定采用不同 D.可以采用不同
解析:应该选D吧,文件的组织形式就是文件系统!!文件系统随着操作系统的不同而不同,BC错误。而他不是由用户决定的。
6、逻辑文件的组织结构是由( )确定的。
A.操作系统 B.存储容量 C.用户 D.文件长度
解析:选C,他是逻辑文件!不要看错了,和上面的题目不一样。