操作系统进程管理(1)程序的顺序执行、程序的并发执行、进程引入

1,037 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

操作系统进程管理

进程的基本概念:程序、进程、线程、管程

image.png

程序执行

前趋图:有向无环图,用于描述进程或程序各部分之间的执行顺序。 节点:表示一个进程、程序段,或一条语句。

有向边:表示两个节点之间存在前趋、后继关系。

如果进程 Pi 和 Pj 之间存在前趋后继关系,可表示为 Pi→Pj,即 Pj 开始执行之前 Pi 必须完成

Pi 是 Pj 的直接前趋

Pj 是 Pi 的直接后继

image.png

程序的顺序执行

多道程序环境下,在一段时间内,宏观上有多道程序在同时执行。

优点:方便程序员检测和校正程序错误。 缺点: 系统吞吐量小。 资源利用率低。

程序的并发执行:

多道程序技术使得不存在前驱关系的程序或程序段间有可能“同时”执行,而并发执行在提高系统性能的同时,也为程序的执行带来不确定性。

多道程序环境下,在一段时间内,宏观上有多道程序在同时执行。 单处理机系统中,每一时刻只有一道程序执行,故微观上多道程序分时交替执行。

程序的并发执行:并发执行在提高系统性能的同时,也为程序的执行带来不确定性。 特征

间断性:并发执行的程序共享全机资源,相互制约,一个程序的执行过程未必连续。

失去封闭性:任一程序的执行受其他并发程序影响。

不可再现性:任一程序的执行结果受并发程序的总体执行速度影响。

程序的并发执行:特征

不可再现性:共享变量的值不确定性。

image.png 程序的并发执行:并发执行在提高系统性能的同时,也为程序的执行带来不确定性。 优点 系统吞吐量大。 资源利用率高。

缺点:程序之间互相制约,正确性保证难度大。

并发与共享是操作系统最基本的两个特性,即在系统中(内存)同时存在若干相互独立的程序,这 些程序在系统中既交叉运行,又要共享系统中的资源,这就会引起一系列的问题。

对资源的竞争

运行程序之间的通信

程序之间的合作与协同

静态概念的程序无法解决存在的问题,必须引入一个能够 描述程序在内存中运行状态的的动态概念---进程。

进程引入

进程

程序在某数据集上的一次执行,是系统进行资源分配和调度的独立单位。

image.png 结构特征:由进程控制块(PCB)、程序、数据三部分组成。

动态性:进程最基本的特征,一次执行过程,具有生命周期。

并发性:多个进程实体同存于内存,且能在一段时间内同时运行。

独立性:能够独立运行、独立分配资源和独立接受调度的基本单位。

异步性:按各自独立的、不可预知的速度向前推进。

基本状态

就绪:进程已获得除CPU之外的所有必需资源,一旦得到CPU控制权,可以立即运行。一个队列。

执行:进程已获得运行需要的所有资源,对应程序正在处理机上执行。 一个进程。

阻塞:正在执行的进程由于发生某事件而暂停执行,放弃处理机而处于的状态,又称等待状态。多个队列。

状态转换

image.png