1. 文件系统
1.1 文件系统和文件
文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能,可以提供组织、检索、读写访问数据功能。在没有文件系统时,我们在计算机上操作的数据无法有效保存,在计算机关机再重启时数据就丢失了。大多数计算机系统都有文件系统,我们常用的谷歌也是一个文件系统,支持分布式应用的数据管理,可以支持系统监控、故障检测、故障容忍和自动恢复,提供很高的可靠性。
文件是具有符号名,由字节序列构成的数据项集合。
- 文件是文件系统的基本数据单位
- 文件名是文件的标识符号
文件系统的功能
- 分配文件磁盘空间
- 管理文件集合
- 保证数据可靠和安全。
文件属性包括名称、类型、位置、大小、保护、创建者、创建时间、最近修改时间等。
文件头是文件系统元数据中的文件信息,里面包含文件属性和文件存储位置和顺序。
文件描述符
进程访问文件数据前必须先打开文件,内核会跟踪进程打开的所有文件,操作系统为每个进程维护一个打开文件表,文件标识符是打开文件的标识。
文件指针
最近一次读写位置,每个进程分别维护自己的打开文件指针。
文件打开计数
当前打开文件的次数,最后一个进程关闭文件时,将其从打开文件表中移除。
文件的用户视图和系统视图
用户来看,文件是持久的数据结构。
操作系统看来,文件是数据块的集合。
数据块是逻辑存储单元,而扇区是物理存储单元。
用户视图到系统视图的转换
文件系统中最小基本单位为数据块,磁盘最小访问单位为扇区。
进程读文件步骤
- 获取字节所在的数据块(数据块是逻辑存储单位)
- 返回数据块内对应部分
进程写文件步骤
- 获取数据块
- 修改数据块内容
- 写回数据块
访问模式
访问模式就是进程如何访问文件。
- 随机访问
- 从中间读写
- 不常用,但很重要
- 虚拟内存中把内存页存储在文件
- 索引访问