塊裝置簡介

2021-09-05 10:19:43 字數 793 閱讀 5663

裝置分為塊裝置和字元裝置

ll_rw_blk.c是其他程式呼叫裝置所用到的程式。

對硬碟和軟盤裝置上資料的讀寫是通過中斷處理程式進行

核心每次讀寫的資料量是邏輯塊(1024位元組),而裝置的儲存是扇區(512位元組)

當程式讀取裝置資料時,首先向緩衝區管理程式提出申請,程式的程序進入睡眠狀態,

緩衝區管理程式首先在緩衝區中尋找以前是否已經讀取過這塊資料,如果緩衝區有,就直接將對應的

緩衝區的頭指標返回給程式並且喚醒程式。如果緩衝區不存在所要求的資料塊,則緩衝區管理程式會呼叫

低階塊讀寫函式ll_rw_block(),向相應的塊裝置驅動程式發出讀寫操作請求。ll_rw_block()函式會建立乙個請求項,

並把該項插入到請求佇列中,插入請求項使用了電梯移動演算法。

核心使用一張裝置表blk_dev來進行管理,每種裝置在裝置表中佔一項。

裝置項結構

struct blk_dev_struct;

系統發出寫命令(hd_out())後等待給予允許向控制器寫資料的響應,即請求服務標誌drq置位,一旦drq置位,

系統就可以向控制器緩衝區傳送乙個扇區的資料,控制器發資料寫入驅動器後,還會產生中斷請求訊號,中斷過程

中執行前面預設定的write_intr(),該函式會查詢是否還有資料要寫,系統再把乙個扇區的資料傳給控制器緩衝區中,

一直這樣重複執行,直到把所有資料寫入驅動器,該函式執行本次寫盤的結束後的處理工作,喚醒請求項的相關程序,

喚醒等待請求項程序,釋放請求項並從鍊錶刪除該請求項以及釋放相關緩衝區,最後再呼叫請求項操作函式執行下乙個請求項。

驅動開發 字元裝置 塊裝置簡介 sky原創

驅動開發 字元裝置,塊裝置,網路裝置 字元裝置 以位元組流的方式訪問,不能隨機訪問 有例外,顯示卡 eeprom可以隨機訪問 eeprom可以擦寫1億次,是一種字元裝置,可以隨機訪問 讀寫是直接訪問硬體的 flash 擦寫次數有限,一百萬次,容易有壞塊 塊裝置 能隨機訪問 以 塊 為單位進行訪問 塊...

塊裝置驅動

若塊裝置驅動程式也按以下字元裝置驅動程式的簡單思想來寫 1.硬碟 磁碟的讀寫其實非常快,慢在機械結構讀寫裝置的定位上面,從乙個 磁頭 的某 柱面 某 扇區 讀到資料後 步驟 r0 跳到另乙個 磁頭 的某 柱面 的某 扇區 去寫 步驟 w 接著再跳回原 磁頭 相同柱面的下乙個 扇區 去讀 步驟r1 慢...

字元裝置與塊裝置

系統中能夠隨機 不需要按順序 訪問固定大小資料片 chunks 的裝置被稱作塊裝置,這些資料片就稱作塊。最常見的塊裝置是硬碟,除此以外,還有軟盤驅動器 cd rom驅動器和快閃儲存器等等許多其他塊裝置。注意,它們都是以安裝檔案系統的方式使用的 這也是塊裝置一般的訪問方式。一般訪問單位為512k的整數...