dspboy
驱动牛犊
驱动牛犊
  • 注册日期2001-06-09
  • 最后登录2001-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2055回复:5

何谓“不可重入”

楼主#
更多 发布于:2001-08-22 10:31
 “当一个VxD程序在处理一个硬件中断时,由于VMM是不可重入的,这个VxD程序不能使用VxD服务,否则会引起页面错误(重入VMM)。”
这是罗云斌教程的一句原话。
如何理解“不可重入”?
走进城市的狼,乐观执着的狼。
lcx119
禁止发言
禁止发言
  • 注册日期2001-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2330分
  • 威望11503点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2001-08-22 14:49
用户被禁言,该主题自动屏蔽!
dtony07
驱动牛犊
驱动牛犊
  • 注册日期2001-08-28
  • 最后登录2002-05-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-28 12:29
所谓不可重入,是相对于可重入而言的,指的是这段函数可以被中断。有些程序中由于使用了全局的数据结构或必须在一定的情况下执行,不允许其他程序中断它。
袁通
AMDK6III
驱动牛犊
驱动牛犊
  • 注册日期2001-09-02
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-03 15:14
当不可重入的代码被重入时,重入前储存的数据在重入时被覆盖破坏。当再执行被中断的代码时,由于代码处理的数据不正确,于是引起了错误。
pengyc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-16
  • 最后登录2010-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-09-07 16:37
谢谢楼上两位的回答。我认为:中断是指一段程序代码的执行打断另一段程序代码的执行,而“重入”特指两段代码相同的情况,是这样的吗?另外,是否有防止不可重入的代码被重入的机制?
KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-09-07 17:06
简单,你设一个标记,进去是先检查是否有程序调用了该函数还没有返回.如是,就等候或返回; 如否,就设置标记,继续运行,运行完毕,清除标记...

偶在DOS下做时钟中断时,就用了这个方法.
“萎软”,是Microsoft的小名!
游客

返回顶部