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

看板Soft_Job作者 (rosemary)時間11年前 (2013/04/17 23:40), 編輯推噓16(16025)
留言41則, 19人參與, 最新討論串1/1
最近跟同事討論到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

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

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

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

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

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

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

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

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

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

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

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

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

04/18 00:36, , 13F

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

04/18 00:55, , 15F
兩者都怪怪的
04/18 00:55, 15F

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

04/18 01:02, , 17F
兩的都有
04/18 01:02, 17F

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

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

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

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

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

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

04/18 02:49, , 24F
1才是對的
04/18 02:49, 24F

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

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

04/18 13:57, , 27F
第一種比較接近
04/18 13:57, 27F

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

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

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

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

04/18 19:25, , 32F
都不嚴謹 1好一點
04/18 19:25, 32F

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

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

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

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

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

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

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

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

04/20 01:11, , 41F
每個老師不一樣囉...
04/20 01:11, 41F
文章代碼(AID): #1HRi9M6y (Soft_Job)