lisign
驱动牛犊
驱动牛犊
  • 注册日期2001-06-16
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2375回复:8

同步和异步服务的区别?

楼主#
更多 发布于:2001-07-11 15:14
看vxd的书,其中总是提到vmm提供的服务有同步和异步服务的区别,并特别强调在中断处理程序中不可以调用同步服务,请问同步和异步服务有何区别?为什麽在中断处理程序不可以调用同步服务?

最新喜欢:

flyfoxflyfox
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-11 17:36
有一个话题就讨论了,同步异步的问题。你好好找找吧!
为什么中断不可以用同步?
同步是要等待的,等待就要耗费时间,而中断又是紧急的事,必须及时处理。
lisign
驱动牛犊
驱动牛犊
  • 注册日期2001-06-16
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-17 11:01
老兄,恐怕你理解错了,我这里同步和异步的概念不是指传输模式上,例如USB中,而是说VMM提供的同步和异步服务的区别,不过,先谢了!谁能来个醍醐灌顶啊???
glacier
驱动牛犊
驱动牛犊
  • 注册日期2001-07-03
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-17 15:06
其实jeosph的回答并没有错误,你提出的同步和异步服务我想是这样的,你需要完成某一件工作,VMM提供两种服务,其一是你必须等待它完成后你才能继续后面的工作,这就是同步服务。而另外一种服务是你不必等待它完成,就可以继续你后面的工作,而VMM本身或者有一个线程,或者有一个服务进程,继续工作,也就是说服务和你的工作是并发执行的,这就是异步服务。至于为什么中断中不能采用同步服务,正如jeosph所说的,中断需要立即返回,具体的工作交给VMM去做吧。
lisign
驱动牛犊
驱动牛犊
  • 注册日期2001-06-16
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-07-18 14:30
假如上面的兄台说的没错,同步是因为要等待VMM完成操作,可是有谁想过没有,为什麽要等待?假如只是造成了处理上的延迟而在中断处理程序中不能调用,那麽假如我宁愿系统反映迟钝而在中断处理程序中调用了同步服务,那麽结果仅仅只是系统反映迟钝吗?我想最可能的结果是系统崩溃!!!我想这和VMM的不可重入有关!这只是我个人的想法,有没有人给确认一下?!!
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-07-18 17:24
你以为等待,就是那么简单吗?
等待的过程涉及到很多的问题(不同目的的等待,问题也不一样)
比如驱动程序的等待,还涉及到一个问题的递归处理,很耗时间。,
如果,你真的要等,我又能反对什么呢?
不要固执好不好,老兄!
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-07-18 17:29
中断的执行:运行在DIRQL上,执行完毕,必须将LEVEL 降低(dispatch),如果,只是你认为的一个简单的等待的话,而没有执行DPC历程,程序运行的级别下不来,系统崩溃是迟早的事!想都不用想。
skysky
驱动小牛
驱动小牛
  • 注册日期2001-07-18
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-07-18 19:20
原则是:中断服务尽可能短,把不是绝对必要的处理放到DPC中。
       中断中的同步所占用的等待时间不仅仅是当前线程时间,
       它的高优先级会抢占其他普通线程。
       当然一般做异步会比同步复杂一点。但可提高效率。真正使用哪个得看具体情况了。
        
以德服人,以德服人
lisign
驱动牛犊
驱动牛犊
  • 注册日期2001-06-16
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-07-20 13:34
请问jeosph,有没有系统谈论这个问题的书?
游客

返回顶部