Linux 中直接 I/O 機制的介紹

來源:互聯網
上載者:User

Linux 中直接 I/O 機制的介紹

Linux 中直接 I/O 機制的介紹

 

黃 曉晨, 軟體工程師, IBM黃曉晨,IBM system Z 自動化支援人員軟體工程師。

 

簡介: 對於傳統的作業系統來說,普通的 I/O 操作一般會被核心緩衝,這種 I/O 被稱作緩衝 I/O。本文所介紹的檔案訪問機制不經過作業系統核心的緩衝,資料直接在磁碟和應用程式地址空間進行傳輸,所以該檔案訪問的機制稱作為直接 I/O。Linux 中就提供了這樣一種檔案訪問機制,對於那種將 I/O 緩衝存放在使用者地址空間的應用程式來說,直接 I/O 是一種非常高效的手段。本文將基於 2.6.18 版本的核心來討論 Linux 中直接 I/O 的技術的設計與實現。

發布日期: 2010 年 12 月 30 日
層級: 初級
訪問情況 : 20644 次瀏覽
評論: 2 (查看 | 添加評論 - 登入)

平均分 (35個評分)
為本文評分

 

直接 I/O 的動機

在介紹直接 I/O 之前,這一小節先介紹一下為什麼會出現直接 I/O 這種機制,即傳統的 I/O 操作存在哪些缺點。

什麼是緩衝 I/O (Buffered I/O)

緩衝 I/O 又被稱作標準 I/O,大多數檔案系統的預設 I/O 操作都是緩衝 I/O。在 Linux 的緩衝 I/O 機制中,作業系統會將 I/O 的資料緩衝在檔案系統的頁緩衝( page cache )中,也就是說,資料會先被拷貝到作業系統核心的緩衝區中,然後才會從作業系統核心的緩衝區拷貝到應用程式的地址空間。緩衝 I/O 有以下這些優點:

  • 緩衝 I/O 使用了作業系統核心緩衝區,在一定程度上分離了應用程式空間和實際的物理裝置。
  • 緩衝 I/O 可以減少讀盤的次數,從而提高效能。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.