OS1.1.6:系统调用

文章目录

  • 知识总览
  • 什么是系统调用?
    • 系统调用按照功能的分类
  • 系统调用和库函数的区别
  • 总结

知识总览

OS1.1.6:系统调用_第1张图片

什么是系统调用?

知识点回顾:
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
总而言之,系统调用就是程序接口。
OS1.1.6:系统调用_第2张图片
为了避免进程随意的使用这些资源,所以操作系统进行规定,进程想要使用这些资源的话,都一定要使用系统调用的方式,来向操作系统请求服务。最后,由操作系统统一的对系统调用的请求进行协调管理/处理。

OS1.1.6:系统调用_第3张图片

系统调用按照功能的分类

OS1.1.6:系统调用_第4张图片
有个印象就行。

系统调用和库函数的区别

OS1.1.6:系统调用_第5张图片
系统调用都是在核心态中进行的。
最开始是DIY的裸机,之后向上层,得到操作系统(操作系统会用系统调用的方式向上层提供一些简单易用的服务,使其上层更方便的使用)。高级编程语言会提供一些库函数,进行封装,这下APP就可以直接使用库函数来使用到系统调用。例如添加文件/删除文件,这样涉及到共享资源的情况下,就会使用到系统调用。

OS1.1.6:系统调用_第6张图片

OS1.1.6:系统调用_第7张图片
操作系统怎么分辨需要处理的函数?
其实就是通过int 指令的参数进行分辨。
int语句的参数x指明了系统调用号,此处的int不是整数的意思,其实是interrupt的缩写。(中断)
OS1.1.6:系统调用_第8张图片
需要注意的是,陷入指令是在用户态当中执行的,但是执行完陷入指令之后,会引发一个内中断,因为之前所说,只要有中断,CPU立马会从用户态转为核心态。
记住,陷入指令是在用户态下执行的。

总结

OS1.1.6:系统调用_第9张图片
系统调用发生在用户态,对系统调用的处理发生在核心态。
执行陷入指令会引发内中断,使CPU从用户态进入核心态。

你可能感兴趣的:(OS,大数据,系统架构,系统安全,c++,c语言)