用户模式和内核模式:同时使用不同的程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户模式和内核模式:同时使用不同的程序相关的知识,希望对你有一定的参考价值。

是否有可能一个进程在内核模式下运行而另一个进程在用户模式下同时运行?

我知道,这不是一个编码问题,但如果有人知道答案,请指导我。

答案

对的,这是可能的。甚至多个进程也可以同时处于内核模式。

只是单个进程不能同时在两种模式中。

另一答案

要使两个进程实际同时运行,您必须拥有多个CPU。事实上,当你有多个CPU时,在不同CPU上运行的是非常松散耦合的,你肯定有一个进程在一个CPU上运行用户代码,而另一个进程运行内核代码(例如,在系统调用中做一些工作)在另一个CPU上。

如果您只询问一个CPU,那么在这种情况下,您不能同时拥有两个正在运行的进程。但是你可以拥有的是两个可运行的进程,这意味着两个进程都可以运行,但由于只有一个CPU,因此只有一个可以运行。其中一个可运行的进程可能处于用户模式 ​​- 例如,考虑一个长时间运行的紧密循环,该循环在其时间配额结束后被抢占。另一个可运行的进程可能处于内核模式 - 例如,考虑一个从磁盘执行read()系统调用的进程,内核将读取请求发送到磁盘,但读取请求已完成,所以现在该进程已准备好再次运行内核模式并完成read()调用。

以上是关于用户模式和内核模式:同时使用不同的程序的主要内容,如果未能解决你的问题,请参考以下文章

内核模式和用户模式驱动程序

在内核模式和用户模式之间使用ioctl通信

windows内核态调用readfile

内存管理:用户模式和内核模式

win10系统调用架构分析

是啥阻止了用户应用程序能够“劫持”到内核模式?