Operating system 为什么称之为上下文切换?为什么不处理交换或交换,因为资源是相同的

Operating system 为什么称之为上下文切换?为什么不处理交换或交换,因为资源是相同的,operating-system,context-switch,Operating System,Context Switch,上下文切换的过程。在计算中,上下文切换是 存储和恢复状态的过程(更具体地说,是 进程或线程的执行上下文),以便可以 稍后从同一点恢复 但如果是进程或线程 资源不是共享的,那么它必须被称为进程交换或线程交换它不是交换线程本身或进程本身。它交换存储在CPU中的执行上下文信息——各种CPU寄存器、标志位等。一个进程包含1+个线程,每个线程操纵CPU状态。上下文开关捕获当前正在运行的线程的CPU状态(上下文)并将其暂停,然后切换到另一个线程的状态,以便它可以在之前停止的位置继续运行。它不是在交换线程本身

上下文切换的过程。在计算中,上下文切换是 存储和恢复状态的过程(更具体地说,是 进程或线程的执行上下文),以便可以 稍后从同一点恢复

但如果是进程或线程
资源不是共享的,那么它必须被称为进程交换或线程交换

它不是交换线程本身或进程本身。它交换存储在CPU中的执行上下文信息——各种CPU寄存器、标志位等。一个进程包含1+个线程,每个线程操纵CPU状态。上下文开关捕获当前正在运行的线程的CPU状态(上下文)并将其暂停,然后切换到另一个线程的状态,以便它可以在之前停止的位置继续运行。

它不是在交换线程本身或进程本身。它交换存储在CPU中的执行上下文信息——各种CPU寄存器、标志位等。一个进程包含1+个线程,每个线程操纵CPU状态。上下文开关捕获当前正在运行的线程的CPU状态(上下文)并将其暂停,然后切换到另一个线程的状态,这样它就可以在之前停止的位置继续运行。

请记住,在线程出现之前很久,它就被称为进程上下文的更改。因为我们谈论的是历史,所以我忽略了线程

使进程可执行需要加载寄存器。寄存器组因系统而异,但通常包括:

  • 普通登记册
  • 处理器状态
  • 使用页表寄存器
当进程不再是当前进程时,需要保存其寄存器值。当进程变为当前进程时,需要恢复其寄存器值

几乎每个处理器都有一条指令来执行这些任务中的每一项,以允许以原子方式执行切换

然后,处理器需要定义用于保存寄存器值的数据结构。不管出于什么原因,这种数据结构被称为“过程上下文块”或PCB(一些愚蠢的教科书使用PCB来描述其他并不存在的东西)

有人可能认为称之为过程“上下文”是一个可爱的名字。这在英语中确实没有意义,但事实就是如此

加载和保存的指令随后成为加载进程上下文和保存进程上下文的变体

但如果是进程或线程,并且资源未共享,则必须将其称为进程交换或线程交换


交换是一个完全不同的概念。因此,术语“交换”和“交换”已经被采用。在分页之前的日子里,整个进程都被移动(交换)到磁盘上。这就是为什么太监有一个“交换”分区——名称从未更新为“页面分区”。

请记住,它在线程出现之前很久就被称为进程上下文的更改。因为我们谈论的是历史,所以我忽略了线程

使进程可执行需要加载寄存器。寄存器组因系统而异,但通常包括:

  • 普通登记册
  • 处理器状态
  • 使用页表寄存器
当进程不再是当前进程时,需要保存其寄存器值。当进程变为当前进程时,需要恢复其寄存器值

几乎每个处理器都有一条指令来执行这些任务中的每一项,以允许以原子方式执行切换

然后,处理器需要定义用于保存寄存器值的数据结构。不管出于什么原因,这种数据结构被称为“过程上下文块”或PCB(一些愚蠢的教科书使用PCB来描述其他并不存在的东西)

有人可能认为称之为过程“上下文”是一个可爱的名字。这在英语中确实没有意义,但事实就是如此

加载和保存的指令随后成为加载进程上下文和保存进程上下文的变体

但如果是进程或线程,并且资源未共享,则必须将其称为进程交换或线程交换

交换是一个完全不同的概念。因此,术语“交换”和“交换”已经被采用。在分页之前的日子里,整个进程都被移动(交换)到磁盘上。这就是为什么太监有一个“交换”分区,而名称从未更新为“页面分区”