- 1、本文档共147页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程管理
2.1 前驱图和程序执行
2.2进程的描述
2.3进程控制
2.4进程同步
2.5经典进程同步问题
2.6进程通信
2.7线程的基本概念
2.1前驱图和程序执行
程序的顺序执行
前趋图与前趋关系
程序的并发执行
1、程序顺序执行的特征
(1)程序的顺序执行
语句1
语句2
语句3
语句4
语句5
I2
C2
P2
程序1
程序2
(2)特征
①顺序性
②封闭性
③可再现性
2、前趋图与前趋关系
前趋图(Precedence Graph)
一个有向无循环图
描述程序或程序段之间执行的前后关系
前趋关系“”
如果:(Pi,Pj) ∈,也可以写成: PiPj
则称:Pi是Pj的直接前趋, Pj是Pi的直接后继
初始结点:没有前趋
终止结点:没有后继
观察下图,初始结点是哪个?终止结点是哪个?有哪些前驱关系?
思考:下图是否为前趋图?
S1
S2
S3
3、程序的并发执行
输入程序
计算程序
打印程序
并发执行时的特征
间断性——“停停走走”
失去封闭性——原因:多个程序共享资源
不可再现性
程序A
{
n=n+1;
}
程序B
{
print(n);
n=0;
}
例如:有两个循环程序A和B,共享一个变量n。程序A和B以不同的速度运行。可能出现的情况如下:
1、A快B慢,得到的n值为: n+1,n+1,0
2、B快A慢,得到的n值为:n,0,1
3、n:=n+1在print(n)和n:=0之间,如图,得到的n值为 n,n+1,0
2.2 进程的描述
进程的定义和特征
进程的基本状态和转换
挂起操作和状态转换
进程管理中的数据结构
2.2.1、进程的定义和特征
进程的定义
进程的特征
进程的定义
进程:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程实体=程序段+相关的数据段+PCB
Linux的进程实体组成
Linux进程是由三部分组成:正文段、用户数据段和系统数据段。
(1) 正文段(text)——程序段
正文段是只能读不能修改的指令代码,它允许系统中多个进程共享这一代码段。
(2) 用户数据段(user segment)——数据段
用户数据段是进程执行时直接操作的所有数据(包括全部变量在内),这些信息是可以被修改的。
(3) 系统数据段(system segment)——PCB
系统数据段存放着进程的控制信息,即进程控制块(PCB),它存放了程序的运行环境。
PCB
程序段
数据段
进程的结构图示:
进程控制块
动态特征的集中反映
描述要完成的功能
操作对象及工作区
进程的其他定义:
进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
进程是并发程序的一次执行过程。是系统进行资源分配和调度的独立单位。
进程是可以和别的计算并发执行的计算。
进程与程序的区别
进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。
进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。
进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。
进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
进程的特征
动态性:“它由创建而产生,由调度而执行,由撤销而消亡”。进程具有动态的地址空间(数量和内容),地址空间上包括:
代码(指令执行和CPU状态的改变)
数据(变量的生成和赋值)
系统控制信息(进程控制块PCB的生成和删除)
独立性:进程是一个能独立运行、独立分配资源和独立调度的基本单位。各进程的地址空间相互独立。
并发性:引入进程的目的正是为了使其程序能和其他进程的程序并发执行;
异步性: 进程按各自独立的、不可预知的速度向前推进
结构性:进程由程序段、数据段及PCB三部分组成,在Linux中称为“进程映像”
2.2.2 进程的基本状态及转换
就绪状态(Ready)
得到了除CPU以外的所有必要资源
执行状态(Running)
已获得处理机,程序正在被执行
阻塞状态(Blocked)
因等待某事件发生而暂时无法继续执行,从而放弃处理机,使程序执行处于暂停状态
1、进程的三种基本状态
进程基本状态转换图
创建状态
为新进程创建PCB,填写信息,
该进程转入就绪状态并插入就绪队列中。
引入创建状态可保证进程的调度在创建工作完成后,确保对PCB操作的完整性。
终止状态
等待OS进行善后处理
将PCB清零,将PCB空间返还系统。
终止态的进程不能再执行,但需等待其它进程完成对
文档评论(0)