1.文件结构
- 字节序列: 把文件看成字节序列为操作系统提供了最大的灵活性,所以所有的UNIX,MS-DOS以及Windows都采用这种文件模型。
- 记录序列:文件是具有固定长度记录的序列。是过去大型计算机常用的模式。
- 树:文件在这种结构由一颗记录树构成,按键进行排序,从而取特定“键”进行快速查找。然而把记录加在文件的什么位置由操作系统决定,在处理商业数据的大型计算机广泛使用。
2.文件类型
普通文件和目录,普通文件又包括ASCII文件和二进制文件。
3.文件系统的布局
磁盘分成多个区,每个分区都有独立文件系统,0号扇区称为主引导记录,用来引导计算机,MBR的结尾是分区表,给出每个分区的开始和结束地址,表中的一个分区被标记为活动分区,活动分区储存着操作系统的信息。
计算机被引导时,BIOS读入并执行MBR。MBR确定活动分区,读入它的第一块(引导块\boot block),并执行之。引导块中的程序将装入该分区中的操作系统。
4.文件的实现
1.连续分配:
特点:实现简单,读性能较好;但随时间流失,磁盘会变得零碎.
适应于CD-ROM,DVD以及其他一次性写光学介质
2.链表分配
没有碎片,顺序读取方便,但随机读取缓慢,每个磁盘块大小不再是2的整数次幂(因指针占一些字节)
3.在内存中采用表的链表分配:文件分配表FAT
可随机存取,但表占内存空间大。FAT方案对于大磁盘不太合适
4.i节点
给每个文件赋予一个i节点(n字节),其中列出文件属性和文件块的磁盘地址,对开文件时,其i节点才在内存,最多打开k个文件,则内存最多需要kn个字节。但文件大小超出i节点能容纳的数目时,最后的盘块采用指针块地址。
5.共享文件
文件系统本身是一个有向无环图,而不是一棵树。
- 磁盘块不列入目录,而是列入一个i节点中,让目录指向i节点。这unix系统采用的方法。
- 建立一个类型为LINK的新文件,连接到共享的文件,新文件中只包含连接的文件的路径名。(符号连接)
6.文件系统的管理和优化
1.磁盘空间管理
- a) 分配连续磁盘空间
b) 把文件分成很多个连续(或并不一定连续)的块
几乎所有的文件系统都把文件分割成固定大小的块来存储,各块之间不一定相邻。
2.记录空闲块
- 空闲表
- 位图
3.磁盘配额
系统管理员分给每个用户拥有文件和块的最大数量,操作系统确保每个用户不超过分给他们的配额。
4.文件系统备份
- 物理转储(从磁盘的第0块开始,全部按序输出到磁带上)简单快速,不能跳过指定的目录,无法增量转储,不能满足恢复个人文件的请求。
- 逻辑转储(从一个或几个指定的目录开始,递归地转储其自给定基准日期后所更改的全部文件和目录)。
7.改善文件系统性能
- 1) 高速缓存(块高速缓存)
- 2) 块提前读
- 3) 减少磁盘臂运动