日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux操作系統(tǒng)的內(nèi)存使用機制研究

linux的產(chǎn)生與發(fā)展,更多的應(yīng)用與服務(wù)器,那么對于linux的各個管理機制要非常清楚,一個完整的linux系統(tǒng)主要有存儲管理,內(nèi)存管理,文件系統(tǒng)和進程管理等幾方面組成,貼出一些以前學(xué)習(xí)過的一個很好的文章 。與大家共享!
以下主要說明swap和buffer cache機制
Linux支持虛擬內(nèi)存(virtual memory),虛擬內(nèi)存是指使用磁盤當(dāng)作RAM的擴展,這樣可用的內(nèi)存的大小就相應(yīng)地增大了 。內(nèi)核會將暫時不用的內(nèi)存塊的內(nèi)容寫到硬盤上,這樣一來,這塊內(nèi)存就可用于其它目的 。當(dāng)需要用到原始的內(nèi)容時,它們被重新讀入內(nèi)存 。這些操作對用戶來說是完全透明的;Linux下運行的程序只是看到有大量的內(nèi)存可供使用而并沒有注意到時不時它們的一部分是駐留在硬盤上的 。當(dāng)然,讀寫硬盤要比直接使用真實內(nèi)存慢得多(要慢數(shù)千倍),所以程序就不會象一直在內(nèi)存中運行的那樣快 。用作虛擬內(nèi)存的硬盤部分被稱為交換空間(swap space) 。
一般,在交換空間中的頁面首先被換入內(nèi)存;如果此時沒有足夠的物理內(nèi)存來容納它們又將被交換出來(到其他的交換空間中) 。如果沒有足夠的虛擬內(nèi)存來容納所有這些頁面,Linux就會波動而不正常;但經(jīng)過一段較長的時間Linux會恢復(fù),但此時系統(tǒng)已不可用了 。
有時,盡管有許多的空閑內(nèi)存,仍然會有許多的交換空間正被使用 。這種情況是有可能發(fā)生的,例如如果在某一時刻有進行交換的必要,但后來一個占用很多物理內(nèi)存的大進程結(jié)束并釋放內(nèi)存時 。被交換出的數(shù)據(jù)并不會自動地交換進內(nèi)存,除非有這個需要時 。此時物理內(nèi)存會在一段時間內(nèi)保持空閑狀態(tài) 。對此并沒有什么可擔(dān)心的,但是知道了是怎么一回事,也就無所謂了 。
許多操作系統(tǒng)使用了虛擬內(nèi)存的方法 。因為它們僅在運行時才需要交換空間,以解決不會在同一時間使用交換空間,因此,除了當(dāng)前正在運行的操作系統(tǒng)的交換空間,其它的就是一種浪費 。所以讓它們共享一個交換空間將會更有效率 。
注意,如果會有幾個人同時使用這個系統(tǒng),他們都將消耗內(nèi)存 。然而,如果兩個人同時運行一個程序,內(nèi)存消耗的總量并不是翻倍,因為代碼頁以及共享的庫只存在一份 。
Linux系統(tǒng)常常動不動就使用交換空間,以保持盡可能多的空閑物理內(nèi)存 。即使并沒有什么事情需要內(nèi)存,Linux也會交換出暫時不用的內(nèi)存頁面 。這可以避免等待交換所需的時間:當(dāng)磁盤閑著,就可以提前做好交換 。
可以將交換空間分散在幾個硬盤之上 。針對相關(guān)磁盤的速度以及對磁盤的訪問模式,這樣做可以提高性能 。
高速緩沖
與訪問(真正的)的內(nèi)存相比,磁盤的讀寫是很慢的 。另外,在相應(yīng)較短的時間內(nèi)多次讀磁盤同樣的部分也是常有的事 。例如,某人也許首先閱讀了一段e-mail消息,然后為了答復(fù)又將這段消息讀入編輯器中,然后又在將這個消息拷貝到文件夾中時,使得郵件程序又一次讀入它 。或者考慮一下在一個有著許多用戶的系統(tǒng)中 ls命令會被使用多少次 。通過將信息從磁盤上僅讀入一次并將其存于內(nèi)存中,除了第一次讀以外,可以加快所有其它讀的速度 。這叫作磁盤緩沖(disk buffering),被用作此目的的內(nèi)存稱為高速緩沖(buffer cache) 。
但是,由于內(nèi)存是一種有限而又不充足的資源,高速緩沖不可能做的很大(它不可能包容要用到的所有數(shù)據(jù)) 。當(dāng)緩沖充滿了數(shù)據(jù)時,其中最長時間不用的數(shù)據(jù)將被舍棄以騰出內(nèi)存空間用于新的數(shù)據(jù) 。
對寫磁盤操作來說磁盤緩沖技術(shù)同樣有效 。一方面,被寫入磁盤的數(shù)據(jù)常常會很快地又被讀出(例如,原代碼文件被保存到一個文件中,又被編譯器讀入),所以將要被寫的數(shù)據(jù)放入緩沖中是個好主意 。另一方面,通過將數(shù)據(jù)放入緩沖中,而不是將其立刻寫入磁盤,程序可以加快運行的速度 。以后,寫的操作可以在后臺完成,而不會拖延程序的執(zhí)行 。

推薦閱讀