記憶體管理 記憶體的簡介

2021-08-07 11:47:12 字數 557 閱讀 2308

32位機器具有4g的程式記憶體,這個記憶體並不是指實際的物理記憶體,而是虛擬記憶體這個虛擬記憶體並不是實際存在的。

我們知道乙個虛擬空間由一組頁對映函式將虛擬空間的各個頁對映至相應的物理空間,那麼建立乙個虛擬空間實際上並不是建立空間而是建立對映函式所需要的相應的資料結構,在i386 的linux下,建立虛擬位址空間實際上只是分配乙個頁目錄(page directory)就可以了,甚至不設定頁對映關係,這些對映關係等到後面程式發生頁錯誤的時候再進行設定。程式裝入記憶體,實際就是對映到了虛擬記憶體。

堆:堆是用來容納應用程式動態分配的記憶體區域,當程式使用malloc或new分配記憶體時,得到的記憶體來自堆裡。

可執行檔案映像:這裡儲存著可執行檔案在記憶體裡的映像。

保留區:保留區並不是乙個單一的記憶體區域,而是對記憶體中受到保護而禁止訪問的記憶體區域的總稱,例如,大多數作業系統裡,極小的位址通常都是不允許訪問的,如null。通常c語言將無效指標賦值為0也是出於這個考慮,因為0位址上正常情況下不可能有有效的可訪問資料。

php記憶體管理簡介

摘要 程式先建立乙個 a變數,然後賦值 a變數為 helloworld 然後建立 b變數,把 a變數賦值給 b變數.在這裡我們要思考的是,現在記憶體情況是怎樣的.php記憶體管理簡介 程式先建立乙個 a變數,然後賦值 a變數為 helloworld 然後建立 b變數,把 a變數賦值給 b變數.在這裡...

php記憶體管理簡介

程式先建立乙個 a變數,然後賦值 a變數為 helloworld 然後建立 b變數,把 a變數賦值給 b變數.在這裡我們要思考的是,現在記憶體情況是怎樣的.假如 a變數的記憶體占用為22位元組 假設值 的話,那 b占用多少位元組呢?22位元組?還是小於22位元組呢?答案是小於22位元組.那php是怎...

MMU記憶體管理單元簡介

mmu 全稱叫做 memory manage unit,也就是記憶體管理單元。在老版本的 linux 中要求處理器必須有 mmu,但是現在 linux 核心已經支援無 mmu 的處理器了。mmu 主要完成的功能如下 虛擬位址 va,virtual address 實體地址 pa,physcicala...