跳轉至

緩衝技術

概述

緩衝技術在現代作業系統中被廣泛使用,主要是為了解決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輸出資料的緩衝區。