看板 Soft_Job 關於我們 聯絡資訊
最近跟同事討論到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。 請問哪個說法才是對的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.153.199
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:嚴格說起來兩個說法似乎都有不足的地方 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