virtual-address-space

    0熱度

    1回答

    這更大的是從考試的一個問題: 這段代碼總是工作? 的答案是: 的if語句檢查「STR」的虛擬地址指向一個頁面的開始,才把的strcpy應該被執行,它會工作,因爲整個頁面是此進程訪問。 任何人都可以請解釋我這個模棱兩可的答案?非常感謝你 int main() { char *str ; str = (char*) malloc (sizeof(char)*4); if

    1熱度

    1回答

    在線閱讀似乎對'虛擬內存'一詞有些混淆。它似乎描述了兩個概念,一個是每個進程都有自己的虛擬地址空間,另一個是能夠分頁到次要驅動器的想法。我假設幾乎所有新操作系統都實現了「兩者」。 我的問題是,這兩個概念是否必須一起實施?在網上尋找信息時,他們似乎總是一起提到,但是有可能沒有其他信息? 例如,我知道我可以在我的系統上禁用交換文件,因此每個進程仍具有自己的虛擬地址空間,並且仍在實現虛擬內存,但不會分頁

    1熱度

    1回答

    我知道這個問題已經被問了很多次了,但我仍然覺得我很困難。 Given: physical memory: 2^20 32-bit system page size: 2^10 我需要確定物理和虛擬地址的外觀以及計算頁面大小。 我不知道我有什麼是正確的,但是這是我迄今爲止得到: ->Virtual address would look like (22 bits specifying pa

    0熱度

    1回答

    我學習了一個測試,我有以下問題虛擬地址: 在ELF頭據說該文件的入口點是在0x8049058 代碼: section .data x: dd 3 _start: mov ecx, [x] ... ... ... ;more code 問:運行時x的虛擬地址是什麼? 正確的答案是0x0849054 有人請澄清這一點? 如果x會跟在後面,它仍然會

    0熱度

    1回答

    爲什麼elf的入口點是0x8048320.從This問題來看,它是操作系統內核用來映射進程的虛擬地址。但,進程映射(在x86處理器中)的虛擬地址爲0xc0000000(用戶空間較低,3GB,內核空間較高,1GB)。現在這個0x8048320起點地址背後的理論是什麼。它不應該是0c0000000h ?? 問候,

    -1熱度

    1回答

    感謝。 我很新的手臂和計算機體系結構一般很抱歉,如果這是一個基本的問題。 我花了很多時間閱讀和學習的MMU和虛擬到物理地址的轉換。我也學習了地址空間。只是爲了確保所有的io外設(如以太網和USB)都有自己的地址以及外部RAM和ROM的權利?所以我想知道地址值,所以我閱讀這個PDF文檔,在這裏:http://infocenter.arm.com/help/topic/com.arm.doc.den0

    0熱度

    1回答

    當我運行程序'A'時,堆棧和虛擬地址被改變,雖然 我運行相同的程序'A'。 我知道堆棧的虛擬地址沒有在 可執行文件(elf格式)中定義。他們是可變的東西。我可以通過'readelf -l'命令檢查出來。 但是, 爲什麼kernal每次都必須更改堆棧的地址,儘管運行相同的程序? 這是我爲什麼這樣問的原因。 我正在製作一個簡單的進程模擬器。 我試圖效仿在intel cpu環境(64位)raspbian

    0熱度

    1回答

    任何人都可以解釋WEC7(Windows Embedded Compact 7)中的地址間隔(虛擬/物理)嗎? 和虛擬到物理地址映射的例子?

    0熱度

    1回答

    我們假設我們有4 GiB的RAM,並且我們使用4 kiB的頁表大小和32位地址。 我的計算後,我得到了: 我們只能解決2^32個地址的最大; 每頁表共有2^20個條目; 總共有4 GiB/4 kiB = 1048576頁。 但我不明白的是,如果一個頁表有2^20個條目,我們已經用這個頁表覆蓋了所有可能的地址。 如果每個進程都有自己的頁面表,可能性如何?那麼應該可以在多個頁面表上使用相同的物理地址,

    0熱度

    1回答

    據我所知,虛擬索引虛擬標記的緩存,這裏我們有一個虛擬地址分爲頁碼和頁面偏移量。我們使用這個頁碼來獲取緩存塊。如果存在高速緩存未命中,我們使用TLB進行地址轉換並從主存儲器中獲取適當的高速緩存塊。 我的疑問是這裏的「索引」這個詞的含義是什麼?這是緩存線的方式嗎?什麼是虛擬標籤的含義? 謝謝。