进程概念
从空间的维度上来看,进程是一个由多种信息构成的综合体,它包括代码段、数据段、堆、堆栈等,图示如下:
综合进程关联的各种信息而构成了的一个数据结构,我们称为进程控制块(Process Control Block,PCB ),也称为任务控制块(task control block),这些相关的信息包括:
- 进程状态
- 程序计数器
- CPU调度信息
- 内存管理信息
- 记账信息
- I/O状态信息
从时间的维度上来看,进程是一个活动实体,表现在两个方面:
其一,它牵连到CPU和内存,触发CPU各种逻辑算术运算和内存中的数据活动,比如,磁盘上有一个可执行二进制文件,双击它时,就会衍生出来一个进程,双击它这一动作会触发一系列连锁反应,这包括程序加载到内存,通过PC逐个地引用程序指令到CPU内执行,数据在内存和寄存器之间传输等等。
其二,它的状态是随时间而变化的,且必须遵从一个原则:一次只有一个进程可在一个处理器上运行,但是许多进程可处于就绪或等待状态。如下是一个进程状态图模型:
新的:进程正在创建。
就绪:进程等待分配处理器。
等待:进程等待发生某个事件(如I/O完成或收到信号)。
运行:指令正在执行。
终止:进程已经完成执行。
进程调度
多道程序是从宏观上来看进程状态,有2个或以上进程处于非终止运行状态,微观处却只有一个进程在单处理器系统上正在运行,这就好比我们只有一双眼睛,某一时刻