进程上下文、中断上下文及原子上下文***
谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文 上下文是从英文 contex t翻译过来,指的是一种 环境 。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。 b -- 原子 原子(atom) 本意是“不能被进一步分割的最小粒子”,而 原子操作(atomic operation )意为"不可被中断的一个或一系列操作" ; 一、为什么会有上下文这种概念 内核空间和用户空间是现代 操作系统 的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。 其中处理器总处于以下状态中的一种: 内核态 ,运行于 进程上下文 ,内核代表进程运行于内核空间; 内核态 ,运行于 中断上下文 ,内核代表硬件运行于内核空间; 用户态 ,运行于用户空间。 上下文的切换,用户空间和内核空间具有不同的 地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等