程序是一组旨在完成特定任务的指令。同样,一个进程指的是一个计算机程序的运行时实例。在一个程序的执行过程中,几个线程可能是平行运行的。单线程的进程指的是线程本身就是进程。

上下文切换

操作系统使用这种技术在不同状态之间切换进程,通过CPU执行其功能。它是一个保存旧进程(暂停)的上下文(状态)并将其加载到新进程(恢复)的过程。每当CPU在一个进程和另一个进程之间切换时,它就会发生。基本上,CPU的寄存器和程序计数器在任何时候的状态都代表一个上下文。在这里,保存当前执行进程的状态意味着将所有活的寄存器复制到PCB(进程控制块)。此外,在这之后,恢复进程的状态以运行或执行下一个进程,这意味着将活的寄存器的值从PCB复制到寄存器中。

交换

这是一个进程从主存储器(RAM)暂时交换(移动)到辅助存储器(磁盘)的过程。主存储器速度快,但空间比二级存储器小,所以不活动的进程被移到二级存储器中,以后系统再把存储器从二级存储器换到主存储器。在交换过程中,大部分时间是在传输信息,交换的内存量与总时间成正比。交换又被划分为两个概念: 换入(Swap-in)和换出(Swap-out)。

  • 换入是指将一个程序从硬盘上移走并移回主内存或RAM的过程。
  • Swap-out是将一个程序从RAM或主存储器中移除,并将其移动或存储到硬盘或二级存储器中。

交换和上下文切换的区别 :

上下文切换 交换
上下文切换是一个存储旧进程的状态并将其加载到新进程的程序。 本质上,它是一种复制整个进程的方法。
当内核将CPU的控制权从一个进程转移到另一个已经准备好的运行状态时,就会发生上下文切换。 交换发生在整个进程被转移到磁盘上的时候。
上下文切换决定了一个进程是否处于暂停模式。 当涉及到交换时,它涉及到内存,多少内存被交换。
上下文切换将进程从运行状态切换到就绪状态,而调度器负责将CPU资源分配给就绪队列中的进程。 这是一个操作系统术语,我们用它来指代磁盘和主内存之间的数据交换。
活动进程做上下文切换。 非活动进程做交换。
上下文切换提供了更高程度的多任务。 交换提供了更大程度的多程序化。
上下文切换有助于更好地利用操作系统。 交换有助于获得更好的内存利用率。