io 埠指令
|[0]
v+---+ [1] 命令 +------------+
| |--------->|塊裝置控制器|[2] 命令接收與執行
|cpu| | |
| | [3] 中斷 |塊裝置儲存器|
+---+<---------+------------+
|[4]
v中斷處理程式
linux 0.11 沒有直接跟塊裝置的互動流程進行互動,而是將互動抽象到了檔案層面。大體過程如下
(1) 檔案操作
[1] 開啟檔案。
根據根/當前目錄i節點搜尋目標檔案i節點,將該i節點快取在緩衝區中。
[2] 讀寫檔案
檔案讀寫的核心是開啟檔案時所獲取到的i節點資訊。由該i節點可得到檔案所屬裝置型別及裝置編號,從而呼叫相應的讀寫函式讀寫檔案,如此處的塊裝置讀寫函式。
(2) 塊裝置讀寫區域換算
由在檔案層面獲取到的i節點,還可以換算出欲讀寫資料在裝置上的位置(邏輯塊號)。
(3) 申請緩衝區快取資料
根據裝置號和邏輯塊,依據緩衝區管理演算法申請緩衝區。
(4) 申請塊裝置訪問
將塊裝置請求提交給塊裝置管理邏輯(如linux 0.11中為電梯演算法)。
(5) 與塊裝置進行互動
根據塊裝置互動流程,將塊裝置上與檔案層面相對應的資料讀到緩衝區中(對於寫裝置,則在寫緩衝區後再將緩衝區寫回塊裝置)。
所以與塊裝置互動涉及的抽象層次由上到下有
+------------+
|檔案操作管理|
+------------+|v
+----------+
|緩衝區管理|
+----------+|v
+--------------+
|塊裝置操作管理|
+--------------+|v
+--------------+
|塊裝置互動流程|
+--------------+
linux裝置管理
linux 的裝置管理 6.1 裝置管理概述 linux 裝置的分類 linux 使用套介面 socket 以檔案i o 方式提供了對網路資料的訪問。裝置驅動程式 三 裝置的識別 而多個scsi 硬碟及其各個分割槽分別賦予次裝置號1 2 3 root localhost ls dev sda l b...
Linux裝置管理
命令 意義ls l 第乙個字元 b block 塊裝置,c character 字元裝置 p pipe 管道裝置 s socket 套接字裝置 sys blocks 系統所有塊裝置的軟鏈結檔案 dd沿襲了ibm的jcl的風格,複製固定大小的資料塊,使用等號而不是減號來設定選項和引數值 dev sd ...
Linux系統之loop裝置管理
檢視loop裝置 losetup a劃分空間 dd if dev zero of var bs m count 建立乙個loop檔案 losetup dev loop filepath 檢視loop裝置 lsblk 建立物理卷 pvcreate physical volume建立捲組 vgcreat...