操作系统-系统调用(定义 与库函数的区别 为什么需要系统调用 分类 过程)

发布时间:2024年01月21日

总览

在这里插入图片描述

什么是系统调用

操作系统给用户提供的向上接口就是GUI,程序接口是系统调用组成

类似函数,但有区别
在这里插入图片描述

系统调用与库函数的区别

C库函数有些会使用到系统调用

在这里插入图片描述

小例子:为什么系统调用是必须的

WPS和word此时是两个进程

系统调用用来应对多个并发进程使用同一个资源的这种情况,此时为了避免这种同时使用一个资源造成的意外情况,由内核接手来完成
在这里插入图片描述

系统调用分类

与共享资源有关

在这里插入图片描述

系统调用的过程

把参数放到寄存器(CPU中)后,再执行陷入指令

一开始执行传参指令在这里插入图片描述
执行完后执行陷入指令,并转换为内核态执行系统调用入口程序
在这里插入图片描述
系统调用入口程序根据之前参数得到需要哪种系统调用服务
在这里插入图片描述
然后运行对应的系统调用处理程序,执行完该系统调用处理程序后,系统会转为用户态,并执行之前的程序的对应的陷入指令的下一条指令
在这里插入图片描述
陷入指令不是特权指令
陷入指令=trap指令
在这里插入图片描述

小结

各个并发进程会有对共享资源的争抢使用,所以为了保证各个进程的正确运行,此时需要由操作系统来介入实现,所以当涉及到共享资源的操作时,会使用到系统调用,而系统调用程序是内核态运行的,所以操作系统此时介入了。
在这里插入图片描述

文章来源:https://blog.csdn.net/llovewuzhengzi/article/details/135723565
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。