memory記憶體與swap記憶體之小解

2022-06-18 07:39:08 字數 1109 閱讀 5995

計算機記憶體分為物理記憶體與虛擬記憶體,這兩個記憶體分別對應memory記憶體與swap記憶體

memory記憶體:機器的物理記憶體,由ram晶元組成,讀寫速度低於cpu乙個量級,但是高於磁碟乙個量級,也就是cpu>memory>磁碟

swap記憶體:由磁碟代替的虛擬記憶體,在一定程度上解決了機器記憶體不足的問題,但是磁碟讀寫要比真正的物理記憶體慢的多。

當程式起來後,系統判斷是否有空閒的物理記憶體,如果有,直接將其調入物理記憶體執行,否則,根據優先順序,選擇程序交換到swap space等待或將資料寫入swap,待需要時再讀出。不過,對於使用者來說,這些都是透明的,客戶是感覺不到記憶體的限制的。

但是也會存在這樣的情況:物理記憶體有大量空閒狀態時,卻使用虛擬記憶體,這種情況出現的可能是因為先前乙個占用大量記憶體的程序使用物理記憶體執行,使得之後的程序只能使用虛擬記憶體,當占用大量物理記憶體的程序執行結束釋放資源之後,便空出了大量的物理記憶體,而交換到虛擬記憶體的程序、資料不會自動的交換到物理記憶體中去,便出現了這樣的情況。

檢視記憶體一般使用free命令

total:記憶體總數

used:已經使用的記憶體

free:空閒的記憶體

shared:多程序共享的記憶體,一般情況下,程序間不會共享記憶體

buffers:磁碟緩衝,指的是將要寫入磁碟的,是對寫操作進行集中執行的,目的是減少磁碟碎片以及反覆的磁碟尋道,如需要將多個字段寫入磁碟,在還沒完全讀完所有的字段時,將已讀的字段寫入緩衝區

cached:快取記憶體,指的是將要讀出的資料,cache是介於cpu和主記憶體之間的容量較小但速度很快的儲存器。快取是把讀取出的資料儲存起來,等下次讀取時,直接從快取中讀取,就不需要再讀磁碟,並且會根據讀取的頻繁度排序,將讀取頻繁的資料放到容易讀取的位置,不經常讀取的資料排到後面,直至清除快取。

-buffers/cache:  used-buffers-cached 是程式當前"真實使用"的"物理記憶體"的大小。

+buffers/cache: free+buffers+cached

而最後的swap是交換區的資訊,也就是我們上文提到的swap虛擬記憶體,linux的命令還是要經常敲才理解、記憶深刻,我也需要繼續學習!

Linux中Swap與Memory記憶體簡單介紹

在詳細介紹swap之前,我們需要知道的是計算機對記憶體分為物理記憶體與虛擬記憶體 注意虛擬記憶體和虛擬位址空間的區別 物理記憶體就是計算機的實際記憶體大小,由ram晶元組成的。虛擬記憶體則是虛擬出來的 使用磁碟代替記憶體。虛擬記憶體的出現,讓機器記憶體不夠的情況得到部分解決。當程式執行起來由作業系統...

CUDA記憶體型別memory

cuda儲存器型別 每個執行緒擁有自己的register and loacal memory 每個執行緒塊擁有一塊shared memory 所有執行緒都可以訪問global memory 還有,可以被所有執行緒訪問的唯讀儲存器 constant memory and texture memory ...

CUDA記憶體型別memory

cuda儲存器型別 每個執行緒擁有自己的register and loacal memory 每個執行緒塊擁有一塊shared memory 所有執行緒都可以訪問global memory 還有,可以被所有執行緒訪問的唯讀儲存器 constant memory and texture memory ...