方便檢視篇 記憶體

2021-07-14 17:33:18 字數 1052 閱讀 1683

虛擬記憶體就是作業系統對儲存的抽象,為每個程式提供乙個比實際物理記憶體大得多的位址空間。

虛擬位址到實體地址的轉換。

這種轉換時由硬體mmu

來完成的,作業系統採用的是頁式儲存,那麼會先查頁表,從頁表中查詢該虛擬位址對應的物理頁面,如果該虛擬位址是受保護則禁止訪問,或者該虛擬位址對應的物理頁面沒有在主存中那麼就發生缺頁中斷,將頁面由磁碟裝入對應的物理頁,並建立對映關係。

由於頁表太龐大,那麼會占用大量的記憶體,所以會將頁表分級,二級或者**頁表。

這樣可以採用將頂級的頁表常駐記憶體,然後將不常用的頁表放在磁碟上,但是這樣就存在查詢的效率降低,為此,加上了快取,將查詢到的結果和可能會用到的下乙個頁面對映關係放到快取中去,先查快取,未命中在查頁表。而這個快取通常也是硬體tlb

(翻譯快表)。

如果將新頁放到記憶體時沒有足夠的記憶體,會發生換頁,因此存在記憶體抖動問題。可以改善頁面替換演算法,或者增加記憶體,或者替換整個程序到磁碟。降低多道程式執行度數。

頁面替換演算法:

lru演算法的實現:

可以採用鍊錶也可以採用矩陣。

每個頁面被訪問就將頁面號對應的行置1

,列置0.

每行01

連線起來最小的值就是最近未被使用的。。

固定駐留集和非固定駐留集的含義。

分頁記憶體管理的缺點:

共享困難,因為乙個頁面上可能有**也可能有資料。乙個程序只能乙個虛擬位址空間。

分段管理:

分段管理就是將乙個程式按照邏輯單元分為多個程式段,比如常見的**段,資料段等。其中每個程式段都有乙個單獨的虛擬位址空間。

然後會有乙個段表,cpu

發出的位址也會劃分成頁號,頁內偏移。

段頁式記憶體管理:

程式分段,段內分頁。段號會通過暫存器來存放。不是通過虛擬位址來識別段號。

linux核心的記憶體管理:

段,頁,區,slab層。

slab層相當於乙個資料結構池,用來存放頻繁建立和釋放的資料結構。比如經常使用的

task_struct,

每個程序核心棧都是固定大小的,而且是並不大的。

高階記憶體和對映

單純只是為了方便檢視而已 CSS篇

1.css背景屬性 屬性描述 background 簡寫屬性,作用是將背景屬性設定在乙個宣告中。background attachment 背景影象是否固定或者隨著頁面的其餘部分滾動。background color 設定元素的背景顏色。background image 把影象設定為背景。backg...

Tostring記錄,方便自己檢視

c 貨幣2.5.tostring c 2.50 d十進位制數 25.tostring d5 00025 e科學型 25000.tostring e 2.500000e 005 f固定點 25.tostring f2 25.00g常規 2.5.tostring g 2.5n 數字2500000.tos...

安裝記錄貼,方便自己檢視

官網有三個版本 stable channel 穩定版 dev channel 開發版 beta channel 測試版 建議選擇穩定版進行開發 在安裝過程中選擇standard還是custom的時候,一定要選擇custom,可以修改android studio sdk的安裝位置。解決方案 1 進入f...