Re: [問題] virtual memory的疑惑

看板C_and_CPP作者 (恋さや)時間15年前 (2010/07/09 14:18), 編輯推噓3(3014)
留言17則, 4人參與, 最新討論串2/2 (看更多)
根據 tinlans 大大的推文, 不同的行程的記憶體佈局大概是這樣 : <<----------------虛擬記憶體----------------->> 實體記憶體 ┌──┐ ┌─────┐ 0xFFFFFFFF │ │←──────┤ │ │ │ │ 系統 │ │ │ │ ( 1 G ) │ │ │←──┐ │ │ └──┘ │ └─────┘ 0xC0000000 │ │ Process1 Process2 Hard Disk │ ┌─────┐0xBFFFFFFF ┌─────┐0xBFFFFFFF ┌──┐ └─┤ │ │ │ │ │←─┐ │ 行程 │ │ 行程 │ │ │ │ │ ( 3 G ) │ ┌──┤ ( 3 G ) │ │ │←┐└──┤ │ │ │ │ └──┘ │ └─────┘0x00000000│ └─────┘0x00000000 └───────────────┘ 想請問一下, 如果像上面這種架構, 不同行程的虛擬記憶體對映是不 是更複雜了 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115 ※ 編輯: loveme00835 來自: 140.121.197.115 (07/09 22:24)

07/09 22:26, , 1F
你要做IPC?
07/09 22:26, 1F

07/09 22:28, , 2F
只是感覺好奇而已, 因為虛擬記憶體位址相同, 不知道該
07/09 22:28, 2F

07/09 22:28, , 3F
怎麼映射
07/09 22:28, 3F

07/09 22:29, , 4F
實際上是分頁交換而已吧 看你用多少
07/09 22:29, 4F

07/09 22:42, , 5F
kernel space 的 1G 是從後面推回來的。
07/09 22:42, 5F

07/09 22:44, , 6F
至於 share memory 做法很多,像是把 process 的 page
07/09 22:44, 6F

07/09 22:44, , 7F
對應到同一個 frame 上。
07/09 22:44, 7F

07/09 22:45, , 8F
如果是從後面推過來, 0 不就算是行程獨有的嗎 ?
07/09 22:45, 8F
※ 編輯: loveme00835 來自: 140.121.197.115 (07/09 22:46) ※ 編輯: loveme00835 來自: 140.121.197.115 (07/09 22:50)

07/09 22:51, , 9F
我笨了... 謝謝各位大大的指教, 又上了一課 :)
07/09 22:51, 9F

07/09 22:55, , 10F
從後面推回來又沒差。不過並不是所有 OS 都是 3G/1G,
07/09 22:55, 10F

07/09 22:55, , 11F
我記得 windows 是 2G/2G,所以板子上太多東西的時候可以
07/09 22:55, 11F

07/09 22:55, , 12F
最多啃掉 2G 的空間,讓你插 4G 只有 2G 能用。
07/09 22:55, 12F

07/09 22:57, , 13F
原來如此~
07/09 22:57, 13F

07/09 23:08, , 14F
windows預設是2G/2G,不過記得能調成3G/1G
07/09 23:08, 14F

07/09 23:19, , 15F
這問題丟 CSSE 板問或許會有更好的解答。畢竟我的主場
07/09 23:19, 15F

07/09 23:19, , 16F
並不在 Linux 和 Windows,而是在 FreeBSD。更細節的東西
07/09 23:19, 16F

07/09 23:19, , 17F
問我也沒用,我講的也未必準。
07/09 23:19, 17F
文章代碼(AID): #1CDo_CGO (C_and_CPP)
文章代碼(AID): #1CDo_CGO (C_and_CPP)