作業系統 6 IO管理和磁碟排程學習筆記

2021-07-23 07:43:50 字數 1992 閱讀 7894

io緩衝:在輸入請求發出之前就開始執行輸入傳送,並且在輸出請求發出一段時間之後才開始執行輸出傳送,這項技術成為緩衝;

執行io的裝置物件是:

1、塊裝置,可以隨機訪問,例如硬碟、快閃儲存器等;

2、流裝置,必須順序訪問,例如串列埠和鍵盤;

塊裝置中最小的可定址單位是扇區,一般為2的整數倍,最常見的是512。一般的扇區指裝置最小定址單元,塊指檔案系統最小定址單元。下圖是二者的關係,塊包含乙個或多個扇區,但大小不能超過乙個頁面,所以乙個頁可以容納乙個或多個記憶體中的塊。

緩衝區頭:

每乙個緩衝區都有乙個描述符(struct buffer_head),包含了核心操作需要的所有資訊,它的作用是描述磁碟塊和物理記憶體間的對映關係。但在linux 2.6版本以後,多數io操作都利用頁快取記憶體和頁回寫直接操作頁面或位址空間,不再使用緩衝區頭了。此後linux引入bio結構體代表io操作,核心通過這兩種結構體,保證每種結構所含的資訊量盡量少。

頁快取記憶體:它指的是吧磁碟的資料快取到物理記憶體中,把磁碟的訪問變為對物理記憶體的訪問。linux的寫快取策略是回寫,寫資料是寫入記憶體,同時標記頁面為「髒」,加入「髒列表」,然後由回寫程序寫會磁碟,最後清理髒標識。

flush執行緒會在空閒記憶體低於乙個閾值、或髒頁駐留時間過長,或使用者主動呼叫sync(), fsync()時,將髒頁回寫。flush執行緒為多執行緒,一般於裝置對應。

執行io的三種技術

可程式設計io:處理器代表乙個程序給io模組傳送io命令,該程序進入忙等待,直到操作完成才可以繼續執行;

中斷驅動io:處理器代表程序給io模組傳送io命令,有兩種可能性:如果來自程序io指令是非阻塞的,那麼處理器繼續執行發出後續指令,如果io指令是阻塞的,那麼處理器執行得下一條指令則來自作業系統,她將當前的程序設定為阻塞狀態並且排程其他程序;

直接儲存器訪問(dma):乙個dma模組控制記憶體和io模組之間的資料交換,為傳送一塊資料,處理器給dma模組傳送請求,並且只有當整個數塊傳送借宿後,它才被中斷;

io排程:

為了優化定址操作,核心會將請求合併排序,用以提高整體效能;排程策略有最終期限、**、完全公正、空操作四種策略,最終降低了讀響應時間,也降低了吞吐量。預計策略為linux預設io策略,除超大工作符合的服務(例如資料探勘)效果不錯;完全公平策略適用於多**環境;空操作適用於完全塊裝置,例如快閃儲存器卡;

dma技術工作流程如下,當處理器想讀或者寫一塊資料時,它通過dma模組傳送一下訊息來給dma模組發出一條命令:

是否請求讀操作或寫操作,通過在處理器和dma模組之間使用讀寫控制線傳送;

從儲存器中讀或者往儲存器中寫的起始位址,在資料線上傳送,並有dma模組儲存在其位址暫存器中;

讀或寫的字數,也是通過資料線傳送,並有dma模組儲存在其資料計數暫存器中;

備註:dma和io模組之間的資料互動是脫離系統匯流排完成的;

系統匯流排:系統匯流排上傳送的資訊包括資料資訊、位址資訊、控制資訊,因此,系統匯流排包含有三種不同功能的匯流排,即

資料匯流排

db(data bus)、

位址匯流排

ab(address bus)和

控制匯流排

cb(control bus)

磁碟排程:

尋道時間(seek time): 磁頭定位到磁軌所需要的時間;

旋轉延遲(rotational delay):磁頭到達扇區開始位置的時間;

目前正常機器的尋道時間小於10ms(其實也很慢啦)

磁碟排程演算法:

磁碟快取記憶體:

I O管理和磁碟排程

執行i o的三種技術 1 可程式設計i o 處理器代表乙個程序給i o模組傳送乙個i o命令 該程序進入忙等待,直到操作完成才可以繼續執行。2 中斷驅動i o 處理器代表程序向i o模組發出乙個i o命令。有兩種可能性 如果來自程序的i o指令是非阻塞的,那麼處理器繼續執行發出i o命令的程序的後續...

作業系統實驗6 磁碟排程模擬

1 掌握fcfs sstf scan等磁碟排程演算法 2 使用高階語言實現演算法,並比較不同演算法的優缺點。磁碟排程在多道程式設計的計算機系統中,各個程序可能會不斷提出不同的對磁碟進行讀 寫操作的請求。由於有時候這些程序的傳送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟裝置建立乙個等待佇列...

作業系統磁碟排程演算法

裝置的動態分配演算法與程序排程相似,也是基於一定的分配策略的。常用的分配策略有先請求先分配 優先順序高者先分配等策略。在多道程式系統中,低效率通常是由於磁碟類旋轉裝置使用不當造成的。作業系統中,對磁碟的訪問要求來自多方面,常常需要排隊。這時,對眾多的訪問要求按一定的次序響應,會直接影響磁碟的工作效率...