一,什么是系统调用,有什么作用?
1,回顾:我们知道操作系统将硬件层的功能,进行组合形成一个个接口供上层调用,其中有命令接口允许用户直接调用,
程序接口只能让该用户间接调用。而程序接口是由一组系统调用组成
2,系统调用:是操作系统提供给应用程序使用的接口,可以理解为可供程序调用的特殊函数,应用程序可以发出系统调用来请求获得操作系统的服务
3,作用:防止用户非法操作系统的资源,保证系统的稳定性和安全性
二,系统调用和库函数有什么区别?
答:为了方便程序员对系统调用的使用,我们把系统调用进行封装,成为库函数,隐藏了系统调用一些繁琐的细节,让上层调用更加方便。所以系统调用是一些库函数的组成成分
三,程序员使用系统调用背后的过程是什么?
高级语言——》汇编语言——》机器指令
step1,使用高级语言调用库函数print(“aba");,编译过程会翻译成机器指令
step2,处理函数前的代码的相关指令后,执行movl指令对参数abc进行保存
step3,执行int x指令(interpret指令,它又叫陷入指令,trap指令)
参数x:用于告诉操作系统你想要调用那个接口的功能,
特殊性:是唯一一个只能在用户态执行,不能在核心态执行的指令,执行完trap指令就立即引发
内中断,进入核心态
step4,操作系统对用户态传送过来的请求进行处理,实现具体功能。并将一些参数返回给程序