系统调用的理解

Posted 杀手不太冷!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统调用的理解相关的知识,希望对你有一定的参考价值。

系统调用

什么是系统调用

什么是系统调用?

答:操作系统的接口函数是连接应用软件与操作系统的中间桥梁,系统调用其实就是操作系统提供给应用程序的接口函数,应用程序可以通过这些接口函数来让操作系统执行相关的操作,从而获得操作系统的服务。

系统调用的分类

系统调用(按功能分类):

1.设备管理:完成设备的 请求/释放/启动 等功能

2.文件管理:完成文件的 读/写/创建/删除 等功能

3.进程控制:完成进程的 创建/撤销/阻塞/唤醒 等功能

4.进程通信:完成进程之间的 消息传递/信号传递 等功能

5.内存管理:完成内存的 分配/回收 等功能

系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行

系统调用与库函数的区别

库函数可以理解成是对系统调用的一层封装,我们把系统调用封装到库函数中,程序员可以通过应用程序调用库函数,然后库函数会进行相关的系统调用,其实也就相当于是程序员可以通过库函数直接系统调用,从而获得操作系统的服务。

一个库函数有可能包含一个系统调用,有可能包含多个系统调用,当然也有可能不包含系统调用;

比如库函数"取绝对值",它就不包含系统调用,而库函数"创建一个新文件",它就包含系统调用。

可以参考下图来理解库函数与系统调用的关系:
库函数与系统调用

以上是关于系统调用的理解的主要内容,如果未能解决你的问题,请参考以下文章

深入理解系统调用

深入理解系统调用

深入理解系统调用

深入理解系统调用

[Linux]系统调用理解

实验二 深入理解系统调用