第二章进程的描述和控制( Process Description and Control 教学目的 本课为描述程序并发执行引入进程的概念,描述进程的特征、 状态、状态的转换、进程控制块等基本概念。描述控制进程状 态转换的0S内核和进程控制原语的功能。并发性是0S最重要的 特征,进程是0S最基本最重要的概念,进程管理是OS的重点和 难点
第二章 进程的描述和控制(Process Description and Control) 教学目的: 本课为描述程序并发执行引入进程的概念,描述进程的特征、 状态、状态的转换、进程控制块等基本概念。描述控制进程状 态转换的OS内核和进程控制原语的功能。并发性是OS最重要的 特征,进程是OS最基本最重要的概念,进程管理是OS的重点和 难点
教学要求 熟悉进程引入的必要性;熟练掌握进程的定义和特征,熟 练掌握进程的三个基本状态和状态的转换,熟练掌握进程 存在的唯一实体一进程控制块,熟悉进程上下文。 熟悉内核的功能,掌握增加“挂起”、“激活”操作的 五个状态图和状态的转换,熟悉创建、撤消、阻塞、唤醒 挂起和激活进程控制原语的功能,一般了解线程的概念。 了解模块接口法、层次结构法和客户/服务器结构三种操 作系统结构 2001年9月20日8时51分 计算机操作系统22
2001年9月20日8时51分 计算机操作系统 2.2 教学要求: 熟悉进程引入的必要性;熟练掌握进程的定义和特征,熟 练掌握进程的三个基本状态和状态的转换,熟练掌握进程 存在的唯一实体--进程控制块,熟悉进程上下文。 熟悉内核的功能,掌握增加“挂起” 、 “激活”操作的 五个状态图和状态的转换,熟悉创建、撤消、阻塞、唤醒、 挂起和激活进程控制原语的功能,一般了解线程的概念。 了解模块接口法、层次结构法和客户/服务器结构三种操 作系统结构
第一节进程的引入 (1)程序顺序执行与特征 个较大的程序通常都由若干个程序段组成,程序在执行时, 各程序段必须按照先后次序逐个执行。程序各程序段先后执 行次序关系可用前趋图表示 前趋图是一个有向无循环图,图由结点和结点间有向边组成 结点代表各程序段操作,而结点间的有向边表示两程序段操 作之间存在的前趋关系。两程序段Pi和P的前趋关系表示成 Pi-Pj,Pi是Pj的前趋,Pj是Pi的后继。(结合P35图2-1) 2 2001年9月20日8时51分 计算机操作系统23
2001年9月20日8时51分 计算机操作系统 2.3 第一节 进程的引入 (1) 程序顺序执行与特征 一个较大的程序通常都由若干个程序段组成,程序在执行时, 各程序段必须按照先后次序逐个执行。程序各程序段先后执 行次序关系可用前趋图表示。 前趋图是一个有向无循环图,图由结点和结点间有向边组成, 结点代表各程序段操作,而结点间的有向边表示两程序段操 作之间存在的前趋关系。两程序段Pi和Pj的前趋关系表示成 Pi--Pj,Pi是Pj的前趋,Pj是Pi的后继。(结合P35图2-1) P1 C1 I1 I2 C2 P2
进程的引入-1 例 SI: a: -xty s2:b:=a-5 s3:c:=b+1 程序顺序执行特征 顺序性:程序各程序段严格按照规定的顺序执行。 封闭性:程序运行时机内各资源只受该程序控制而改变,执行 结果不受外界因素影响。 可再现性:只要程序执行环境和初始条件相同,程序多次执行, 可获得相同结果。 (2)程序并发执行与特征 并发环境:在计算机系统支持并行操作时,如采用多道程序设 计技术,则内存中多道程序处于并发执行状态。如上述有三个 程序段的作业类,虽然每个作业有前趋关系的各程序段不能在 系统CPU和输入输出各部件并行执行,但一个作业没有前趋关 系的程序段或不同作业的程序段可以分别在CPU和各输入输出 部件并行执行 计算机操作系统24
2001年9月20日8时51分 计算机操作系统 2.4 进程的引入-1 例:s1: a:=x+y s2: b:=a-5 s3: c:=b+1 程序顺序执行特征: 顺序性:程序各程序段严格按照规定的顺序执行。 封闭性:程序运行时机内各资源只受该程序控制而改变,执行 结果不受外界因素影响。 可再现性:只要程序执行环境和初始条件相同,程序多次执行, 可获得相同结果。 (2)程序并发执行与特征 并发环境:在计算机系统支持并行操作时,如采用多道程序设 计技术,则内存中多道程序处于并发执行状态。如上述有三个 程序段的作业类,虽然每个作业有前趋关系的各程序段不能在 系统CPU和输入输出各部件并行执行,但一个作业没有前趋关 系的程序段或不同作业的程序段可以分别在CPU和各输入输出 部件上并行执行
进程的引人-2 程序并发执行(定义) 若干个程序段同时在系统中运行,这些程序的执行在 时间上是重迭的,一个程序段的执行尚未结束,另一个 程序段的执行已经开始,即使这种重迭是很小的,也称 这几个程序段是并发执行的。 并发执行区 2001年9月20日8时51分 计算机操作系统25
2001年9月20日8时51分 计算机操作系统 2.5 进程的引人-2 程序并发执行 (定义) 若干个程序段同时在系统中运行,这些程序的执行在 时间上是重迭的,一个程序段的执行尚未结束,另一个 程序段的执行已经开始,即使这种重迭是很小的,也称 这几个程序段是并发执行的。 P Q R 并发执行区
进程的引入-3 四个上述三个程序段类的作业并发执行的前趋图如下图所示: 3 C C P 2001年9月20日8时51分 计算机操作系统26
2001年9月20日8时51分 计算机操作系统 2.6 进程的引入-3 四个上述三个程序段类的作业并发执行的前趋图如下图所示: C 3 I1 I2 I 3 I 4 C 1 C 2 C 4 P 1 P 2 P 3 P 4 . . . . . . T t1 t2 t3 t4 t5 t6
进程的引入-3 程序并发执行特征: 间断性:程序在并发执行时,由于它们共享资源或为完成同一 项任务而相互合作,使在并发程序之间形成了相互制约的关 系。相互制约将导致并发程序具有“执行-暂仃-执行”这种 间断性活动规律 失去封闭性:程序在并发执行时,是多个程序共享系统中的各 种资源,因而这些资源的状态将由多个程序来改变,致使程 序的运行已失去了封闭性。 不可再现性:程序在并发执行时,由于失去了封闭性,也将导 致失去结果的可再现性。即程序经过多次运行,虽然其各次 的环境和初始条件相同,但得到的结果却各不相同 例:观察者/报告者 2001年9月20日8时51分 计算机操作系统27
2001年9月20日8时51分 计算机操作系统 2.7 进程的引入-3 程序并发执行特征: 间断性:程序在并发执行时,由于它们共享资源或为完成同一 项任务而相互合作,使在并发程序之间形成了相互制约的关 系。相互制约将导致并发程序具有“执行-暂仃-执行”这种 间断性活动规律。 失去封闭性:程序在并发执行时,是多个程序共享系统中的各 种资源,因而这些资源的状态将由多个程序来改变,致使程 序的运行已失去了封闭性。 不可再现性:程序在并发执行时,由于失去了封闭性,也将导 致失去结果的可再现性。即程序经过多次运行,虽然其各次 的环境和初始条件相同,但得到的结果却各不相同。 例:观察者/报告者
进程的引入4 观察者 报告者 begin begin repeat repeat wait a car go through deley a time N=N+1; Print n N=0; until until end end 初始N=n时不同执行序列: N=N+1 Print n: Print n Print n N=N+1; N=0 N=N+1; N=0; 结果各不相同 打印n+1,N=0;打印n,N=1; 打印n,N=0; 2001年9月20日8时51分 计算机操作系统28
2001年9月20日8时51分 计算机操作系统 2.8 进程的引入-4 观察者: 报告者: begin begin repeat repeat wait a car go through deley a time N=N+1; Print N ; N=0 ; until until end end 初始N=n时不同执行序列: N=N+1; Print N; Print N ; Print N ; N=0 ; N=N+1 ; N=0 ; N=N+1 ; N=0 ; 结果各不相同: 打印n+1,N=0; 打印n,N=1; 打印n,N=0;
程序(程序段)并发执行的条件 Berstein条件(自学) 2001年9月20日8时51分 计算机操作系统29
2001年9月20日8时51分 计算机操作系统 2.9 程序(程序段)并发执行的条件 Berstein条件(自学)
22进程的基本概念 2.2.1进程的定义及特征 1进程的定义 由于程序在并发执行时,各次执行的结果不同,所以用 “程序”这个概念已无法描述程序的并发执行,所以必须 引入新的概念-进程来描述程序的并发执行。进程这一术语 最早由麻省理工学院著名的操作系统 MULTICS中提出 进程定义:“可并发执行的程序在一个数据集合上的运行 过程”。 或者“是具有独立功能的程序关于某个数据集合上的一次 运行活动,是系统进行资源分配和调度的抛立单位。(天 引入线程前)” 2001年9月20日8时51分 计算机操作系统210
2001年9月20日8时51分 计算机操作系统 2.10 2.2 进程的基本概念 2.2.1 进程的定义及特征 1 进程的定义 由于程序在并发执行时,各次执行的结果不同,所以用 “程序”这个概念已无法描述程序的并发执行,所以必须 引入新的概念-进程来描述程序的并发执行。进程这一术语 最早由麻省理工学院著名的操作系统MULTICS中提出。 进程定义:“可并发执行的程序在一个数据集合上的运行 过程” 。 或者“是具有独立功能的程序关于某个数据集合上的一次 运行活动,是系统进行资源分配和调度的独立单位。(未 引入线程前)