上下文到底是什么

1、什么是上下文

其实在计算机行业中, context 这个词被翻译成“上下文”是有点问题的。第一次接触这个词的人肯定是一头雾水,不知道到底是在讲什么。

(虽然我也没能想出来一个非常合适的译名用来取代“上下文”)

context 指的是(进程)运行时所处的环境和自身的状态,可以理解为当时情况的一个快照。

更具体来说,就是进程的各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。

2、上下文的具体内容

一个进程的上下文可以分为三个部分:

  1. 用户级上下文:正文、数据、用户堆栈以及共享存储区;

  2. 寄存器上下文:通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);

  3. 系统级上下文:进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。

3、上下文切换

所谓的上下文切换(context switch),指的是发生进程调度(进程切换)时,内核(kernel)要把当前进程的状态和数据保存起来以备以后使用,同时把之前保存的进程的相关状态调出来,这样新调度出来的进程才能运行。

发布了33 篇原创文章 · 获赞 19 · 访问量 3157

猜你喜欢

转载自blog.csdn.net/zmflying8177/article/details/103207365