概念补充知识
补充知识
用户态与内核态
用户态和内核态是两种不同的特权级别,用于区分进程执行时的权限和资源访问的范围,这是操作系统的核心概念之一,有助于保护系统的稳定性和安全性。
用户态
用户态是进程执行时的一种受限状态,进程在用户态下运行时,只能访问受限的资源和执行受限的操作。在用户态下,进程不能直接访问操作系统的底层资源,如内存管理单元,硬件设备、中断处理等。如果进程需要执行需要更高权限的操作或访问受限资源,它必须通过系统调用来请求内核的帮助。
在用户态下,进程运行的代码通常是应用程序代码,如用户编写的应用程序或库。用户态的代码执行速度较快,但受到操作系统的限制,无法直接操作硬件设备或访问核心资源。
内核态
内核态是进程执行时的特权状态,进程在内核态下拥有访问操作系统核心资源和执行特权操作的权限。在内核态下,进程可以执行任意指令,包括访问所有硬件设备、执行特权指令、直接操作内存等。内核态的代码通常是操作系统内核代码。
软中断与硬中断
中断指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
硬中断
硬中断是由计算机硬件发出的中断信号,用于向处理器通知某个特定事件的发生,如外部设备请求处理、定时器中断、硬件故障等。硬件中断是异步的,即发生中断的时间点是不可预测的,处理器必须立即中止当前正在执行的任务并跳转到中断服务例程来处理中断请求。硬中断使用硬件中断向量来识别和处理不同类型的中断。
硬中断的触发可以由外部设备、CPU内部的定时器或其他硬件组件引起。处理器在接收到硬中断信号后,会根据硬件中断向量找到对应的中断处理程序,并在处理完中断后返回到被中断的程序。
软中断
软中断是由计算机软件(通常是运行在用户空间的程序或操作系统内核代码)主动触发的中断。软中断是通过特定的指令来引发的,例如在x86架构的CPU中,使用INT指令产生软中断。软中断通常用于实现系统调用(System Call)和在用户空间和内核空间之间传递消息或请求。
软中断是同步的,即由程序主动发起,因此它们不会像硬中断那样随机发生。软中断的使用可以在用户态和内核态之间切换,并允许用户程序请求操作系统的服务和资源。