請教熟悉 RAMDisk 的高手 ...

wesley_cch wrote:
你直接把 page file 關掉不就好了麼?


但是有些程式完全沒有page file給他用時會有問題.
如果沒有用到這些搞怪的軟體, 倒是也有很多人把page file關掉然後用的很快樂的.
strawinsky wrote:
應該是說有些程式就算...(恕刪)


唉呦,不是這樣
Ramdisk早在DOS 2.0那個年代就出現啦!

當時PC x0286盛起,主流的作業系統像是MS-DOS 3.X搭載640KB主記憶體+20MB的龜速硬碟就能跑的嚇嚇叫.
但受到DOS系統的限制,只能在640KB下運跑主程式.
後來,隨著軟硬體技術的成熟,MS-DOS 4.0 開始支援EMM/XMS記憶體技術,令MS-DOS作業系統可以使用1MB以上的記憶體.
發展至MS-DOS 5加入了許多記憶體管理的程式,如 EMM386、MEM 等等,當時,許多軟體都以如何設定MS-DOS記憶體配置為應用發展的方向(ex. Qemm386). 許多電腦玩家也因此日夜鑽研如何從有限的640KB下榨出更多的記憶體出來執行程式/遊戲軟體,

但是就算軟體怎麼跑,就是塞不滿記憶體,剩下的記憶體不用就太可惜了,於是乎...
在當時,RamDisk最常被玩家們拿來掛載進開機片,讓你的電腦一開機,便多一顆神級速度的硬碟.
它的出現,適時地造福廣大的DOS使用者.


Ramdisk 在Win95那個年代多數也是拿來掛進開機片裡頭,作救援使用.
到了XP,Ramdisk的技術已經被玩家進化來製作一顆高速的"閃碟(Flash Disk)",可以用於讀取快取資料,因為這些快取資料往往是暫時性的,用過即丟
或著是需要反覆存取的,玩家們使用Ramdisk來掛載page file,讓資料在記憶體中直接快速交換的同時也延長了硬碟磁頭的壽命.

Pagefile是可以關閉的,Windows XP本身也會自動保留一些記憶體讓作業系統使用,但是管理程式寫得不是很好.
而偏偏某些軟體只要一執行就會預先佔用大量的記憶體空間,為了避免系統變慢甚至崩潰,才會有FreeRAM這類軟體的需求出現.
OS裡面有學到

關於這一部份我也有特地去再問老師



首先,無論什麼程式,都分為code body和 data seqment
code body是不會被更改的,data seqment可能會被更改
如果你要從硬碟取出來一個程式,你就要注意他的哪部份是需要被寫回去,哪些是不用



當我們要執行程式時
以前的作法是,一次就要load全部上去,然後跑到程式的頭,開始run
雖然小程式可以,但是效率很差,而且遇到大程式>ram size怎麼辦?



虛擬記憶體(Visual memory)的使用,也就是鑒於以上的因素,發展出來的技術


如果我們有一個50mb的程式,但是只有25mb的ram
以上面的技術(一次要將程式整個放上去),因為放不下,所以就沒辦法了
故以前在寫程式的人,多半有限制程式的大小
所以說這個虛擬記憶體的解決方式是
如果主記憶體上面程式滿了,移到硬碟上虛擬記憶體去,所以記憶體又變成空的一塊
再load 程式上去,這樣就可以再執行下去了,這個動作稱為(Swapping)


又後來
因為這個swap一次要swap那麼多的程式
那一定很慢而且沒有效率
所以又有了Page table的技術

首先你要知道三個東西,TLB、PageTable和disk
速度上TLB>>PageTable>>>disk

TLB是PageTable的 cache

首先將主記憶體拿一塊作為Page table
並且將剩下的以page為單位
當我們需要執行程式時
就到先到TLB看有沒有我們要的A
沒有,就再看PageTable有沒有我們要的A
再沒有,就到硬碟去抓A,然後放到主記憶上面
接著將對映資訊存入TLB和PageTable

我沒有細講很多
有興趣請去看OS恐龍本…

另外我回答一下那個Gavotte的問題
我用的有兩套ramdisk
你所說的pagefie開機總是會回到c槽
只發生在這套
另一套SuperSpeed RamDisk Plus
就沒有這個問題(這家還有另一個產品叫super cache)


我試了十幾次的結果
我覺得是這套軟體"建置Ramdisk動作" 在"winxp 建pagefile"之後
所以會有這種後果發生


我的文章有提到這兩個軟體

http://www.mobile01.com/topicdetail.php?f=233&t=552760&last=5399969
> Ramdisk早在DOS 2.0那個年代就出現啦!

回想那時用 ramdisk 跑真是爽度一百,
以前的 floppy 跟 hd 存取真的是太慢了,

ms-dos 時是在 config.sys 掛 ramdrive.sys,
那有沒朋友知道現在的 windows ramdisk 是 "藏" 在哪啊?! 找不到 ...
wesley_cch wrote:
> Ramdi...(恕刪)

應該沒有附在裡頭,要去這裡下載
但是最大只能設定32MB, 而且需要搭配development tools.

其他的免費ramdisk,參考1
參考2,最大上限2GB
> 應該沒有附在裡頭,要去這裡下載

喔喔, 不是, 我的意思是說 Gavotte RAMDisk 這家伙安了以後是跑哪去了,
找遍了找不到 ...
為什麼會找不到?
去裝置管理員裡頭翻就有了
原來在這, 感謝, 怪了, 我之前用 "搜尋" 怎麼沒搜到 ...

對了, 剛又試了一下,
直接進去看是有這檔,
但在 C: 槽上按右鍵搜尋 rramdisk.sys 這個關鍵字還是搜不到,
可是直接在 C:\windows 目錄上按右鍵搜尋又找的到,
訥悶 .... 搜尋 C: 跟 C:\windows 居然結果不一樣.......第一次遇到....
算了, 不研究了, 無關緊要 ...
大概是你沒有把搜尋的進階選項裡面 "搜尋子資料夾"給打勾吧
> 大概是你沒有把搜尋的進階選項裡面 "搜尋子資料夾"給打勾吧

有啊, 不然找 c:\windows 就不會找到嘍....呵...
什麼系統, 隱藏什麼都都有開 ...

為了找這東西我突然想到,
他用 driver 的型式在跑,
所以從程序還有開機與服務, system.ini, win.ini, boot.ini 中都找不到影子,
如果是病毒或木馬也這樣安裝的話,
就挺麻煩了, 一般比較少會去注意到這種 driver ...
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!