【操作系统】中断和系统调用

中断的作用

CPU上会执行两种程序:内核程序和应用程序

在适合的情况下,操作系统内核会把CPU的使用权主动让给应用程序,“中断”是让操作系统内核夺回CPU使用权的唯一途径(用户态转内核态)。

中断技术保证了并发。

中断的类型

内中断(异常):与当前执行的指令有关,中断信号来源于CPU内部。

外中断:与当前执行的指令无关,中断信号来源于CPU外部。

例子:

内中断:

陷入指令可以引发一个内部中断信号,程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的。

外中断:

时钟中断——由时钟部件发来的中断信号,用来控制并发。

I/O中断-由输入输出设备发来的中断信号,告诉CPU任务完成。

中断机制的基本原理

        不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询中断向量表,以此来找到相应的中断处理程序在内存中的存放位置。

什么是系统调用

操作系统向上提供一些简单的服务,主要包括命令接口和程序结构。程序接口由一组系统调用组成。

有些库函数需要使用到系统调用。

系统调用按功能分类:设备管理、文件管理、进程管理、进程通信、内存管理。凡是与共享资源有关的操作都必须保证系统的稳定性和安全性。

系统调用的过程

高级语言代码 编译 机器语言指令,应用程序运行在用户态;处理系统调用的内核程序运行在核心态。

传递系统调用参数->执行陷入指令(用户态)->执行相应的内请求核程序处理系统调用(核心态)->返回应用程序。

陷入指令用户态执行,执行陷入指令之后立即引发一个内中断,使CPU进入核心态。

发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。

猜你喜欢

转载自blog.csdn.net/l203018/article/details/132541569
今日推荐