作業系統與硬體

寫出小量資料時,與其逐位元組每次都呼叫系統呼叫,不如先暫存在使用者空間的緩衝區再一併寫出,速度會比較快,其主要理由為何?

  1. A因為一併寫出後,要寫出的資料總量本身會減少
  2. B因為可以藉由減少次數,來壓低每次系統呼叫的固定負擔
  3. C因為暫存在緩衝區的話,不使用磁碟也能保存資料
查看答案與解析

正確答案:B. 因為可以藉由減少次數,來壓低每次系統呼叫的固定負擔

系統呼叫每次都需要從使用者模式切換到特權模式、儲存暫存器、檢查引數、返回等處理,即使處理的量只有1位元組,也會產生這些固定的負擔。此外,進入核心還會擾亂快取與TLB的內容。若先暫存在緩衝區,再以數KB為單位一併寫出,系統呼叫的次數就會大幅減少,整體也會變快。要寫出的資料總量不變,最終也會寫入磁碟。

  • A. 要寫出的資料總量不會改變。
  • B. 正確。藉由減少次數來壓低每次的固定負擔。
  • C. 最終仍會寫出到磁碟。
練習這個領域 前往領域頁面

作業系統與硬體的其他題目

  1. CPU設置特權模式(核心模式)與使用者模式,主要目的為何?
  2. 應用程式請求作業系統進行檔案讀寫等操作的機制稱為什麼?
  3. 上方RISC-V程式碼最後的ecall指令被執行時,會發生下列何事?
  4. 關於中斷與例外的差異,下列何者是一般的說明?
  5. 下列何者與指令的執行無關,且發生時間並不固定,屬於非同步事件?

這個領域的比較