目錄
在這張圖中,介紹了記憶體的儲存結構,分別是:
...
// data stored in data segment
int x =
100;
intmain()
heap 堆
bss segment
data segment
text segment
在上述**中,已經有了詳細的注釋每個資料儲存到了**。但是仍有幾點要說明一下。
^_^
由於本人作業系統學的不是很好,所以這裡只能簡單說一下實驗可能會涉及到的知識。後續我會多了解這方面的內容放在部落格上。我們知道,實體地址(physical address)是unique的,基於你的物理儲存器ram。
如果乙個process在使用一部分,另乙個人在同一時間就不可以使用,否則會產生矛盾。
但當討論process中的記憶體位址時,就會涉及到virtual address,虛擬位址。
每乙個process都有乙個自己專屬的virtual addrss,比如如圖中v1、v2的空間大小均為0~4g,它們都可以存在這樣乙個位址0x5000。虛擬位址和實體地址之間存在乙個對映機制,來把虛擬位址對映到實體地址中,這個過程由os完成。
儘管他們使用了相同的虛擬位址,但是對映到了不同的實體地址。
具體的細節我會在後續學習中繼續了解,並且整理到部落格中。這時就存在乙個問題,如果v1中的一塊虛擬位址在對映不能找到實體地址,這個就成為valid address
,如果有指令想要從這裡獲取資料,程式可能會crash掉,必須能對映到實體地址才能訪問這一塊虛擬位址。計算機記憶體
1.1 計算機硬體記憶體架構。計算機cpu central processing unit 和記憶體的互動是最頻繁的,記憶體是我們的快取記憶體區。使用者磁碟和cpu的互動,而cpu運轉速度越來越快,磁碟遠遠跟不上cpu的讀寫速度,才設計了記憶體,使用者快取使用者io等待導致cpu的等待成本。但是隨著...
計算機記憶體定址
摘自 1 基本概念 cpu段式管理 段式管理的基本原理是指把乙個程式分成若干個段 segment 進行儲存,每個段都是乙個邏輯實體 logical entity 乙個使用者作業或程序所包含的段對應乙個二維線形虛擬空間,程式通過分段 segmentation 劃分為多個模組,故可以對程式的各個模組分別...
計算機記憶體管理
在計算機中,儲存區域主要分為 他們的執行速率自下而上加快,與之相應的造價越高。其中,硬碟的執行效率最慢,暫存器的效率最快。在c 中,記憶體主要分為五個區,分別是 區是用來儲存程式的所有 以及字串常量等在編譯期間就能確定的值,在程式的整個生命週期內,在常量資料區的資料都是可用的。在這個區域內,所有的資...