小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
操作系统进程管理
进程的基本概念:程序、进程、线程、管程
程序执行
前趋图:有向无环图,用于描述进程或程序各部分之间的执行顺序。 节点:表示一个进程、程序段,或一条语句。
有向边:表示两个节点之间存在前趋、后继关系。
如果进程 Pi 和 Pj 之间存在前趋后继关系,可表示为 Pi→Pj,即 Pj 开始执行之前 Pi 必须完成
Pi 是 Pj 的直接前趋
Pj 是 Pi 的直接后继
程序的顺序执行
多道程序环境下,在一段时间内,宏观上有多道程序在同时执行。
优点:方便程序员检测和校正程序错误。 缺点: 系统吞吐量小。 资源利用率低。
程序的并发执行:
多道程序技术使得不存在前驱关系的程序或程序段间有可能“同时”执行,而并发执行在提高系统性能的同时,也为程序的执行带来不确定性。
多道程序环境下,在一段时间内,宏观上有多道程序在同时执行。 单处理机系统中,每一时刻只有一道程序执行,故微观上多道程序分时交替执行。
程序的并发执行:并发执行在提高系统性能的同时,也为程序的执行带来不确定性。 特征
间断性:并发执行的程序共享全机资源,相互制约,一个程序的执行过程未必连续。
失去封闭性:任一程序的执行受其他并发程序影响。
不可再现性:任一程序的执行结果受并发程序的总体执行速度影响。
程序的并发执行:特征
不可再现性:共享变量的值不确定性。
程序的并发执行:并发执行在提高系统性能的同时,也为程序的执行带来不确定性。 优点 系统吞吐量大。 资源利用率高。
缺点:程序之间互相制约,正确性保证难度大。
并发与共享是操作系统最基本的两个特性,即在系统中(内存)同时存在若干相互独立的程序,这 些程序在系统中既交叉运行,又要共享系统中的资源,这就会引起一系列的问题。
对资源的竞争
运行程序之间的通信
程序之间的合作与协同
静态概念的程序无法解决存在的问题,必须引入一个能够 描述程序在内存中运行状态的的动态概念---进程。
进程引入
进程
程序在某数据集上的一次执行,是系统进行资源分配和调度的独立单位。
结构特征:由进程控制块(PCB)、程序、数据三部分组成。
动态性:进程最基本的特征,一次执行过程,具有生命周期。
并发性:多个进程实体同存于内存,且能在一段时间内同时运行。
独立性:能够独立运行、独立分配资源和独立接受调度的基本单位。
异步性:按各自独立的、不可预知的速度向前推进。
基本状态
就绪:进程已获得除CPU之外的所有必需资源,一旦得到CPU控制权,可以立即运行。一个队列。
执行:进程已获得运行需要的所有资源,对应程序正在处理机上执行。 一个进程。
阻塞:正在执行的进程由于发生某事件而暂停执行,放弃处理机而处于的状态,又称等待状态。多个队列。