【问题标题】:System call in process系统调用进行中
【发布时间】:2012-02-12 08:12:04
【问题描述】:

假设一个进程正在运行并且它调用一个系统调用。这是否意味着该进程现在将被阻止。是否所有系统调用都会阻塞一个进程并将其状态从运行更改为阻塞?还是要看当时的情景?

【问题讨论】:

  • 你可以在这里问unix.stackexchange.com
  • 这个问题是理论类型的,而不是特别是 unix。所以是正确的地方。

标签: c linux unix operating-system


【解决方案1】:

不,这并不意味着进程被阻止。有些系统调用是阻塞的,有些则不是。但是请注意,在内核处理系统调用期间,当进程继续运行时,您自己的用户代码并没有执行,而是内核代码代表进程执行。

【讨论】:

    【解决方案2】:

    一些操作系统甚至有向上调用,用户应用程序在某些情况下注册一些函数以供内核调用(回到用户空间)。 Unix 信号机制是一个非常简单的例子,但有些操作系统有更复杂的调用。

    我认为在某些操作系统中,系统调用会触发一些内核处理,这可能会在用户空间中触发一些向上调用。

    细节忘记了

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 2021-08-04
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      相关资源
      最近更新 更多