Operating system 系统调用和内部流

Operating system 系统调用和内部流,operating-system,Operating System,在Linux的情况下,试图从流的角度理解事件的确切顺序: 用户应用程序调用系统调用 这会导致执行导致触发软件异常的代码(这是哪种代码?如果调用glibc API是可以理解的,但是如果我的程序直接调用系统调用会怎么样)。是否有一些常规系统调用的代码触发了此异常 一旦触发了异常——用户应用程序进程上下文需要被保留,并且我认为用户应用程序将处于pend状态(假设它是一个被调用的等待系统调用) 然后,异常处理程序运行并根据调用的系统调用选择合适的处理程序(该系统调用号如何从该异常触发代码传递给异常处理程

在Linux的情况下,试图从流的角度理解事件的确切顺序:

  • 用户应用程序调用系统调用

  • 这会导致执行导致触发软件异常的代码(这是哪种代码?如果调用glibc API是可以理解的,但是如果我的程序直接调用系统调用会怎么样)。是否有一些常规系统调用的代码触发了此异常

  • 一旦触发了异常——用户应用程序进程上下文需要被保留,并且我认为用户应用程序将处于pend状态(假设它是一个被调用的等待系统调用)

  • 然后,异常处理程序运行并根据调用的系统调用选择合适的处理程序(该系统调用号如何从该异常触发代码传递给异常处理程序?)

  • 异常处理程序运行(比如说读调用,必须返回读数据才能使用触发其调用的进程-我认为这意味着异常触发代码还传递了一个指向需要将读数据复制到的缓冲区的指针)

  • 异常处理程序完成后,控件现在必须返回应用程序,该应用程序现在将挂起系统调用
  • 这个流程看起来正常吗>除了用户应用程序之外,这些步骤中的每一步都有一些示例代码吗