CPU定址?為什麼需要虛擬位址空間?

2021-10-09 16:58:48 字數 422 閱讀 7324

cpu定址:現代處理器使用的是一種稱為虛擬定址的定址方式。使用虛擬定址,cpu需要將虛擬位址翻譯成實體地址,這樣才能訪問到真實的物理記憶體。實際上完成虛擬位址轉換為實體地址轉換的硬體是cpu中含有乙個被稱為記憶體管理單元的硬體。

1. 使用者可以訪問任意的記憶體,定址記憶體的每個位元組,這樣容易破壞作業系統,造成作業系統崩潰。

2. 想要同時執行多個程式特別困難。

1. 程式可以使用一系列相鄰的虛擬位址來訪問物理記憶體中不相鄰的大記憶體緩衝區。

2. 程式可以使用一系列虛擬位址來訪問大於可用物理記憶體的記憶體緩衝區。當物理記憶體的**量變小時,記憶體管理器會將物理記憶體頁儲存到磁碟檔案。

3. 不同程序使用的虛擬位址彼此隔離。乙個程序中的**無法更改由另一程序使用的物理記憶體。

為什麼出現虛擬位址,這個東西

出現虛擬位址,實體地址,對映,這些名詞的根本原因是 程式是一行一行的往下執行的,當程式執行完後,pc 會自動加1,然後程式會自動往下執行,所以要求我們的程式要放在連續的位址空間上,但是呢,這個要求很難達到,根據,任何問題都可以通過新增乙個層次來解決 這個定論,我們可以這樣,在實體地址和cpu 之間新...

程序虛擬位址為什麼是4G大小?

1 建立乙個程序時,作業系統會為該程序分配乙個 4gb 大小的虛擬 程序位址空間。之所以是 4gb 是因為在 32 位的作業系統中,乙個指標長度是 4 位元組 32位 2的32次 方個位址定址能力是從 0x00000000 0xffffffff 即為 4gb 大小的容量。4g 指的是最大的定址空間為...

為什麼CPU需要時鐘才能工作

cpu裡可以粗略的認為是很多很多很多小電容。充滿電了算1,沒充電算0。每次計算就是這些小電容翻來覆去的充電放電。很多小電容組成乙個個基本的模組,比如輸入0011輸出0100 但從輸入0011到實際輸出0100是有乙個延遲的。因為前面說了,電容要充電放電,這個需要時間。這些小模組各種連線,組成複雜的功...