阅读:2055回复:5
何谓“不可重入”
“当一个VxD程序在处理一个硬件中断时,由于VMM是不可重入的,这个VxD程序不能使用VxD服务,否则会引起页面错误(重入VMM)。”
这是罗云斌教程的一句原话。 如何理解“不可重入”? |
|
|
沙发#
发布于:2001-08-22 14:49
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2001-08-28 12:29
所谓不可重入,是相对于可重入而言的,指的是这段函数可以被中断。有些程序中由于使用了全局的数据结构或必须在一定的情况下执行,不允许其他程序中断它。
|
|
|
地板#
发布于:2001-09-03 15:14
当不可重入的代码被重入时,重入前储存的数据在重入时被覆盖破坏。当再执行被中断的代码时,由于代码处理的数据不正确,于是引起了错误。
|
|
地下室#
发布于:2001-09-07 16:37
谢谢楼上两位的回答。我认为:中断是指一段程序代码的执行打断另一段程序代码的执行,而“重入”特指两段代码相同的情况,是这样的吗?另外,是否有防止不可重入的代码被重入的机制?
|
|
5楼#
发布于:2001-09-07 17:06
简单,你设一个标记,进去是先检查是否有程序调用了该函数还没有返回.如是,就等候或返回; 如否,就设置标记,继续运行,运行完毕,清除标记...
偶在DOS下做时钟中断时,就用了这个方法. |
|
|