1 基本概念
1.1 文件系统和文件
- 文件系统: 一种用于持久性存储的系统抽象
- 在存储器上:组织、控制、导航、访问和检索数据
- 大多数计算机系统包含文件系统
- 个人电脑、服务器、笔记本电脑
- iPod、 Tivo /机顶盒、手机/掌上电脑
- Google 可能是由一个文件系统构成的
- 文件:文件系统中一个单元的相关数据在操作系统中的抽象
1.1.1 文件系统的功能
- 分配文件磁盘空间
- 管理文件块(哪一块属于哪一个文件)
- 管理空闲空间(哪一块是空闲的)
- 分配算法(策略)
- 管理文件集合
- 定位文件及其内容
- 命名:通过名字找到文件的接口
- 最常见:分层文件系统
- 文件系统类型(组织文件的不同方式)
- 提供的便利及特征
- 保护:分层来保护数据安全
- 可靠性/持久性:保持文件的持久即使发生崩溃、媒体错误、攻击等
1.1.2 文件和文件块
- 文件属性
- 名称、类型、位置、大小、保护、创建者、创建时间、最近修改时间
- 文件头/文件块
- 在存储元数据中保存了每个文件的信息
- 保存文件的属性
- 跟踪哪一块存储块属于逻辑上文件结构的哪个偏移
1.2 文件描述符
1.2.1 文件使用
1.2.2 管理文件需要的东西
需要元数据数据来管理打开文件:
- 文件指针: 指向最近的一次读写位置,每个打开了这个文件的进程都这个指针
- 文件打开计数:记录文件打开的次数 当最后一个进程关闭了文件时,允许将其从打开文件表中移除
- 文件磁盘位置:缓存数据访问信息
- 访问权限:每个程序访问模式信息
1.2.3 系统的视图来看
- 用户视图: .
- 是一个持久的数据结构
- 系统访问接口
- 字节的集合(UNIX)
- 系统不会关心你想存储在磁盘上的任何的数据结构!
- 操作系统内部视角
- 块的集合(块是逻辑转换单元,而扇区是物理转换单元)
- 块大小<>扇区大小;在UNIX中,块的大小是4KB
例如
1.2.4 怎末访问文件
- 用户怎么访问文件
- 在系统层面需要知道用户的访问模式
- 顺序访问:按字节依次读取
- 几乎所有的访问都是这种方式
- 随机访问:从中间读写
- 不常用,但是仍然重要.例如,虚拟内存支持文件:内存页存储在文件中
- 更加快速-不希望获取文件中间的内容的时候也必须先获取块内所有字节。
- 基于内容访问:通过特征
- 许多系统不提供此种访问方式,相反,数据库是建立在索引内容的磁盘访问上更需要高效的随机访问)
1.2.5 基于内容访问的例子
1.2.6 文件内存的结构
- 无结构.
- 单词、比特的队列
- 简单记录结构
- 列
- 固定长度
- 可变长度
- 复杂结构
- 格式化的文档(如,MS Word, PDF)
- 可执行文件