讀/寫io,最為常見說法,讀io,就是發指令,從磁碟讀取某段扇區的內容。指令一般是通知磁碟開始扇區位置,然後給出需要從這個初始扇區往後讀取的連續扇區個數,同時給出動作是讀,還是寫。磁碟收到這條指令,就會按照指令的要求,讀或者寫資料。控制器發出的這種指令+資料,就是一次io,讀或者寫。
大/小塊io,指控制器的指令中給出的連續讀取扇區數目的多少,如果數目很大,比如128,64等等,就應該算是大塊io,如果很小,比如1, 4,8等等,就應該算是小塊io,大塊和小塊之間,沒有明確的界限。
連續/隨機io,連續和隨機,是指本次io給出的初始扇區位址,和上一次io的結束扇區位址,是不是完全連續的,或者相隔不多的,如果是,則本次io應該算是乙個連續io,如果相差太大,則算一次隨機io。連續io,因為本次初始扇區和上次結束扇區相隔很近,則磁頭幾乎不用換道或換道時間極短;如果相差太大,則磁頭需要很長的換道時間,如果隨機io很多,導致磁頭不停換道,效率大大降底。
順序/併發io,這個的意思是,磁碟控制器每一次對磁碟組發出的指令套(指完成乙個事物所需要的指令或者資料),是一條還是多條。如果是一條,則控制器快取中的io佇列,只能乙個乙個的來,此時是順序io;如果控制器可以同時對磁碟組中的多塊磁碟,同時發出指令套,則每次就可以執行多個io,此時就是併發io模式。併發io模式提高了效率和速度。
磁碟簇:扇區是磁碟最小的物理儲存單元,但由於作業系統無法對數目眾多的扇區進行定址,所以作業系統就將相鄰的扇區組合在一起,形成乙個簇,然後再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區。顯然,簇是作業系統所使用的邏輯概念,而非磁碟的物理特性。為了更好地管理磁碟空間和更高效地從硬碟讀取資料,作業系統規定乙個簇中只能放置乙個檔案的內容,因此檔案所占用的空間,只能是簇的整數倍;而如果檔案實際大小小於一簇,它也要佔一簇的空間。所以,一般情況下檔案所佔空間要略大於檔案的實際大小,只有在少數情況下,即檔案的實際大小恰好是簇的整數倍時,檔案的實際大小才會與所佔空間完全一致。
扇區:磁碟上的每個磁軌被等分為若干個弧段,這些弧段便是磁碟的扇區。硬碟的讀寫以扇區為基本單位。通常情況下每個扇區的大小是512位元組。(由於不斷提高磁碟的大小,部分廠商設定每個扇區的大小是4096位元組)
磁碟塊:邏輯層面:磁碟塊(虛擬出來的)。 塊是作業系統中最小的邏輯儲存單位。作業系統與磁碟打交道的最小單位是磁碟塊。作業系統是通過塊簇來做為單位讀取等運算元據的。檔案系統就是作業系統的一部分,所以檔案系統操作檔案的最小單位是塊。目的:1.讀取方便:由於扇區的數量比較小,數目眾多在定址時比較困難,所以作業系統就將相鄰的扇區組合在一起,形成乙個塊,再對塊進行整體的操作。2.分離對底層的依賴:作業系統忽略對底層物理儲存結構的設計。通過虛擬出來磁碟塊的概念,在系統中認為塊是最小的單位。。
磁碟控制器:其作用除了讀取資料、控制磁頭等作用外,還有的功能就是對映扇區和磁碟塊的關係。
塊與頁的關係:作業系統經常與記憶體和硬碟這兩種儲存裝置進行通訊,類似於「塊」的概念,都需要一種虛擬的基本單位。所以,與記憶體操作,是虛擬乙個頁的概念來作為最小單位。與硬碟打交道,就是以塊為最小單位
磁碟相關 磁碟IO 扇區 塊與頁
磁碟相關 磁碟io 扇區 塊與頁 磁碟io 主要出現在資料庫優化和儲存規劃過程中 讀 寫io,最為常見說法,讀io,就是發指令,從磁碟讀取某段扇區的內容。指令一般是通知磁碟開始扇區位置,然後給出需要從這個初始扇區往後讀取的連續扇區個數,同時給出動作是讀,還是寫。磁碟收到這條指令,就會按照指令的要求,...
磁碟IO 快取IO與直接IO
檔案系統io分為directio和bufferio,其中bufferio也叫normal io。快取i o又被稱作標準i o,大多數檔案系統的預設i o操作都是快取i o。在linux的快取i o機制中,資料先從磁碟複製到核心空間的緩衝區,然後從核心空間緩衝區複製到應用程式的位址空間。讀操作 作業系...
磁碟工作原理與IO效能分析
最近,在研究如何優化產品裝置的磁碟io效能,需要深入研究磁碟及檔案系統原理和工作機制,下面簡要總結下關於磁碟方面的東西,下篇文章再分享檔案系統的。機械磁碟結構 無論哪種機械硬碟,都主要由碟片 磁頭 碟片主軸 控制電機 磁頭控制器 資料轉換器 介面 快取等幾個部份組成。其中所有的碟片都固定在乙個旋轉軸...