前篇见此 : 操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)
操作系统清华大学版笔记(十) 信号量、管程、条件互斥、经典同步问题(读者写者、哲学家问题)
文件系统和文件
12-1 基本概念:文件系统,块,文件描述符,目录,文件别名,文件系统的种类
文件系统的功能:
1. 分配文件磁盘空间:管理文件块,空闲空间,分配算法
2. 管理文件集合,定位,命名,分层文件系统,文件系统类型
3. 提供分层等保护,可靠性/持久性,保持文件的持久。
文件描述符—用整数代表f
必须先打开文件
f = opea(name , flag)
…
…= read(f,..)
…
close(f)
操作系统为每个进程维护一个打开文件表,一个打开文件描述符是这个表中的索引index
内核跟踪每个进程打开的文件,需要元数据来管理
文件指针,指向最近的一次读写位置,
文件打开计数,记录文件打开的次数,当最后一个进程关闭了文件时,允许将其从打开文件表中移除
文件磁盘位置:缓存数据访问信息
访问权限:每个程序访问模式信息
操作系统内部视角
块的集合(块是逻辑转换单元,而扇区是物理转换单元)
块大小 <> 扇区大小,在unix中块的大小是4kb
用户怎么访问文件
顺序访问—几乎所有访问都是这种方式
随机访问—从中间读写,更快速
基于特征访问—类似数据库,很少
文件内部的结构:应用系统打开复杂文件,但对操作系统该文件可能很简单
无结构:单词,比特的队列
简单记录结构:列,固定/可变长度
复杂结构:格式化文档(MS Word, PDF),可执行文件
多用户系统中的文件共享
访问控制:谁能获得哪些访问权限;访问模式:读、写、执行、删除,列举
文件访问控制列表(ACL)
<文件实体,权限>
unix模式
< root/admin, colleagues, others, read, write, execute >
不同用户层级有不同的权限和访问模式
多用户/客户如何同时访问共享文件
- 和过程同步算法相似
- 因磁盘I/O 和网络延迟而设计简单
unix文件系统UFS语义
- 对打开文件