緩衝技術
概述
緩衝技術在現代作業系統中被廣泛使用,主要是為了解決CPU與週邊設備之間的速度不匹配問題,並提高系統各部件的工作效率和並行工作能力。透過引入緩衝區,系統能夠更好地協調資料的輸入和輸出,減少對CPU中斷頻率的需求,提升整體效能。
緩衝的引入
緩和CPU與I/O設備間速度不符的矛盾
- 高速的CPU以微秒級或微毫秒級工作,而I/O設備則以毫秒或秒級工作。
減少對CPU中斷頻率,放寬對CPU中斷回應時間限制
- 設定緩衝區可減少CPU中斷次數,降低中斷處理時間。例如,8位元緩衝器可將中斷頻率降低為原來的1/8。
提高CPU與I/O裝置之間的並行性
- 緩衝引入顯著提高CPU與I/O設備之間的平行操作程度,提高系統吞吐量和設備利用率。
單一緩衝
- 工作機制:在裝置和處理器之間設定單緩衝器。資料交換時,先將資料寫入緩衝器,再從緩衝器讀取。
- 限制:由於單一緩衝屬於臨界資源,輸入和輸出裝置只能串列存取緩衝器,無法實現裝置間的平行操作。
雙緩衝
- 概念:雙緩衝,即緩衝對換,是指為輸入和輸出設備設定兩個緩衝區。設備可以在向一個緩衝區輸入資料的同時,處理器從另一個緩衝區讀取資料。
- 優點:透過交替使用兩個緩衝區,進一步提高了CPU和I/O裝置的並行性,減少等待時間。
- 限制:在輸入/輸出設備與處理進程速度不匹配的情況下,雙緩衝也難以完全適應,無法解決多個週邊設備之間的速度不均衡問題。
多緩衝
- 機制:系統從主記憶體分配多個緩衝區,形成多重緩衝機制。這些緩衝區可以組成循環緩衝,用於在輸入進程和計算進程之間傳遞資料。
- 優勢:透過共享多個緩衝區,系統可以提高緩衝區的使用率,減少資料傳輸過程中的等待時間,適應更多並行操作場景。
緩衝池
概念:緩衝池是一種公用緩衝區結構,由多個可共享的緩衝區組成,用於提高緩衝區的利用率,適用於多個I/O進程和計算進程。
緩衝區分類:
- 空緩衝區:未儲存資料的緩衝區。
- 裝滿輸入資料的緩衝區:包含輸入資料等待處理。
- 裝滿輸出資料的緩衝區:包含待輸出的資料。
管理方式:將相同類型的緩衝區鏈成佇列,可形成以下三個佇列:
- 空緩衝佇列(emq):儲存空緩衝區。
- 輸入佇列(inq):儲存裝滿輸入資料的緩衝區。
- 輸出佇列(outq):儲存裝滿輸出資料的緩衝區。
四種工作緩衝區:
- hin:用於接收輸入資料的緩衝區。
- sin:用於擷取輸入資料的緩衝區。
- hout:用於接收CPU輸出資料的緩衝區。
- sout:用於擷取CPU輸出資料的緩衝區。