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