Re: [問題] dos為何要有記憶體配置的中斷指令?
> ==>發信人: 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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 10 之 24 篇):