进程¶
来源:
操作系统 / note/进程管理/进程/进程.md
进程模型¶
一个进程就是一个正在执行的程序的实例

每个进程自认为有一个独立的虚拟CPU,拥有自己的程序计数器,但实际上是一个CPU在不同的进程之间相互切换,形成一种伪并行
多道程序设计¶
在任何多编程系统中,CPU都会快速从进程切换到进程,每个进程运行数十或数百毫秒。虽然严格来说,在任何时刻,CPU只运行一个进程,但在1秒内,它可能会在其中几个进程上工作,给人一种并行的错觉。有时人们在这种情况下谈论伪并行,将其与多处理器系统(具有两个或多个共享相同物理内存的CPU)的真正硬件并行性形成对比。人们很难跟踪多个并行的活动。
在任意时刻只有一个程序是活跃的
利用多进程可以提高CPU的利用率
不妨设
\[
p = \frac{等待IO的时间}{停留在内存中的时间}
\]
我们认为这是一个概率,如果内存中同时有n个进程,那么所有进程都在等待io的时候,CPU会空转,否则CPU都在运行,因此
\[
CPU利用率 = 1-p^n
\]
显然,等待IO的时间越少,CPU利用率越高
另一方面,n越大,CPU利用率也越高
增大内存是一个有效提高CPU利用率的方法,因为进程需要占据内存,内存越大,内存中同时运行的进程的就越多,n越大,CPU利用率也就越大
进程的状态¶
进程包括运行态、就绪态和阻塞态,操作系统控制进程状态之间的转换
进程控制块¶
操作系统通过进程控制块PCB来控制进程的切换,这个过程叫做上下文切换