※ 引述《no@nospam.no (DJ)》之銘言:
> 阿信 wrote:
> > 一個 process 能定址的記憶體大小應該是4G,
> Yes, "能定址"的大小是4G, 但是一個執行緒"最高"能用到的(這意思
> 是在執行時後單一一次能直接使用,而不是用類似DOS舊時代的HIMEM
> 那種間接的切換搬移方式)是3G.
> 如果要另外寫碼去切換的話(不是直接定址去用),那麼"最高"可以
> 超過4G。原PO的情況是他的程式是從64-bit環境搬到32-bit環境,
> 並沒有另外寫切換的碼,所以我回答的也是針對他的情況。
感謝說明。
只是想請教的是寫碼去切換是什麼意思呢?例如寫一個程式,不斷allocate
其記憶體空間,還是說可以另外去allocate High MEM區段的位址空間
在寫kernel driver時,的確是可以allocate到High MEM的位置,
但User space的malloc或其它的function可以指定更高的位置嗎?
謝謝
> > 上頭的1G/3G是指kernel space和user space能使用到的位址。
> > 附帶一提的是Windows XP可以在boot.ini調整kernel space和user space
> linux和XP可以調(2/2, 3/1)但是都是小於上頭的3G,調了對原PO沒意義
是的,對原PO是沒意義的,只是是單純的補充 :-)
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: adsl-220-229-34-77.nh.sparqnet.net