Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
檔案 I/O
|
71
緩衝區在核心內部會被表示成
buffer_head
資料結構。此資料結構中記錄了與緩衝區有
關的各種中介資料,例如緩衝區是否已經遭到改變。其中還包含了一個指標,用於指向
實際的資料。此資料就擺在頁面快取區。於是緩衝區子系統與頁面快取區可以被整合在
一起。
Linux 核心早期的版本(2.4 之前)中,緩衝區子系統與頁面快取區是分開的,因此
會同時用到頁面快取以及緩衝快取區。這意味著,資料可能同時存在於緩衝快取區(遭
到改變的緩衝區)以及頁面快取區(被快取的資料)。當然,要讓兩個獨立的快取區達
到同步必須費一些功夫。Linux 核心自 2.4 版開始,統一使用頁面快取區,這是一個受
歡迎的改進。
Linux 的延後寫入功能以及緩衝區子系統,提供了快速寫入的能力,不過代價是電力中
斷時會有資料遺失的風險。為了免除此風險,有此疑慮以及關鍵的應用程式,可以採用
同步 I/O (本章稍早有討論)。
結語
本章介紹了 Linux 系統程式設計的基礎知識:檔案 I/O。在 Linux 之類的系統上,會儘
可能將一切表示成檔案,所以知道如何開啟、讀取、寫入以及關閉檔案相當重要。這些
都是典型的 Unix 操作,而且被包含在許多標準中。
下一章將介紹緩衝式 I/O 以及標準 C 程式庫的標準 I/O 介面。標準 C 程式庫不僅是方便
使用而已;在用戶空間中,緩衝式 I/O 為效能提供了重大的改進。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812