我们在介绍进程、线程、中断时常常提及上下文的概念,那么什么是上下文。
这是个面试提问概率比较大的问题,对于一个嵌入式linux软件系统,时刻都在进行着用户空间和内核空间的相互切换,以及进程间的轮转调度,时不时还会来个中断,进入到中断处理程序然后再返回。在这切换的过程中,我们需要保存进程在用户空间的状态,以便切换回去时恢复原来状态,由此引入了上下文的概念。
文章目录
一、上下文基本概念
进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。
处理器总处于以下状态中的一种:
1、内核态,运行于进程上下文,内核代表进程运行于内核空间;
2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;
3、用户态,运行于用户空间。
其实,除了上面三种状态之外,还有一种就是永远处于内核态的内核线程,内核也有自己的任务需要处理,这类内核线程有一部分完全运行于内核空间,它们也有自己的上下文,所