前篇见此 : 操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)
操作系统清华大学版笔记(十) 信号量、管程、条件互斥、经典同步问题(读者写者、哲学家问题)
文件系统和文件
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语义
- 对打开文件的写入内容立即对其他打开同一文件的其他用户可见
- 共享文件指针允许多用户同时读写
会话语义
- 写入内容只有当文件关闭时可见,类似一个会话
层次目录结构
类似树的结构
目录的操作:搜索,创建,删除,枚举,重命名,在文件系统中遍历一个路径
操作系统应该只允许内核模式修改目录,确保映射的完整性,应用程序能够读目录
类似一个集合,文件名的线性列表,或者HASH表等等
寻找文件:
名字解析,逻辑名字转换成物理资源
绝对路径—>依次查找—> 先读文件头,再读数据块,搜索子项,如此递归

本文详细介绍了文件系统的基本概念,包括文件系统、块、文件描述符、目录和文件系统的种类。讨论了文件描述符在操作系统中的作用,如打开文件表、文件指针和访问权限。还涉及文件的分配策略,如连续分配、链式分配和索引分配,并探讨了空间列表、多磁盘管理和调度算法,如RAID技术。
最低0.47元/天 解锁文章
1587

被折叠的 条评论
为什么被折叠?



