线程调用系统调用时的上下文切换



我有一个包含多个线程的进程。如果我的一个线程调用像gettimeofday()这样的系统调用,那么内核是只将该线程切换到上下文之外来为系统调用提供服务,还是将整个进程(以及所有其他线程)切换到上下文以外?

大多数系统调用可能涉及上下文切换(如果其他任务可以运行),并将处理器的状态切换到内核模式。

但是gettimeofday(以及例如getpid())是不寻常的。对于最近的内核,他们使用VDSO来避免它(甚至避免syscallsysenter指令切换到内核模式)。

对于linux内核来说,线程就是一个进程。因此,当其中一个线程进行系统调用时,内核对进程的其他线程没有兴趣。

相关内容

  • 没有找到相关文章

最新更新