前言
- 在前一篇笔记中,重要先容了进程的相关问题,接下来要聊的是上下文,正文还是以围绕“是什么”与“为什么”进行展开,笔记中若有错漏,望不吝指正。
上下文初识
上下文这是一个与进程密切相关的对象。上下文与进程的关系可以这样描述:每个进程都有自己的上下文。什么意思呢?重要强调了两点:
- 没有一个进程是没有上下文的。就如:正常情况下,没有一个人是没有手脚的。上下文是进程天然拥有的属性。
- 不存在A进程拥有B进程上下文的情况。还是用上一个例子:正常情况下,没有两个人是共用一副手脚的。上下文是进程所私有的。
上下文的具体内容
以上只是对上下文定了性,为了更全面的了解上下文,我们聊聊更具体的情况,即上下文包罗哪些内容[1]?在CPU中,进程的一部分上下文存储在一个个寄存器中,寄存器就是放在CPU内部,用来存储数据的小盒子。
<ol>PC寄存器:
- 该寄存器用于存储进程下一条要执行指令的地址。
- 示例:PC寄存器的值是0x7fffe000,则CPU执行的下一条指令的地址是0x7fffe000。
通用寄存器组:
- 该组中包罗多个寄存器,这些寄存器用来存储程序在运行的过程(即进程)产生的临时数据或中央计算结果。
栈指针寄存器:
- 栈指针寄存器中存储的是当前进程的用户栈中栈顶元素的地址。
标记寄存器<ul>
记录了执行算术运算或位运算后,产生的标记。
用途:重要用于完成关系运算,如:>, |