管理CPU的最直观方法
设好PC初值就完事,CPU会自动地顺着地址下移,不断取指执行。
看看这样有没有问题?提出问题。
当遇到IO操作之类的,CPU会处于等待状态(时间很长),等着fprintf(fp, "%d", sum)
执行完,才会继续执行下去。
怎么解决?
遇到等待时,就切换到其他程序继续执行,等待原程序打印成功,就切换回去,继续执行原程序。
就好比,自己烧水的过程:往水壶里面装满水,打开灶台,等待水壶烧开。在等水开的这段时间,我总不会一直呆坐着,而是要忙其他事情。
多道程序、交替执行,好东西啊!
在等待时间,做另一个程序的事情,大大增加了CPU的利用率。
一个CPU面对多个程序?
一个CPU上交替执行多个程序:并发。
修改寄存器PC就行了吗?
运行时的程序和静态程序不一样。
每个程序有了一个存放信息的结构:PCB。
要记录执行暂停切换出去前的程序状态!
引入“进程”概念
运行时的程序和静态程序不一样。
程序 + 所有这些不一样 => 一个概念。(所有的不一样都表现在PCB中)
进程是进行(执行)中的程序
- 进程有开始、有结束,程序没有
- 进程会走走停停,走停对程序无意义
- 进程需要记录不同时刻变量的值ax,bx,…,程序不用