作者wlsabcd (我不会C++)
看板Programming
标题Re: [问题] dos为何要有记忆体配置的中断指令?
时间Mon Apr 2 22:46:28 2007
※ 引述《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