gpt4 book ai didi

linux - 系统调用时用户态和内核态的切换

转载 作者:IT王子 更新时间:2023-10-29 01:25:44 26 4
gpt4 key购买 nike

在广泛的层面上,在 linux 系统调用期间会发生以下哪些情况。

  1. 用户模式进程提升到内核模式并执行内核代码(中断服务例程),然后返回正常模式。换句话说,是用户进程在消耗 CPU。
  2. 有一个内核进程一直运行在内核态。用户态进程将任务(以系统调用的形式)分派(dispatch)给内核进程。内核进程完成作业并将结果返回给用户模式进程。换句话说,用户进程在此期间处于空闲状态,内核进程是消耗 CPU 的进程。
  3. 其他。

最佳答案

它主要是 1,但也有一点是 2。

从用户模式应用程序的角度来看,系统调用本身是同步发生的。然而很多时候,系统调用没有它需要返回的东西,所以它让进程进入休眠状态。这并不总是发生;一些简单的系统调用实际上是同步完成的。然而,有些需要等待长时间运行的 I/O 任务完成。

内核具有异步处理事物的中断处理程序和内核线程。一个例子是您的硬盘驱动器中断了系统,表明它最终检索到了您正在阅读的文件。这些异步事件之一可能会出现并唤醒您的进程,现在系统调用已具备返回用户空间所需的条件。

所以看起来整个过程是同步发生的,但这只是一种错觉。

关于linux - 系统调用时用户态和内核态的切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com