上下文是什么意思
来源: 互联网 发布时间:2016-09-01
本文导语: 经常会看到上下文切换,请问这个是什么意思? 还有, 大多数操作系统单独定义线程,从而增加了内核和调度程序的复杂性;而 Linux 则将线程定义为“执行上下文”,它实际只是进程的另外一个执行上下文而已。...
经常会看到上下文切换,请问这个是什么意思?
还有,
大多数操作系统单独定义线程,从而增加了内核和调度程序的复杂性;而 Linux 则将线程定义为“执行上下文”,它实际只是进程的另外一个执行上下文而已。这样,Linux 内核只需区分进程,只需要一个进程/线程数组,而调度程序仍然是进程的调度程序。
这段话中的“执行上下文”是什么意思?
谢谢!
还有,
大多数操作系统单独定义线程,从而增加了内核和调度程序的复杂性;而 Linux 则将线程定义为“执行上下文”,它实际只是进程的另外一个执行上下文而已。这样,Linux 内核只需区分进程,只需要一个进程/线程数组,而调度程序仍然是进程的调度程序。
这段话中的“执行上下文”是什么意思?
谢谢!
|
http://blog.csdn.net/zhiyu520/archive/2008/07/27/2719827.aspx
上下文context: 上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。
一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。
用户级上下文: 正文、数据、用户堆栈以及共享存储区;
寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);
系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。
当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。
上下文context: 上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。
一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。
用户级上下文: 正文、数据、用户堆栈以及共享存储区;
寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);
系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。
当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。
|
上下文就是一个进程所拥有的数据,寄存器,以及其他信息的组合。
执行上下文就是说单纯运行所需的数据吧,不包括线程之间共有的那部分。
我是这样理解的,高手来指正下吧
执行上下文就是说单纯运行所需的数据吧,不包括线程之间共有的那部分。
我是这样理解的,高手来指正下吧
|
2楼那段话是抄来的。
我自己的理解是:所谓上下文(context)是指一个进程运行的环境和状态,也可以理解为进程的一个快照。从进程1切换到进程2的时候,内核就需要把进程1的当前状态和数据(也就是2楼提到的那一大堆东西)打个包保存到某个地方,再把以前保存的进程2的内容调出来。
我自己的理解是:所谓上下文(context)是指一个进程运行的环境和状态,也可以理解为进程的一个快照。从进程1切换到进程2的时候,内核就需要把进程1的当前状态和数据(也就是2楼提到的那一大堆东西)打个包保存到某个地方,再把以前保存的进程2的内容调出来。
|
这个“执行上下文”,我理解是上下文的全部内容里面有关执行状态的一部分,比如栈、程序计数器。这一部分对于每个线程都是不同的。
同一进程的多个线程共享很多内容,比如代码和数据空间,这些就不属于“执行上下文”。
同一进程的多个线程共享很多内容,比如代码和数据空间,这些就不属于“执行上下文”。
|
上下文是我见过的仅次于“句柄”第二烂的中文翻译词汇!