哈工大李志军操作系统 —(四)设备驱动与文件系统—目录与文件系统L31.L32
L31 目录与文件系统
file system
- 磁盘是一颗目录树,每个目录下一堆文件
文件系统,抽象整个磁盘(第四层抽象)
- 故事从多个文件开始
- 所有文件放在一层(大集合)--集合划分:分治处理
- 引入目录树
目录形成目录树
- 实现目录成为关键问题
- 根据树状结构查找文件目录路径,得到文件FCB的映射
- 如果存放目录下的所有文件的FCB吗?需要逐个匹配,这样查找效率低,而且需要加载到内存中才进行匹配;而且目录下很多文件都是多余的
- 这样目录下应该存放什么?使系统效率更高
- 目录的实现,要使整个系统自举,还需要存一些信息
- 引导块大小固定,超级块决定了两个位图的信息,确定根目录的开始地址
完成全部映射下
的磁盘使用read的时候利用open的inode信息
4层抽象现在明确了!!!
总结一下磁盘的使用:多进程需要读写→通过文件系统(第四层抽象)目录解析找到test.c文件,根据文件(第三层抽象)的FCB得到所需位置的盘块号→盘块号写入请求队列排队(第二层抽象)进行电梯算法→磁盘驱动根据盘块号(第一层抽象)算出C H S→相应扇区读写
L32 目录解析代码的实现
directory resolution
open
解析
get_dir
完成真实的目录解析find_entry
找根目录下目录信息
- FCB存放了盘块的索引。
哈工大李志军操作系统 —(四)设备驱动与文件系统—目录与文件系统L31.L32相关推荐
- 哈工大李治军老师操作系统笔记【29】:目录与文件系统(Learning OS Concepts By Coding Them !)
文章目录 0 回顾 1 目录与文件系统 1.1 映射 1.2 目录树 1.3 实现目录 1.4 树状目录的完整实现 2 总结 0 回顾 整个磁盘变成一棵目录树 目录树组织一堆文件 文件抽象 一个文件到 ...
- 【操作系统】设备驱动
本文为学习李治军老师<操作系统原理.实现与实践>第八章的总结,主要讲述显示器.键盘设备驱动. 参考资料: 哈工大李治军老师操作系统mooc视频: 实践项目解析. 第八章 设备驱动 设备驱动 ...
- Unix/Linux操作系统分析实验四 设备驱动: Linux系统下的字符设备驱动程序编程
Unix/Linux操作系统分析实验一 进程控制与进程互斥 Unix/Linux操作系统分析实验二 内存分配与回收:Linux系统下利用链表实现动态内存分配 Unix/Linux操作系统分析实验三 文 ...
- 为Tiny4412设备驱动在proc目录下添加一个可读版本信息的文件
http://blog.csdn.net/morixinguan/article/details/77808088 上节,我们明白了proc文件系统的作用,接下来我们在友善之臂已经写好的led驱动的基 ...
- 哈工大李治军老师操作系统笔记【10】:内核级线程实现(Learning OS Concepts By Coding Them !)
文章目录 0 回顾 1 实现 1.1 int 0x80 fork(中断入口) 1.2 进入核心态 1.3 system_call(中断切换中间三段) 1.4 中断出口 1.3 switch_to 1. ...
- 哈工大李治军老师操作系统笔记【27】:从生磁盘到文件(Learning OS Concepts By Coding Them !)
文章目录 0 回顾 1 引入文件 1.1 映射 1.2 链式结构实现文件 1.3 索引结构实现文件 2 总结 0 回顾 盘块号就是连续的扇区 得到盘块号就能进行下列操作 1 引入文件 普通用户使用生磁 ...
- 哈工大李治军老师操作系统笔记【13】:一个实际的schedule函数(Learning OS Concepts By Coding Them !)
文章目录 0 回顾 1 linux0.11的schedule() 1.1 counter的作用 2 总结 0 回顾 实际的schedule是多种基本算法的融合,综合考虑各种情况,但也要求算法本身尽可能 ...
- 设备驱动理论详解,Linux操作系统原理与应用
目录 一.概述 1.设备是什么 2.设备的分类 3.设备驱动分层结构 4.设备的信息 5.设备驱动程序是什么 6.设备管理 7.用户进程请求设备进行输入/ 输出的简单流程 二.设备驱动程序框架 三.I ...
- 设备驱动,字符设备驱动、(总线)设备驱动模型、sysfs文件系统、平台设备驱动
以下内容转载于微信公众号:嵌入式企鹅圈.如有侵权,请告知删除. 学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动.设备驱动模型和sysfs等相关概念和技术. 对于初学者来说会非常 ...
最新文章
- 7、在对象内部尽量直接访问实例变量
- R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois rpois)实战
- LayerDate渲染多个class出现闪现问题的解决
- Unicode(UTF-8, UTF-16)令人混淆的概念
- Left join后用and和where的区别
- [jQuery] 根据表单的不同参数跳转不同的链接
- 列表使用与内部实现原理
- Java的Comparator排序(升序降序)理解
- Nest,很酷的东西
- 蓝桥杯 ADV-169 算法提高 士兵排队问题
- [转载] Java:简述Java中的自定义异常
- Linux环境安装redis
- sd卡计算机无法读取数据,怎么强制格式化sd卡-内存卡突然无法读取、数据损坏……整个人都是崩溃的!...
- spread.net 14.2 Crack by Xacker
- .net framework MVC ,API, 支持OAS3
- 向mysql写入时间_Python向Mysql写入时间类型数据
- 关于servlet生命周期
- 记一次电脑没有声音,修复的问题
- 中国联通数字乡村白皮书2.0 附下载
- 【知名的移动APP和网站设计工具】Sketch for Mac 54.1