特权指令和非特权指令

应用程序只能使用非特权指令,如加法指令、减法指令等

操作系统作为管理者,有些时候会让 CPU 执行一些“特权指令”,这些特权指令影响重大,只能由操作系统内核来执行

用户态和内核态

CPU 中有一个程序状态字寄存器,可以用于区分当前 CPU 状态是内核态还是用户态

中断

CPU 上会运行两种程序,一种是操作系统内核程序,一种是应用程序

在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序

“中断”是让操作系统内核夺回CPU使用权的唯一途径

如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序

中断向量表

image.png

系统调用

由操作系统内核对共享资源进行统一的管理,并向上提供「系统调用」用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理

按功能分类

image.png

<aside> 💡

应用程序通过系统调用请求操作系统的服务。而系统中的**各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。**这样可以保证系统的稳定性和安全性,防止用户进行非法操作

</aside>

系统调用的过程