1 进程的基本概念
1.1 程序的顺序执行和特征
程序顺序执行时的特征
- 顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。
- 封闭性:程序是在封闭的环境下执行的,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。
- 可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。
1.2 前驱图
前趋图(Precedence Graph)是一个有向无循环图,记为 DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
应当注意,前趋图中必须不存在循环。(b)这种前趋关系是不可能满足的。
1.3 程序的并发执行和特征
并发不再做解释,上一章已经做了阐释。
程序并发执行时候的特征
程序的并发执行,虽然提高了系统吞吐量,但也产生了下述一些与程序顺序执行时不同的特征。(从资源使用的角度上来说)
- 间断性
- 失去封闭性
- 不可再现性
1.4 进程的特征与状态
为使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了“进程”的概念。先对进程的特征加以描述。
- 结构特征->PCB进程控制块
- 动态性:“它由创建而产生,由调度而执行,由撤消而消亡”。可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的。
- 并发性:
- 独立性:
- 异步性:
进程的三种基本状态:
进程执行时的间断性决定了进程可能具有多种状态。事实上,运行中的进程可能具有以下三种基本状态。
1) 就绪(Ready)状态
当进程已分配到除 CPU 以外的所有必要资源后,只要再获得 CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
2) 执行状态
进程已获得 CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。
3) 阻塞状态
正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。致使进程阻塞的典型事件有:请求 I/O,申请缓冲空间等。通常将这种处于阻塞状态的进程也排成一个队列。有的系统则根据阻塞原因的不同而把处于阻塞状态的进程排成多个队列。
挂起状态:在另一些系统中,又增加了一些新状态,最重要的是挂起状态。