==> 在 FreeF1y.bbs@ptt.cc (ㄝ夫嗄一一ㄝ夫歪) 的文章中提到:
> ※ 引述《bert.bbs@bbs.csie.ncu.edu.tw (哇哩咧...)》之銘言:
> : TSR 不結束程式的話怎麼能叫做 TSR?
> 可能我不太了解DOS的運作方式吧!?
> 我知道TSR的運作原理是把原本的Interrupt Vector Table取代掉
> 然後再把自己留在記憶體中
> 關於留在記憶體的方法,我查到的資料是說
> DOS裡面有一個指標,負責標示出可用的記憶體的開頭
> 然後每次程式Load進來就從那個位置開始存
> 而TSR常駐記憶體的方法就是把標示可用記憶體的指標往後移
> 使得程式的前半段留在記憶體中
> 這是原始網頁
> http://0rz.net/1c1pJ
> 而我的問題是
> 這樣的機制,為什麼一定要程式結束才能完成?
> 只是移動一個指標而已,應該不用一定要結束程式吧
1. 我想你被「結束」這兩個字誤導了。TSR 其實沒有結束,
它仍然「繼續執行」。
2. 之所以有 TSR 的關念, 是因為 DOS 不是多工作業系統,
你一次只能跑一個程式, 程式結束才能再跑下一個程式。
如果你要程式 A 在背景跑, 以便再跑程式 B, 那麼 A
就必須是 TSR 程式。
> 所以我的問題應該是說
> 「有什麼方法可以把程式常駐在記憶體之後不結束的呢?」
> 所以請不要再跟我說因為它叫TSR所以一定要結束..
> 以上
> 如果我的觀念有任何錯誤,還煩請指正
> 這部分我只是個初學者,不好意思
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>