Re: [問題] dos為何要有記憶體配置的中斷指令?
※ 引述《Qoo2 (Qoo)》之銘言:
: 請問一下
: dos有int 21h function 4ah的記憶體重配置指令
: 但是dos的原理不是 當一個task被執行時 他的base address以上
: 一直到physical address的末端都可以無限制的被該task使用嗎??
==>yes, 這是因為DOS沒有使用到CPU的MMU,所以一個程式可以讀取
系統上任意位址的記憶體(雖然這很危險)。
: 如此依來,為何要畫蛇添足的加上記憶體配置指令呢??
==>DOS下有常駐程式,要使普通AP跟長駐程式所使用的Memory不重疊,
就要有一個管理程式:OS。
DOS也是作業系統的一種。
: 我的想法是:會不會是在該記憶體區,還有使用者不想被覆蓋(刪除)的資料或程式??
: 才會有這樣的指令??
==>yes, 理由同上。
: 請問他予malloc的原理相比,是如何達成的??
==>DOS和Windows NT/2k/XP、Linux、Free BSD呼叫系統函數的方式大體一樣。
DOS呼叫int 21h
Windows呼叫int 2Eh
Free BSD、Linux呼叫int 80h
呼叫Interrupt後,OS會根據相對應的參數Register AX,BX,CX,DX做相對的服務。
在DOS下呼叫malloc,malloc最後也會呼叫int 21h 48h
..........realloc,realloc最後也會呼叫int 21h 4Ah
: thx.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.175.134
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 24 篇):