上下文切换的过程。在计算中,上下文切换是存储和恢复进程或线程的状态(更具体地说,是执行上下文)的过程,以便以后可以从同一时间恢复执行。
但是,如果它是进程或线程,并且资源不是共享的,那么必须被称为进程交换或线程交换。
发布于 2017-01-13 21:51:09
它不是交换线程本身,也不是处理自己。它是交换存储在CPU中的执行上下文信息-各种CPU寄存器、标志位等。一个进程包含1+线程,每个线程操纵CPU状态。上下文开关捕获当前正在运行的线程的CPU状态(上下文)并暂停它,然后切换到另一个线程的状态,这样它就可以在以前停止运行的地方继续运行。
发布于 2017-01-13 22:32:07
记住,在线程出现之前,它就被称为进程上下文中的一个变化。既然我们谈论的是历史,我就忽略了线索。
要使进程可执行,需要加载寄存器。登记册的集合因系统而异,但通常包括:
当进程停止当前时,需要保存它的寄存器值。当进程变为当前时,需要还原其寄存器值。
几乎每个处理器都有一条指令来执行这些任务,从而允许原子地执行切换。
然后,处理器需要定义用于保存寄存器值的数据结构。不管出于什么原因,这种数据结构被称为“过程上下文块”或PCB (一些愚蠢的教科书使用PCB来描述其他不存在的东西)。
也许有人认为它是一个过程“上下文”是一个可爱的名字。这在英语中是没有道理的,但事实就是这样。
然后,加载和保存指令变成了加载过程上下文和保存过程上下文的变体。
但是,如果它是进程或线程,并且资源不是共享的,那么它必须被称为进程交换或线程交换。
交换是一个完全不同的概念。所以“交换”和“交换”这两个词已经被接受了。在分页之前的几天里,整个进程被移动(交换)到磁盘。这就是为什么eunuchs有一个“交换”分区的原因--这个名称从未被更新为“页面分区”。
https://stackoverflow.com/questions/41647194
复制