什么是进程上下文切换?
对于单核单线程 CPU 而言,在某一时刻只能执行一条 CPU 指令。
上下文切换 (Context Switch) 是一种将 CPU 资源从一个进程分配给另一个进程的机制。从用户角度看,计算机能够并行运行多个进程,这恰恰是操作系统通过快速上下文切换造成的结果。
在切换的过程中,操作系统需要先存储当前进程的状态 (包括内存空间的指针,当前执行完的指令等等),再读入下一个进程的状态,然后执行此进程。
进程有哪些状态?
当一个进程开始运行时,它可能会经历下面这几种状态:
上图中各个状态的意义:
运⾏状态( Runing ):该时刻进程占⽤ CPU;
就绪状态( Ready ):可运⾏,由于其他进程处于运⾏状态⽽暂时停⽌⾏;
阻塞状态( Blocked ):该进程正在等待某⼀事件发⽣(如等待输⼊/输出操作的完成)⽽暂时停⽌运⾏,这时,即使给它CPU控制权,它也⽆法运⾏;
当然,进程还有另外两个基本状态:
创建状态( new ):进程正在被创建时的状态;
结束状态( Exit ):进程正在从系统中消失时的状态;