[閒聊] 虛擬記憶體的問題

看板 Soft_Job
作者 rosemary0401 (rosemary)
時間 2013-04-17 23:40:04
留言 41則留言 (16推 0噓 25→)

最近跟同事討論到virtual memory的部分, 發現觀念不太一樣,對virtual memory有兩種不同的說法, 第一種說法: virtual memory就是硬碟,當main memory不夠時, OS會將main memory中的一些page移到硬碟中, 當程式用到這些page時,會再將這些page從硬碟中移到main memory裡。 簡單說就是,硬碟的一部分會當作memory使用,但因為硬碟不是真正的memory 故稱作virtual memory。 第二種說法: virtual memory和physical memory是相對的, physical memory就是你實體機器所擁有的memory, 比方說你的平台插了一條2G的memory,那physical memory就是2G。 而virtual memory為process所認知的memory, 每個process都認為自己擁有4G的空間(依OS規定),而且address從0開始。 而OS會負責將process認知的virtual memory對應到真實的physical memory。 請問哪個說法才是對的呢? -- ◆ From: 122.116.153.199
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1366213206.A.1BC.html

Ting1024:兩種都對阿...前者以硬體面考量 04/17 23:42

Ting1024:後者以OS的角度來考量..何錯之有咧! XD 04/17 23:42

Ting1024:或者說前者是實做面,後者是理論面 04/17 23:43

larbin:第二種叫virtual address, virtual memory實作VAS的方法 04/17 23:45

littleshan:後者才是對的,前者是paging而這只是VM的一種應用 04/17 23:49

littleshan:VM還可以做到MMIO或是多process共享同樣的code section 04/17 23:51

littleshan:這點在第一個說法是看不出來的 04/17 23:51

snaketsai:看OS怎麼做 通常只有不夠的狀況會作writeback吧? 04/17 23:52

erspicu:有點像是瞎子摸象 各摸到一塊 04/18 00:20

erspicu:把1&2合併起來 大概就是比較完整的論述了 04/18 00:21

purpose:Virtual memory 只是包含硬碟參與,怎麼會就是硬碟 04/18 00:31

genius945:第一則說法是根據算盤本吧,印象中書上只有提到這樣 04/18 00:35

erspicu:http://en.wikipedia.org/wiki/Virtual_memory 04/18 00:36

erspicu:嚴格說起來兩個說法似乎都有不足的地方 04/18 00:37

carlcarl:兩者都怪怪的 04/18 00:55

carlcarl:不過我覺得後面的描述比較接近 04/18 00:58

chchwy:兩的都有 04/18 01:02

indexcome:2比較接近。 04/18 01:02

littlebau:第一種才是對的,第二種叫memory space. 04/18 01:18

tonyhsie:純好奇 您跟同事兩位皆非資工體系出身的嗎? 04/18 01:36

erspicu:其實爭這種東西還滿無聊的 課本翻一下或是GOOGLE一下就好 04/18 01:37

erspicu:雖然我課本剛找 似乎已經拿去丟了xd.... 04/18 01:37

erspicu:應該是工作太閒 沒事情找事情來辯論 04/18 01:38

mayasky:1才是對的 04/18 02:49

i386:第二種應該是說virtual address和physical address 04/18 09:33

ggg12345:第一種說的是swap system但可併用paging技術,做在file上 04/18 11:37

IrisXIII:第一種比較接近 04/18 13:57

ggg12345:os教科書說的是第二種,有MMU硬體支援才有高效的虛擬記憶! 04/18 15:32

ggg12345:一個指令opcode在前page,operand在另個page沒進來,那CPU 04/18 15:36

ggg12345:要如何處理做到半途的這個指令?paging技術還要硬體支援! 04/18 15:45

eva19452002:我怎麼覺得1才是正確的 04/18 18:32

Murasaki0110:都不嚴謹 1好一點 04/18 19:25

yakimo:2是對的 1叫 demand paging通常和 VM 一起用 但不是 VM... 04/18 21:41

ggg12345:電腦的虛擬記憶都被P.J.Denning定調為2的demand page! 04/18 21:52

ggg12345:BSD UNIX是最早把UNIX的swap disk跟VM page合併才有1說法 04/18 21:57

mayasky:很多人沒搞清楚memory space和 memory的差別^^|| 04/19 02:25

mayasky:(memary)address space和memory不一樣的 04/19 02:28

mayasky:發宏願..老師讓我開始寫PAPER我就來詳解這篇... 04/19 02:30

mayasky:上面我MEMORY拼錯..先自炮一下 04/19 02:31

ggg12345:寫論文只是著作,不必需要老師批准的!老師只煩惱內容亂寫! 04/19 11:02

mayasky:每個老師不一樣囉... 04/20 01:11

您可能感興趣