扇区、磁盘块、页、页框、缓冲区之间的关系!
? ? ? ? ? ?扇區、磁盤塊、頁、頁框、緩沖區之間的關系!
扇區是塊設備傳輸數據的基本單元,也就是說它是塊設備中最小的尋址單位,扇區通常的大小為512B。
塊是內核對文件系統的一種抽象,也就是說內核執行的所有磁盤操作都是以塊為基本單位的。
可以簡單的將扇區和塊理解為:扇區是硬件設備傳輸數據的最小單位,而塊是操作系統傳輸數據的最小單位。一個塊通常對應一個或多個相鄰的扇區,由于內核將塊作為對文件系統操作的最小單位,因此VFS將其看作是單一的數據單元。
當內核從磁盤讀入數據后或者即將寫數據到磁盤時,它需要將數據寫入一個緩沖區。緩沖區其實就是物理頁框的一部分,因此一個物理頁框可能包含一個或多個塊緩沖區。根據上述描述的關系,包含磁盤數據的物理頁框構造如下圖:
正如上面所說,塊緩沖區是頁框的一部分,因此不用特別描述塊緩沖區中的數據。每個塊緩沖區都對應一個塊緩沖區頭buffer_head,他們的關系如同物理頁框和物理頁框描述符,前者用來存儲數據,后者是對前者的屬性以及控制信息的描述。塊緩沖區頭、塊緩沖區以及頁框的關系如下:
內核中使用buffer_head結構來描述緩沖區頭,該結構中的部分字段解釋如下:
b_state:對塊緩沖區狀態的描述。
b_this_page:在一個頁框中,可能包含多個塊緩沖區。一個頁框內的所有緩沖區形成循環鏈表,該字段指向下一個塊緩沖區。
b_page:指向緩沖區所在頁框的描述符。
b_size:塊緩沖區大小。
b_data:當前塊在作為緩沖的頁框內的位置。
b_bdev:指向塊設備的指針
---------------------?---------------------?---------------------?---------------------?---------------------?---------------------?---------------------?
概念
扇區:磁盤的最小存儲單位;
磁盤塊:文件系統讀寫數據的最小單位;
頁:內存的最小存儲單位;
聯系
一個磁盤塊由連續幾個(2^n)扇區組成;
頁的大小為磁盤塊大小的2^n倍;
查看
頁大小查看: getconf PAGE_SIZE,常見為4K;
磁盤塊大小查看:stat /boot/|grep “IO Block”,常見為4K;
扇區大小查看:fdisk -l,常見為512Byte;
?
總結
以上是生活随笔為你收集整理的扇区、磁盘块、页、页框、缓冲区之间的关系!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flash芯片(硬盘)与RAM芯片(内存
- 下一篇: 系统编程(ISP)与应用编程(IAP)的