Re: [問題] dos為何要有記憶體配置的中斷指令?

看板Programming作者時間17年前 (2007/04/11 20:32), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串10/24 (看更多)
> ==>發信人: jeunder.bbs@ptt.cc (), 信區: programming > ※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: > : > 其實最直接的原因就是為了要空出來給 child process. > : DOS 沒有 multi-process 或 multi-task 的概念. > 我沒說 dos 有 multi-process 或 multi-task 的概念. > dos 可以執行 single process, 並且還可以 create child process. (依此類推) > 你在 dos command line 下輸入的 command 就是由 command interpreter > 這個 process 負責處理的. > 如果你的 command 是要執行某個 program, 那麼 command interpreter > 會將記憶體空出, 然後執行你指定的 program. > 而這個 program 就是 command interpreter 的 child process. > 以前記憶體不夠用怎麼辦? 把程式切成幾個獨立的子執行檔 (child), > 然後再由主執行檔(parent)根據需求來決定要 load 哪個 child. > 聽說這在以前被稱為 overlay, 當然不像現代 OS 的 swap-out 那麼先進囉. 你當然是可以這樣 "自行解釋" 一番, 問題是別人是否也這樣的 "同一種認知" ? 現在的 OS 教科書喜歡用 "演化" 來表達作業系統在不同年代的變化. 但術語與 專業是相關的, 用錯術語的麻煩就是會引起誤會. 雖然 DOS 比 UNIX 出現的晚, 但用錯比喻還是會有被誤會的麻煩. 以歷史來看, 古代的事件與術語當然可以用現代的術語去敘述使得現代人比較 容易 "認知", 但概略的認知跟精確的表達是有差異的. 通常, DOS 的 command.com 或 command.exe 這個 CLI 在置入程式再將 CPU 的執行控制權交給這個程式去執行時, 不會用 create child process 這個術語, 因為 OS 對這個程式的 "process state" 沒有掌控與細部記載, 也不會將執行的 程式視為 process , 因為 DOS 不具備 process 的 cpu 管理概念, DOS 的前身是 來自 CP/M , 這個 OS 用的名稱是 Control Program/Monitor , DOS 如其名儘止 於 Disk (supported) OS. 利用 "中斷" 達到交錯性多工併行, 跟利用 DMA 讓 I/O 裝置與 CPU 達到平行式 多工並行是來自於硬體的支援, 硬體有這樣的支援, 但是否要用軟體(OS)的 Multi Processing 軟體架構與概念來實現這是兩件事. DOS 的常駐 TSR 程式通常都跟 "中斷" 有關, 也因為中斷指向(Vector)的程式碼需割出個記憶體使之可容身常駐, 才不致於跳錯位置找錯指令. -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234

04/12 01:42, , 1F
(拍手)
04/12 01:42, 1F
文章代碼(AID): #167DL800 (Programming)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 10 之 24 篇):
文章代碼(AID): #167DL800 (Programming)