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