- 中断和异常的区别:中断来自外部,可以称为外中断;异常来自内部,可以称为内中断。
- 常见的中断:IO中断、时钟中断等
- 常见的异常:程序性异常如溢出、页错误、保护性异常、系统调用(主动产生的异常,类似于软件中断的概念,常被操作系统用于陷入内核)
- 中断/异常发生时,硬件和软件各自发挥的作用:
- 硬件(中断系统):响应——CPU在每个指令周期结束时,检查中断寄存器看是否有中断发生
- 软件(中断服务程序):处理
- 系统调用是什么?用户在编程时可以调用的操作系统功能,能够使CPU状态从用户态陷入内核态,CPU根据系统调用号寻找处理函数的入口并执行处理程序,常见的系统调用号有1-exit 2-fork 3-read 4-write。每个操作系统提供几百种系统调用,包括进程控制、进程通信、文件使用、设备管理等。
- 系统调用传递参数的三种方式
- 系统调用自带参数,例如FreeRTOS中的SystermCall( 0 ) ?
- 通过通用寄存器传递参数——是最常用的方式
- 在内存中开辟专用的堆栈区(该堆栈区应该是区别于主栈MSP的新的堆栈)