作業系統與硬體
寫出小量資料時,與其逐位元組每次都呼叫系統呼叫,不如先暫存在使用者空間的緩衝區再一併寫出,速度會比較快,其主要理由為何?
- A因為一併寫出後,要寫出的資料總量本身會減少
- B因為可以藉由減少次數,來壓低每次系統呼叫的固定負擔
- C因為暫存在緩衝區的話,不使用磁碟也能保存資料
查看答案與解析
正確答案:B. 因為可以藉由減少次數,來壓低每次系統呼叫的固定負擔
系統呼叫每次都需要從使用者模式切換到特權模式、儲存暫存器、檢查引數、返回等處理,即使處理的量只有1位元組,也會產生這些固定的負擔。此外,進入核心還會擾亂快取與TLB的內容。若先暫存在緩衝區,再以數KB為單位一併寫出,系統呼叫的次數就會大幅減少,整體也會變快。要寫出的資料總量不變,最終也會寫入磁碟。
- A. 要寫出的資料總量不會改變。
- B. 正確。藉由減少次數來壓低每次的固定負擔。
- C. 最終仍會寫出到磁碟。