博客参考:MOOC 大学 -> 操作系统 -> 李治军老师
进程是一个概念,这个概念缘起于:操作系统需要管理 CPU --> CPU 通过取值执行 --> 为了提高 CPU 的利用率需要多道程序,交替执行 --> 引入进程的概念来形容程序和程序运行时的变化。
一、使用 CPU。
取值(址)执行,所以管理 CPU 最直观的方法就是设置 PC 值。
二、问题。
当执行一条 IO 指令的时候,需要花费大量的时间。例如下面这个例子:(运行时间每一台电脑都不一样,这只是我的渣渣电脑跑出来的时间)
显而易见地,执行一条 IO 指令花费的时间几乎可以执行 4*10^6 条自增指令。
如果现在有一个程序,先执行 4*10^6 条自增指令,再执行一条 IO 指令,这个时候 CPU 的利用率为 50%。再者,我们平时的程序一般也就 30来条计算指令,这样 CPU 的利用率就会无限接近于 0。
如何解决这个问题?
当执行 IO 操作的时候,CPU 去执行其他的程序,当 IO耗时操作执行完成后,发送一个中断给 CPU,再次执行该程序。
这就是“ 多道程序,交替执行 ”,也就是我们说的 “ 并发 ”(同时出发,交替执行)。
三、怎么做?
除了要修改寄存器 PC 的值,还要将发生变化的寄存器的值,返回地址等等记录下来。
使用 PCB 结构将这些变化的值保存下来,每一个程序都有一个这样的结构。
四、引入进程的概念。
1. 进程的概念不是凭空产生的,是因为我们需要描述程序和这些改变的值,也就是描述一个运行时的程序。其中,所有的不一样保存在 PCB 中。
2. 进程是进行(执行)中的程序。
进程由开始,结束;程序没有。进程会走走停停;走停对程序无意义。进程需要记录寄存器的值;程序不用。
五、总结。
反过来用进程的概念描述 CPU 的管理的使用。
启动一个进程让 CPU 去执行,就是 CPU 的使用/工作。
同时运行多个进程可以提高 CPU 的利用率,操作系统能更好地管理 CPU。
所以,多个进程共同执行就是管理 CPU 的核心样子。