06 linux011块设备管理
Posted 资质平庸的程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06 linux011块设备管理相关的知识,希望对你有一定的参考价值。
1 与块设备交互的大体流程(如硬盘)
IO 端口指令
|[0]
V
+---+ [1] 命令 +------------+
| |--------->|块设备控制器|[2] 命令接收与执行
|CPU| | |
| | [3] 中断 |块设备存储器|
+---+<---------+------------+
|[4]
V
中断处理程序
2 与块设备交互涉及到的抽象层次
linux 0.11 没有直接跟块设备的交互流程进行交互,而是将交互抽象到了文件层面。大体过程如下
(1) 文件操作
[1] 打开文件。
根据根/当前目录i节点搜索目标文件i节点,将该i节点缓存在缓冲区中。
[2] 读写文件
文件读写的核心是打开文件时所获取到的i节点信息。由该i节点可得到文件所属设备类型及设备编号,从而调用相应的读写函数读写文件,如此处的块设备读写函数。
(2) 块设备读写区域换算
由在文件层面获取到的i节点,还可以换算出欲读写数据在设备上的位置(逻辑块号)。
(3) 申请缓冲区缓存数据
根据设备号和逻辑块,依据缓冲区管理算法申请缓冲区。
(4) 申请块设备访问
将块设备请求提交给块设备管理逻辑(如linux 0.11中为电梯算法)。
(5) 与块设备进行交互
根据块设备交互流程,将块设备上与文件层面相对应的数据读到缓冲区中(对于写设备,则在写缓冲区后再将缓冲区写回块设备)。
所以与块设备交互涉及的抽象层次由上到下有
+------------+
|文件操作管理|
+------------+
|
V
+----------+
|缓冲区管理|
+----------+
|
V
+--------------+
|块设备操作管理|
+--------------+
|
V
+--------------+
|块设备交互流程|
+--------------+
以上是关于06 linux011块设备管理的主要内容,如果未能解决你的问题,请参考以下文章