系统调用和内部流程

时间:2019-11-27 05:11:14

标签: operating-system

在Linux的情况下,尝试了解事件的确切顺序:

  1. 用户应用程序调用系统调用。

  2. 这将导致代码执行,从而导致触发软件异常(这是什么代码?如果我调用了glibc API,这是可以理解的,但是如果我的程序直接调用了系统调用,该怎么办)。常规系统调用是否包含一些触发此异常的代码?

  3. 一旦触发了异常-需要保留用户应用程序进程的上下文,并且我假定用户应用程序将处于挂起状态(假设其已等待的系统调用已被调用)。

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

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

  6. 完成异常处理程序后,控件现在必须返回到正在等待系统调用的应用程序。

此流程看起来还不错>除了用户应用程序之外,这些步骤中的每个步骤是否都有示例代码?

0 个答案:

没有答案