跳转至

进程

来源:操作系统 / note/进程管理/进程/进程.md

进程模型

一个进程就是一个正在执行的程序的实例 image.png

每个进程自认为有一个独立的虚拟CPU,拥有自己的程序计数器,但实际上是一个CPU在不同的进程之间相互切换,形成一种伪并行

多道程序设计

在任何多编程系统中,CPU都会快速从进程切换到进程,每个进程运行数十或数百毫秒。虽然严格来说,在任何时刻,CPU只运行一个进程,但在1秒内,它可能会在其中几个进程上工作,给人一种并行的错觉。有时人们在这种情况下谈论伪并行,将其与多处理器系统(具有两个或多个共享相同物理内存的CPU)的真正硬件并行性形成对比。人们很难跟踪多个并行的活动。

在任意时刻只有一个程序是活跃的

利用多进程可以提高CPU的利用率

不妨设

\[ p = \frac{等待IO的时间}{停留在内存中的时间} \]

我们认为这是一个概率,如果内存中同时有n个进程,那么所有进程都在等待io的时候,CPU会空转,否则CPU都在运行,因此

\[ CPU利用率 = 1-p^n \]

image.png 显然,等待IO的时间越少,CPU利用率越高 另一方面,n越大,CPU利用率也越高

增大内存是一个有效提高CPU利用率的方法,因为进程需要占据内存,内存越大,内存中同时运行的进程的就越多,n越大,CPU利用率也就越大

进程的状态

进程包括运行态、就绪态和阻塞态,操作系统控制进程状态之间的转换

进程控制块

操作系统通过进程控制块PCB来控制进程的切换,这个过程叫做上下文切换

进程的控制