在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?相关的知识,希望对你有一定的参考价值。
参考技术A 是中断驱动的,肯定不是过程——过程是用户级概念至多是一个线程。。或作为中断处理(连线程都不是,就是中断)的一部分,——一个阶段(phase/函数)迅速完成。追问
驱动栈底层驱动用中断处理可以理解,但中间层好像不应该是中断处理的吧。
仔细想了下,可能这问题一句两句还不能让我懂,
我还是先学下线程队列和阻塞机制,可能会有帮助
谢谢啦
事实上,驱动程序就是在“中断处理”过程中完成的,我理解。——即使是所谓中间层。
试想一下,如果驱动不是在中断处理过程中被调用并完成的,那它在什么时候被调用执行?
驱动分层,再分层,不会分到最后与驱动自身的驱动者,即中断无关或断开链接。
至于具体实现方面,有就在中断服务例程中完成所有工作的,比如键盘输入;有完成一部分启动一个线程完成后续部分的,这后续呢,就可以容纳如你所提及的中间层,或实设备驱动的再应用即虚拟驱动。中断服务例程有好例程,也有坏例程(我就见过,占据CPU百分之百,呵呵)——当然,这已与我们的主题无关,是driver作者编写者的事。
以上是关于在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Windows中通过Cygwin来使用Linux命令行