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系統程式設計 第二版
136
|
第四章
如此可以儘量減少磁頭的移動。避免盲目地移動磁頭—從這裡到那裡並且反向移動,查
找整個磁碟—應該以平順、線性的方式移動磁頭。因為查找是磁碟 I/O 中代價最高的操
作,所以效能可以獲得改善。
對讀取操作的幫助
每個讀取要求必須傳回最新的資料。因此,如果所要求的資料並未出現在頁面快取區,
讀取行程必須遭到阻擋,直到可從磁碟讀取資料為止—這可能是一個冗長的操作。我們
將這種效能衝擊(performance impact)稱為
讀取延遲
read latency
)。
一個典型的應用程式可能會在短期間內發起數個讀取要求。因為每個要求是單獨同步化
的,所以後面的要求是否能完成,取決於前面的要求完成與否。現在假設要讀取一個目
錄中每個檔案。應用程式會開啟第一個檔案,對它讀取一個團塊,等待資料的到來,讀
取另一個團塊…等等,直到讀完整個檔案。然後應用程式會對下一個檔案重複以上操
作。這些要求會變成序列化(serialize):除非完成當前的要求,否則無法送出隨後的
要求。
這與寫入要求形成鮮明的對比,寫入要求(預定為非同步化的狀態)不需要發起任何
磁碟 I/O 直到未來的某個時間。因此,從用戶空間應用程式的觀點來看,寫入要求
stream
)不會妨礙磁碟的效能。此串流的行為只會讓讀取的問題加劇:因為寫入串
流會把持著核心和磁碟的關注不放。此現象稱為
寫入餓死讀取
writes-starving-reads
問題。
如果一個 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