什么是系统调用?系统调用的执行过程是什么?

什么是系统调用?

OS 提供给用户编程时的一些公共子程序,一般为函数或方法

 

为什么要使用系统调用?

OS 为了安全的管理计算机软硬件资源,不允许程序员直接操作系统资源,比如(进程、内存、I/O、文件),

但是用户可以通过系统调用向 OS 请求相关资源的服务,比如:I/O 的请求和释放、设备启动、文件的创建、读写、删除、进程的创建、撤销、阻塞、唤醒

进程间的消息传递、内存的配备和回收等。

 

总结:系统调用就是程序员给 OS 发送请求服务的方法或函数

 

好比,你去餐馆吃饭,你只需要向服务员点菜(系统调用),服务员就会处理你的请求,而不是你自己去做菜

 

程序员如何使用系统调用,OS 如何响应?

程序员在代码中首先传递系统调用参数,然后由陷入(trap)指令负责将用户态转换为核心态,并将返回地址压栈备用,然后 CPU 执行相应的内核服务程序,最后返回用户态

 

posted @ 2020-03-21 16:30  deep-thinking  阅读(2228)  评论(0编辑  收藏  举报