區分UNIX中的塊裝置和字元裝置
塊裝置和字元裝置之間的主要區別如下:
塊裝置
塊裝置是儲存裝置,可以以固定大小的塊為單位進行讀寫資料操作。
硬碟驅動器、軟盤驅動器和光碟驅動器(如 DVD-ROM 和 CD-ROM)是一些此類裝置的示例。
通常,塊裝置一次讀取或寫入整個塊。大多數檔案系統也基於塊裝置。
塊裝置的優點是它需要較少的引腳來訪問資料;但是,它包括一個緩衝機制的實現,以加快讀取和寫入訪問期間的訪問速度。
塊系統也可能僅接受以塊為單位的輸入和輸出(基於系統的規格,此類塊的大小各不相同)。
優點:
塊裝置需要較少的引腳來訪問資料。
為了加快讀取和寫入操作期間的訪問速度,它需要一個緩衝機制。
以塊為單位接受輸入和輸出。
缺點:
一次儲存專門用於一臺伺服器。
塊和檔案系統具有有限的元資料。
即使我們沒有使用,我們也必須支付分配的所有塊儲存費用。
它需要更多的手動操作和設定。
字元裝置
字元(流)裝置可以使用少量位元組進行操作,並且不需要緩衝;響應時間和處理速度比塊裝置快。
另一方面,在塊裝置中需要記憶體訪問才能訪問檔案,其中檔案需要對映到記憶體中,並且記憶體和塊裝置之間的速度差異會導致效能問題。
核心快取的提供是解決此問題的一種方法。
快取的這種實現使塊裝置幾乎無法使用,並導致 I/O 處理量增加。
字元裝置的關鍵優勢
在字元裝置中,I/O 可以直接在系統和使用者之間執行,因此,可以節省核心的複製過程和緩衝機制的開銷。
可以使用直接記憶體訪問 (DMA) 來執行此類過程。
但是,由於 DMA 限制為 64K,因此幾乎不可能實現此優勢。
流裝置通常比塊裝置使用的記憶體更少,因為流裝置需要每次處理較少的資料,而塊裝置需要一次訪問一個數據塊。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP