综述:文件系统实现了让用户可以方便的使用计算机中的文件,并且把文件的存储空间管理的井井有条。用户可以实现关于文件的很多功能。文件系统是用户和计算机中的数据文件的中介。
文件系统的基础
文件的概念
文件是操作系统中一个重要的概念,文件是存储在计算机硬盘中的信息集合,文件可以是任何包含信息的集合体,可以是音乐,图片,文本文件等等。文件是用户使用程序输入输出的基本单位,应用程序的输入是通过文件实现的,输出也是保存在文件中的。
对于文件,我们可以对其进行访问文件、修改文件、保存文件。所以需要文件管理系统来实现对文件的管理。那么在管理之前,首先要对文件下定义。
文件的定义
1)数据项:是文件系统中的最基本的数据组织形式。
基本数据项:用于描述对象的某种属性的一个值,是数据中可命名的最小单位,原子数据。
组合数据项:多个基本数据项组成。
2)记录:记录是一组相关数据项的集合,用于描述一个对象某方面的属性,即一组不同得基本数据项。
3)文件:文件是指由创建者所定义的的一组相关信息的集合。分为有结构文件和无结构文件,有结构文件是由一组相似的记录组成的,如excel文件。无结构文件就可以看作一个比特流,即纯文本文件,是没有格式的。notepad中的代码就是无结构的。
文件的属性
1、名称:给人看的,在同一目录中是不可同名的
2、标识符:机器号,是在系统中的编号。编号是唯一的
3、类型:即后缀,表明文件类型。如doc是word文件psd是ps的文件
4、位置:指向设备和设备上的文件的指针
5、大小:文件当前大小
6、保护:对文件保护的访问控制信息,用来设置访问权限。
7、时间、日期、用户标识:文件创建,上次修改,上次访问的相关信息。
文件不用的时候保存在外存的目录结构中,用的时候再调入内存中,通常用标识符定位文件。
文件的基本操作
1)创建文件:创建文件两个步骤1、找到空间 2、目录中创建新条目(条目包括名称、位置等信息)
2)写文件:写文件需要文件名称和写入内容。系统会对这个文件有一个写指针,就可以写入了。
3)读文件:读文件需要文件名称和读入文件块的内存位置。系统会对这个文件有个读指针。
4)文件重定位:按照某种条件,检索文件。
5)删除文件:先删除目录项,再收回存储空间
6)截断文件:允许文件所有属性不变,并删除文件内容。即变成空文件。
这些是文件的基本操作,其他操作都是这样组合而成的。
文件的打开与关闭
进程在运行过程中,会有一个打开文件表,表中索引着进程曾经打开过的文件。所以文件首次被打开时,需要系统调用open,把文件从外存拷贝到内存中来。打开文件的时候,还有一个计数器,用来记录文件被多少个进程打开了,关闭时则减1.当计数器为0的时候,系统则回收分配给该文件的内存空间资源。最后释放文件控制块。
每个打开文件都有如下关联信息:
1、文件指针:系统跟踪上次读写位置的指针。
2、文件打开计数器
3、文件磁盘位置,用于在内存中修改了的文件写回外存。位置驻在内存中。
4、访问权限
文件的逻辑结构