进程的描述与控制
前趋图和程序执行
前趋图
为了更好的描述程序的顺序和并发执行情况,引入了前趋图,前趋图是一个有向无环图(DAG),它用于描述进程之间执行的先后顺序,图中的每个节点可用来表示一个进程或程序段,乃至一条语句,节点间的有向边表示两个节点间存在偏序关系(前趋关系),此外,每个节点还应该具有一个权重,用来表示该节点所罕有的程序量或程序的执行时间,前趋图中不允许出现环
-
初始节点:没有前趋的节点
-
终止节点:没有后继的节点
程序顺序执行
通常,一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在运行时,总是按照某种特定的次序先后执行,仅当前一程序执行完后才运行后一段程序段
程序顺序执行的特征:
- 顺序性
程序按严格的顺序执行
- 封闭性
程序运行时独占全机资源,程序执行时不受外界因素影响
- 可再现性
只要程序的初始条件和执行时的环境相同,则结果相同
程序的并发执行
程序的并发执行中,程序间不再有前趋关系,不再是顺序执行
只有没有前趋关系的程序之间才能并发执行
程序并发的特点:
- 间断性
程序在并发运行时,由于共享系统资源,导致它们之间产生了相互制约的关系,在执行时具有“走走停停”的特征
- 失去封闭性
由于程序并发执行时,程序之间共享系统资源,导致任一程序在运行时的运行环境都会受到其他程序的影响
- 不可再现性
由于失去了封闭性,所以也失去了可再现性
进程的描述
由于程序并发执行时的 失去封闭性 和 不可再现性,所以导致程序之间时不能并发执行的。
进程的定义和特征
为了能够使程序并发执行,同时对并发执行的程序加以描述和控制,从而引入了进程
为了使并发执行的每个程序都能独立运行,在操作系统中为之配置了一种专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程基本的情况和活动过程,进而控制和管理进程
进程实体包含:
-
程序段
-
数据段
-
PCB
进程的特征:
- 动态性
进程由创建产生,由调度而运行,由撤回而消亡
-
并发性
-
独立性
进程作为独立运行、分配资源的独立单位
- 异步性
进程是按异步的方式执行的
进程的基本状态及转换
-
进程的三种状态:
- 就绪状态
进程已经分配到除了cpu以外的所有必要资源,只要获得cpu的调度就可以执行
- 执行状态
cpu调度后,进程便开始执行
- 阻塞状态
当进程执行时发生了某种事件(I/O请求)等暂时无法执行时的状态
当正在执行的进程处于阻塞状态时,此时会引起进程调度,将处理机分配给其他就绪进程
根据阻塞原因的不同,设置多个阻塞队列
-
三种基本状态的转换:

-
创建状态和终止状态:
- 创建状态
进程的创建过程:首先由进程申请一个空白PCB,向PCB中填写用于控制和管理进程的信息,然后系统为该进程分配运行时所必需的资源,最后将进程转入就绪状态并插入就绪队列中
进程是由创建产生的,当进程所需的资源尚不能够得到满足时,进程的创建工作失败,进程不能被调度,此时的状态为创建状态
- 终止状态
进程的终止过程:当进程完成工作或者遇到异常,会进入终止状态,此时进程不能再执行,但其状态码和一些计时统计数据仍会保存在os中,供其他进程收集,一旦其他进程完成了对这些信息的收集,os立即删除该进程(将pcb清零),同时将pcb还给os
引入创建状态和终止状态的五种状态转换图:

挂起操作和进程状态的转换
为了方便用户检查自己的程序、方便操作系统进行负荷调节,操作系统引入了挂起操作(内存->外存)
使用挂起原语(suspend)将某个进程挂起,激活原语(active)激活进程
-
引入挂起原语后进程状态的转换
- 活动就绪->静止就绪
当进程处于未被挂起的就绪状态时,称为活动就绪,将处于活动就绪的进程挂起后,称为静止就绪,此时进程不再被调度执行
- 活动阻塞->静止阻塞
当进程处于未被挂起的阻塞状态时,称为活动阻塞,阻塞后变成静止阻塞
- 静止就绪->活动就绪
active原语激活进程
- 静止阻塞->活动阻塞
avtive激活进程

进程管理中的数据结构
为了使进程能够独立运行,描述和管理进程的执行,引入了专门的数据结构pcb,pcb作为进程实体的一部分,记录了os所需的,用于描述进程当前情况及管理进程运行的全部信息。
进程控制块PCB的作用
- 作为独立运行的基本单位的标志
系统是通过pcb感知进程的存在的,pcb已经成为进程存在于os的唯一标志
- 实现间断性运行方式
当进程因阻塞而暂停运行时,它必须保留运行时的cpu现场信息,再次被调度运行时,还需要恢复其cpu现场信息,从而保证了结果的可再现性
- 提供进程管理需要的信息
os总是通

本文详细介绍了操作系统的进程描述与控制,包括进程的前趋图、程序的顺序和并发执行、进程状态转换、进程控制块PCB的作用和内容、进程的创建、终止、阻塞、唤醒、挂起与激活。此外,还涵盖了进程同步的机制,如信号量、管程,以及进程通信的不同类型和实现方式。文章最后讨论了线程的基本概念,比较了进程与线程的区别,并分析了线程的实现和管理。
1509

被折叠的 条评论
为什么被折叠?



