裝置驅動 塊裝置驅動程式

2021-09-26 15:21:53 字數 587 閱讀 2051

塊裝置驅動程式提供對面向塊的裝置的訪問,這種裝置以隨機訪問的方式傳輸資料,並且資料總是具有固定大小的塊。典型的塊裝置是磁碟驅動器,也有其它型別的塊裝置。

塊裝置和字元裝置有很大區別。比如塊裝置上可以掛載檔案系統,字元裝置不可以。這是隨機訪問帶來的優勢,因為檔案系統需要能按塊儲存資料,同時更需要能隨機讀寫資料。

另外資料經過塊裝置相比操作字元裝置需要多經歷乙個資料緩衝層,應用程式與塊裝置傳遞資料時不同於操作字元裝置那樣直接打交道,而必須經過乙個中間緩衝層來儲存資料,然後才可以使用資料。

追根溯源,提高系統整體效能(吞吐量)是其根本原因。系統執行快慢受檔案系統訪問速度直接影響,而檔案系統的訪問行為是大量無序的,而且常常會重複地訪問請求。無序訪問請求會讓磁頭不斷地改變方向(比直線運動費時的多);重複訪問又會使得上次讀出的資料再被讀取(上次的結果被白白浪費了)。

為解決上述兩個弊端,核心對塊裝置訪問引入緩衝層。緩衝層的作用一是作為資料緩衝區,儲存已取得的資料,以便加快訪問速度——如果需要從塊裝置讀取的資料已經在緩衝區中,則使用緩衝區中的資料,避免了耗時的裝置操作和i/o操作;二是將對塊裝置的i/o訪問按照訪問扇區的位置進行了優化排序,盡量保證訪問時磁頭做直線移動——這在作業系統中被稱為電梯排程算

塊裝置驅動程式

裝置描述 定義於linux genhd.h struct gendisk 裝置註冊 void add disk struct gendisk gd 裝置操作 字元裝置通過file operations結構來定義它所支援的操作。塊裝置通過struct block device operations結構...

塊裝置驅動程式

塊裝置驅動程式 1 塊裝置和字元裝置的區別 1,讀取資料的單元不同,塊裝置讀寫資料的基本單元式塊,字元裝置的基本單元是位元組。2,塊裝置可以隨機訪問,字元裝置只能順序訪問。2 linux核心中塊裝置的描述 struct gendisk 裝置操作 struct block device operati...

塊裝置驅動程式

1 塊裝置驅動程式的引入 對於塊裝置,不能像字元裝置那樣直接提供讀寫函式 假設 寫扇區0和扇區1 原先是這樣寫扇區0 a.讀出整塊到buffer b.修改buffer裡的扇區0 c.擦除整塊 d.燒寫整塊 原先是這樣寫扇區1 a.讀出整塊到buffer b.修改buffer裡的扇區1 c.擦除整塊 ...