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系統程式設計 第二版
記憶體管理
|
315
這個共享的資料可能僅供讀取,或是可供讀取和寫入。當一個行程寫入一個經共享之可
供寫入的頁面時,有兩種情況可能會發生其中一種。其中最簡單的一種情況:核心允許
進行寫入操作,此狀況下,共享該頁面的所有行程都可以看到寫入操作的結果。允許多
個行程讀取或寫入一個經共享的頁面,通常需要經過一定程度的協調及同步化,若在核
心層級剛完成寫入操作,則共享資料的所有行程會立即看到結果。
另外,MMU 會攔截寫入操作以及產生一個例外事件;核心的回應是自動替進行寫入操
作的行程為該頁面建立一個新的副本,這讓寫入操作得以對新的頁面副本繼續進行。我
們稱此做法為
寫入時才複製
copy-on-write,常簡寫為 COW)。
2
事實上,允許多個行
程對共享的資料進行讀取操作,將可節省記憶體空間。當一個行程想要寫入一個共享的
頁面時,它馬上會收到該頁面之獨一無二的副本,這讓核心的行動好像是,行程具有它
自己私用的副本。因為 COW 是逐頁面進行的(page-by-page basis),採用此做法,一
個大型的檔案將可有效地讓許多行程所共享,而且個別的行程只會在它們寫入那些頁面
時,取得獨一無二的實體頁面。
記憶體範圍
核心會把頁面安排進區塊(block)以分享某些特性,例如存取權限。這些區塊稱為
mapping
)、
記憶體區域
memory area
)或
記憶體範圍
memory region
)。你可以
在每個行程中找到某些類型的記憶體範圍:
本文區段
text segment
)包含了一個行程的程式碼、字串字面值( ...
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