系统调用如何工作

时间:2014-06-04 11:29:45

标签: c process operating-system system-calls

系统调用如何工作?
系统调用期间会发生什么操作?
有各种系统调用,如open , read, write, socket等。我想知道他们一般如何工作?

1 个答案:

答案 0 :(得分:22)

简而言之,这就是系统调用的工作原理:

  
      
  • 首先,用户应用程序设置系统调用的参数。
  •   
  • 参数设置完毕后,程序执行"系统调用"指令。
  •   
  • 此指令导致异常导致处理器跳转到新地址并开始执行代码的事件

    < / LI>   
  • 新地址的说明保存用户程序的状态,找出你想要的系统调用,调用实现该系统调用的内核中的函数,恢复用户程序状态,然后返回控制回用户程序。

  •   

调用open()系统调用的用户应用程序的直观说明:

enter image description here

应该注意,系统调用接口(它作为操作系统可用的系统调用的链接)调用OS内核中的预期系统调用,并返回系统调用的状态和任何返回值。 调用者无需了解系统调用的执行方式或执行期间的操作 另一个例子:一个C程序调用{​​{1}}库调用,调用printf()系统调用

enter image description here

有关更详细的说明,请阅读CH-1中的第1.5.1节和来自Operating System Concepts的CH-2中的第2.3节。