在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?相关的知识,希望对你有一定的参考价值。

参考技术A 是中断驱动的,肯定不是过程——过程是用户级概念

至多是一个线程。。或作为中断处理(连线程都不是,就是中断)的一部分,——一个阶段(phase/函数)迅速完成。追问

驱动栈底层驱动用中断处理可以理解,但中间层好像不应该是中断处理的吧。

仔细想了下,可能这问题一句两句还不能让我懂,
我还是先学下线程队列和阻塞机制,可能会有帮助

谢谢啦

追答

事实上,驱动程序就是在“中断处理”过程中完成的,我理解。——即使是所谓中间层。

试想一下,如果驱动不是在中断处理过程中被调用并完成的,那它在什么时候被调用执行?
驱动分层,再分层,不会分到最后与驱动自身的驱动者,即中断无关或断开链接。
至于具体实现方面,有就在中断服务例程中完成所有工作的,比如键盘输入;有完成一部分启动一个线程完成后续部分的,这后续呢,就可以容纳如你所提及的中间层,或实设备驱动的再应用即虚拟驱动。中断服务例程有好例程,也有坏例程(我就见过,占据CPU百分之百,呵呵)——当然,这已与我们的主题无关,是driver作者编写者的事。

本回答被提问者采纳
参考技术B 您好,这样的情况建议您下载最新版本的驱动精灵,或是直接在线升级一下驱动精灵。希望可以帮到您。

以上是关于在Windows或Linux等高级系统里,驱动程序是以线程的形式独立运行,还是做为过程被线程调用运行?的主要内容,如果未能解决你的问题,请参考以下文章

装了个deepin系统 高级选项里是干啥的

如何在linux系统里访问windows的磁盘共享文件

如何在Windows中通过Cygwin来使用Linux命令行

“在WINDOWS启动时不显示此信息或启动系统配置实用程序”(高悬赏)

linux程序崩溃自动重启

用C语言编写的程序,能不能直接在Linux下运行?