主存
物理記憶體,計算機的高速數儲存區域,動態隨機訪問記憶體(dram)。
常駐記憶體
當前處於主存中的記憶體。
虛擬記憶體
乙個抽象的主存概念,它幾乎是無限的和非競爭性的。虛擬記憶體不是真實的記憶體。他向每個程序和核心提供巨大的、線性的而且私有的位址空間。它簡化了軟體開發,把物理記憶體的分配交給作業系統管理。它也支援多工,因為虛擬位址空間被設計成分離的,而且可以超額訂購,即使用中的記憶體可以超出主記憶體的容量。
過度提交
允許分配超過系統可以儲存的記憶體————超過物理記憶體與交換裝置的總和。它依賴於按需換頁以及程式通常不會使用分配給它們的大部分記憶體。有了過度提交,應用程式提交的記憶體請求會成功。應用程式開發人員能夠慷慨地分配記憶體並按需稀疏使用,而不是謹慎地分配記憶體以控制在虛擬記憶體的限額內。
段標記為特殊用途的一塊記憶體區域。
匿名記憶體
無檔案系統位置或者路徑名的記憶體,它包括程序位址空間的工作資料,稱作堆。
位址空間
記憶體上下文。每個程序和核心都有對應的虛擬記憶體位址空間
頁作業系統和cpu使用的記憶體單位。它一直以來是4kb或8kb,現代處理器允許多種頁大小以支援更大的頁面尺寸
缺頁無效的記憶體訪問。使用按需虛擬記憶體時,這是正常事件。
嚴重缺頁
需要訪問儲存裝置的缺頁,例如訪問未快取對映到記憶體的檔案
換頁將頁面換入和調出記憶體,它們分別被稱為頁面換入和頁面換出。與交換整個程式不同,由於頁的尺寸相對較小,換頁是精確管理和釋放主存的手段
按需換頁
按需換頁的作業系統將虛擬記憶體按需對映到物理記憶體。這會把cpu建立對映的開銷推遲到實際需要或者訪問時,而不是初次分配這部分記憶體時。
虛擬記憶體和按需換頁的結果是任何虛擬記憶體頁都可能處於如下狀態:
a:未分配
b:已分配,未對映(未填充並且未缺頁)
c:已分配,已對映到記憶體(ram)
d:已分配,已對映到物理交換空間(磁碟)
如果系統記憶體壓力而換出頁就會到達狀態d
狀態b到c就是缺頁
如果需要讀寫磁碟就是嚴重缺頁。否則輕微缺頁
常駐記憶體大小(rss):已經分配到主頁c的大小
虛擬記憶體大小:b + c + d
字長處理器可能會支援多種字長,例如32位和64位,這樣兩種應用程式可以執行。位址空間受限於字長的定址空間,因此32位位址放不下需要4gb以上的應用程式,必須用64位或更大的字長來編譯。
交換linux中交換指頁面轉移到交換裝置(遷移交換頁)。
交換出乙個程序,要求程序的所有私有資料必須被寫入交換裝置,包括執行緒結構和程序堆(匿名資料)。源於檔案系統而且沒有被修改的資料可以被丟棄,需要的時候再從原來的位置讀取。
由於程序的一小部分元資料總是常駐於核心記憶體中,核心仍然能知道已交換出的程序。至於將要哪個程序交換回來,核心會優先考慮執行緒優先順序、磁碟等待時間以及程序的大小。長期等待和較小的程序享有更高優先順序。
交換嚴重影響效能,因為已經交換出的程序需要很多磁碟io才能重新執行
分配器當虛擬記憶體處理多工物理記憶體時,在虛擬位址空間中實際分配和記憶體堆放通常由分配器來處理。使用者態庫或者核心程式向程式設計師提供簡單的記憶體使用介面。分配器對效能有顯著明顯的影響,乙個系統通常會提供多個可選擇的使用者態分配器庫。分配器可以利用包括執行緒級別物件快取在內的技術以提高效能,但是如果分配器變碎並且損耗變高,它們也會損耗效能。
術語 堆 記憶體 ,棧 記憶體
堆表示程式可用的記憶體區,也叫動態記憶體區。堆記憶體的分配與釋放次序是隨機的,這就是說,如果你按次序分配三塊記憶體,那麼到時並不按分配時的次序釋放記憶體。堆管理器會負責所有操作,你只需簡單地使用getmem 函式請求新記憶體或呼叫constructor 建立物件,delphi 會返回乙個新的記憶體塊...
5 2 術語和概念
關係 relationship 是事物之間的聯絡。在物件導向的建模中,最重要的 3 中關係是 依賴 泛化和關聯。在圖形上,把關係圖畫成一條線,並用不同的線區別關係的種類。5.2.1 依賴 dependency 是一種使用關係,說明乙個事物 如類 window 使用另乙個事物 如類event 的資訊和...
Bazel 概念和術語
目錄簡介 workspace,packages and targets 工作空間 workspace 倉庫 repositories 包 packages 目標 targets 標籤 labels 標籤的詞彙規範 lexical specification of a label rules buil...