Re: [問題] 如何取得系統總記憶體的位置

作者: pizzafan (七情三想)   2014-11-02 18:30:47
已爬文
所以總結一下:
實體記憶體位置,還是由OS在分配控制,
而程式編譯器只能算是ask或取得虛擬addr,但未必是連續的!
這樣對嗎?
那萬一程式故意對記憶體request爆量,
OS也會自動做pagefile或什麼的(也就是把硬碟當做快取記憶體來操),
這樣對嗎?
作者: jacky1989   2014-11-03 18:31:00
1.不一定連續 2.我試過,記憶體用量會達100%,然後會頓
作者: dirkc (3781615)   2014-11-03 22:22:00
不確定你說「連續」的意思;paging本來多數的OS都會做,是實現虛擬記憶體的方式,但new或malloc內部還先有一層管理,然後才到OS;另外我對"實體"兩字老是想到MMU看到的physical位址
作者: LPH66 (-6.2598534e+18f)   2014-11-03 22:51:00
應該這麼說: OS 負責把這些在實體上可能是零散的空間整理成虛擬位址空間中的「連續」位址至於這些實體空間到底是在記憶體的何處抑或是磁碟的何處都只要 OS 知道就好, 應用程式不需要處理這種細節new / malloc 則又是蓋在虛擬位址空間上的記憶體管理

Links booklink

Contact Us: admin [ a t ] ucptt.com