文件与文件系统
文件是对磁盘的抽象
所谓文件是指一组带标识(标识即为文件名)的,在逻辑上有完整意义的信息项的序列
信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系
文件内容的意义:由文件建立者和使用者解释
如何设计一个文件系统
需求分析
文件系统
定义:操作系统中统一管理信息资源的一种软件,管理文件的存储,检索,更新,提供可靠安全的共享和保护手段,并且方便用户使用
文件的分类
文件的逻辑结构
典型的文件逻辑结构与文件存取
文件的存储介质
典型的磁盘结构
磁盘的访问
磁盘空间管理
成组链接法设计思想
文件属性
文件目录,目录项与目录文件
文件目录:统一管理每个文件的元数据,以支持文件名到文件物理地址的转换。将所有文件的管理信息组织在一起,即构成文件目录。
目录文件:将文件目录以文件的形式存放在磁盘上
目录项:构成文件目录的基本单元 目录项可以是FCB,目录是文件控制块的有序集合
我们现在使用的是树形目录结构
与目录相关的概念
路径名(文件名)
绝对路径名:从根目录开始
相对路径名:从当前目录开始
当前目录/工作目录:当前进程使用的目录
目录操作:
创建目录,删除目录
读目录,写目录,改名,复制
目录文件之间的关联
文件的物理结构
链接结构:
链接结构的一个变形:文件分配表 FAT
索引表的组织方式
UNIX的三级索引结构
所以最大的块数可以达到:12+256+256*256+256*256*256个块
文件系统的实现
相关术语:
1、磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区。
2、文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块(簇)组成
•一个文件卷可以是整个磁盘或部分磁盘或垮盘(RAID)。
•同一个文件卷中使用同一份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的
•一个文件卷上:包括文件系统信息、一组文件(用户文件、目录文件)、未分配空间。•块(Block)或簇(Cluster):一个或多个(2的幂)连续的局区,可寻址数据块
3、格式化:在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据(元数据)
磁盘上的内容
内存所需的数据结构
系统打开文件表
整个系统一张
放在内存:用于保存已打开文件的FCB
引用计数是为了共享,多个进程打开同一个文件,那么值修改引用计数,而不在系统打开文件表中存放多项。修改标识,若FCB被改变,则FCB还要写回磁盘
用户打开文件表
每个进程一个
进程的PCB中记录用户打开文件表的位置
文件描述符是一个整数:标准输入文件,标准输出文件,标准错误文件,分配0,1,2。所以打开其他文件的文件描述符从3开始分配。打开方式,以读的方式,以写的方式打开。
系统打开文件表让进程能找到系统打开文件表,让系统能找到对应文件的FCB
文件目录检索
如何加快目录检索
分解前目录文件占13块,所有,假设每块都在不连续的地方,所有,平均的访盘次数为(1+13)/2=7
分解后符号文件占2块,基本文件占11块,所以先在符号文件找到文件号,需要访盘次数(1+2)/2=1.5,找到文件号后必须访问基本文件一次,1.5+1=2.5