2016第二章进程管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I2 C1
对n个用户作业的处理 —— 作业1: I1 C1 P1 作业2: I2 C2 P2 作业n: In Cn Pn
I3
C2
P1
(2)特征
I4 C3 P2 哪些程序段的执行必须是顺 –间断 (异步)性:运行-暂停-运行 序的?为什么? –失去封闭性 哪些程序段的执行是并行 –程序与程序的运行不再一一对应 的?为什么? –不可再现性:程序的运行结果与其推进速度有关,发生与时间有关的错误
问题:当A、B两道程序并发运行时,x,y,u可能有几种赋值 结果?各自对应的语句执行顺序分别是怎样的?
8
与时间有关的错误课堂分组讨论:
程序A x=1; y=0; If x>=1 then y=y+1; z=y; 程序B x=0; t=0; If x<1 then t=t+2; u=t;
2.2 进程的基本概念
三. 进程控制块
3、进程控制块内容
(3)进程调度信息: 进程状态; 进程优先级; 事件; 其他信息 (4)进程控制信息: 程序和数据地址; 进程同步和通信信息; 资源清单; 链接指针
2.2 进程的基本概念
4、进程控制块的组织方式:链接方式
(1)就绪链表; ready_q_start
8
2.2 进程的基本概念
一. 进程的定义及特征
简单定义:一个程序的一次运行过程。
特征:
• 动态性:进程最基本的特征 • 结构特征: =程序+数据+PCB
1 2 3
一个可执行的程 序
该程序所需的相关 数据(变量、工作 空间,缓冲区等)
该程序的执行上 下文(Context)
2.2 进程的基本概念
(1)在不支持多进程的操作系统下运行
依次运行程序A、程序B、程序Cwenku.baidu.com
(2)在支持多进程的操作系统下运行
建立进程A、B、C;对应的程序分别是程序A、B、C; 若系统采用时间片轮转的调度策略: 则在屏幕上有3个窗口,同时显示3个排序过程: 实际上这3个程序在轮 流地占用CPU时间,由于CPU的高速度,使我们看到的是这3个程序在 同时执行。 1
二. 进程的状态及变迁
课堂分组讨论:对下列状态变迁图,回答后面的问题。
运 行
3 4
1
就绪 2
等待
(1)变迁1的发生是否会引起变迁3的发生?需要什么条件?
(2)变迁4的发生是否会引起变迁3的发生?需要什么条件?
补充:进程管理功能:
(1)进程控制:控制进程状态转换; (2)进程同步:进程间运行顺序的协调:
next running PCB1 PCB2
PCB9

(2)执行进程;
next
PCB4
运行指针 PCB3 next PCB7
(3)等待链表; wait_lpt_q_start

打印机等待队列结构
(4)空白链表。
2.3 进程控制
原语(primitive):
由若干条指令构成的“原子操作(atomic operation)” 过程,完成某种特定的功能,作为一个整体而不可分割-- 要么全都完成,要么全都不做。
二. 进程的状态及变迁
1. 三种基本状态
• 就绪状态: 进程分配到必要的资源,等待获得CPU执行的状态。 组织 成一个或多个就绪队列。 • 运行状态: 进程分配到必要的资源,在CPU上执行时的状态 • 等待状态(阻塞状态、睡眠状态): 正在执行的进程由于发生某事件而暂时无法继续执行时, 便放弃处理机而处于暂停状态。组织成一个或多个阻塞队列 。
S1 S2 S4
S5 S3
S6
S7
2.1 进程的引入
二. 程序的顺序执行
程序是为解决某一问题而设计的一系列指令的集合,是算法的形式 化描述。
例:read(disk,&a,4); /*从磁盘读a*/ c=a+2; printf(“c=%f\n”,c);
I → C →P • 顺序执行的特征
– 顺序性
I1 C1 P1
• (1) 从定义上看,进程是程序处理数据的过程,而程序是
一组指令的有序集合;
• (2) 进程具有动态性、并发性、独立性和异步性等,而程 序不具有这些特性; • (3)从进程结构特性上看,它包含程序、数据和PCB; • (4)进程和程序并非一一对应:通过多次执行,一个程序 可对应多个进程;通过调用关系,一个进程可执行多个程 序。
→I →C →P
I2
C2
P2
– 封闭性 – 可再现性 :程序的运行结果与其推进速度无关
作业1
作业2
2.1 进程的引入
三. 程序的并发执行
(1)概念;
若干个程序段同时在系统中运行,这些 程序段的执行在时间上是重叠的,一个程 I1 序段的执行尚未结束,另一个程序段的执 行已经开始,即使这种重叠是很小的一部 分,也称这几个程序段是并发执行的。
程序A的①与程序B 的② ③两个语句 的执行顺序: n的初始赋值 打印的结果 n的最终赋值 ①②③ 10 11 0 ② ③① 10 10 1 ②① ③ 10 10 0 8
四. 与时间有关的错误
课堂分组讨论:
程序A x=1; y=0; If x>=1 then y=y+1; z=y; 程序B x=0; t=0; If x<1 then t=t+2; u=t;
② PCB
记录进程的动态特征,该进程与其他进程和 系统资源的关系。
2
2.2 进程的基本概念
段寄存器是根据内存分段的管理模式而设置的。内存单元的 32 位进程控制块( CPU有8个32位的通用寄存器 ‫ج‬PCB) EAX、EBX、ECX、EDX、ESI、 物理地址由段寄存器的值和一个偏移量组合而成。 32位CPU EDI、EBP和ESP 。 2、进程控制块的内容 有 6个,16位CPU有4个 。 EAX :称为累加器,可用于乘、除、输入 /输出等操作; (1)进程标识符: CS :代码段寄存器,其值为代码段的段地址; EBX: 称为基地址寄存器 , 可作为存储器指针来使用; 内部标识符、外部标识符 DS :数据段寄存器,其值为数据段的地址; ECX: 称为计数寄存器 , 控制循环次数; (2 )处理机状态信息 : 中断允许位、陷入标志、 ES :附加段寄存器,其值为附加数据段的地址; EDX: 称为数据寄存器,在进行乘、除运算时,作为默认的操作 任务嵌套标志、特权标 通用寄存器; SS:堆栈段寄存器,其值为堆栈段的地址; 数参与运算,也可用于存放I/O的端口地址。 志、溢出标志、符号标 段寄存器; 志、零标志、进位标志 FS:附加段寄存器,其值为附加数据段的地址; ESI :变址寄存器,是内存移动和比较操作的源地址寄存器; 指令计数器; 等 GS:附加段寄存器,其值为附加数据段的地址。 EDI :变址寄存器,是内存移动和比较操作的目标地址寄存器 程序状态字(PSW); EBP:指针寄存器,存放堆栈帧的始址; ESP: 指针寄存器,当前堆栈栈顶位置。
2.1 进程的引入
四. 与时间有关的错误
程序A n := n+1; ① 程序B print(n); ② n := 0; ③ 程序并发执行时,若共享 了公共变量,其执行结果 与各并发程序的相对速度 有关,即给定相同的初始 条件,若不加以控制,也 可能得到不同的结果,此 为与时间有关的错误。
向系统申请一个 空的PCB 结构
将PCB入就绪队列 将PCB入总链队列
N 出错
有空PCB ? Y
返回进 程pid
2
2.3 进程控制
三. 进程撤销:kill():回收进程资源
入口
由运行指针得当前进程的pid
释放本进程所占用的资源给父进程或系统
该进程从总链队列中摘下
释放PCB结构 转进程调度
四. 进程阻塞: sleep()
第二章 进程及进程管理
杭州电子科技大学计算机学院
目录
1. 进程的引入 1. 进程的基本概念 2. 进程控制 3. 进程同步 4. 经典进程同步问题 5. 进程通信
6. 进程调度
2.1 进程的引入
一. 前驱图
是一个有向无循环图,图中每个结点表示一个语句、一段程 序或一个进程
有向边< Vi , Vj >表示Vj仅在 Vi执行完后才能开始执行
一. 进程间的制约关系
两种可能的执行次序:
A: p1: r1 := x;r1:= r1+1;x := r1;
p2:
B:
r2:= x;r2 := r2+1; x := r2 ;
p1: r1 := x;
p2: 情况A: 情况B:
互斥方式; 同步方式: 直接通信; 间接通信。 进程间竞争临界资源 进程间相互合作
(3)进程通信:进程间的信息交换
(4)进程调度:
2.2 进程的基本概念
三. 进程控制块PCB (process control block)
1、进程的组成
程序与 数据 进程 控制块 PCB
①程序与数据
描述进程本身所应完成的功能
(2)在支持多进程的操作系统下运行
建立进程C、D;对应的程序分别是程序C、D; 由于进程C是I/O量较大的进程,而进程D是计算量较大的进程,故在 系统进程调度的控制下,两个进程并发执行。 可以看到打印机不断打印工资报表;而处理机不停地计算,最后屏幕 显示计算的结果。 1
2.2 进程的基本概念
(1) (2) (3) (4)
(a) (b) (c) (d)
解答:按(1)-(4)——(a)-(d)或者反过来: x=1,y=1,u=2; 按(1)(2)(a)(b)(3)(4)(c)(d);(1)(a)(2)-(4)(b)-(d): x=0,y=0,u=2; 按(a)(1)-(4)(b)-(d):x=1,y=1,u=2; 按(a)(1)(b)-(d)(2)-(4):x=1,y=1,u=0
进程控制原语:
(1)创建进程原语 (5)阻塞进程原语 (2)撤销进程原语 (6)唤醒进程原语
2.3 进程控制
二. 进程创建 : create (name,priority)
创建一个具有指定标识符的进程,建立进程的PCB结构。
入口 分配必要资源,建 立相关数据结构
查PCB总链
Y 出错
有同名 ?
将相关信息填入 PCB相应项
2.2 进程的基本概念
讨论在多进程操作系统环境下程序的执行
例1:讨论3个排序程序在不同的操作系统环境中执行结果
程序A:冒泡排序算法,在屏幕的左1/3处开设窗口显示其排序过程; 程序B:堆排序算法,在屏幕的中1/3处开设窗口显示其排序过程; 程序C:快速排序算法,在屏幕的右1/3处开设窗口显示其排序过程。
一. 进程间的制约关系
1、间接制约:
相互竞争资源 (1)临界资源: 例1:两个进程A、B共享一台打印机 例2:两个进程共享一个变量x P1和P2两个进程都对共享变量x执行加1的操作:
p1: r1 := x;r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ;
进程特征
• 独立性:是系统进行资源分配和调度的独立单位,是能独 立运行的基本单位 • 并发性:程序在建立进程后并发运行
• 异步性:进程以不可预知的速度向前推进
定义:可并发执行的程序在一个数据集合上的一 次运行过程,是系统进行资源分配和调度的一个独 立单位。
2.2 进程的基本概念
进程与程序的区别
入口
2.3 进程控制
保护进程的CPU现场到PCB结构中
置该进程为”等待”状态
将该进程PCB结构插入到等待队列中
转进程调度
五. 进程唤醒: wakeup()
入口
2.3 进程控制
找到该等待队列
将队列首进程移出此等待队列
将该进程置为“就绪”状态, 并将PCB结构插入到就绪队列中
返回
2.4 进程之间的制约关系
2.2 进程的基本概念
二. 进程的状态及变迁
2. 进程状态变迁图
运行
等待事件 (系统服务请求, 如请求I/O)
就绪
事件发生
阻塞
思考问题:
1.在进程状态转换时,下列哪一种状态转换是不可能发生的? A)就绪态→运行态 C)运行态→等待态 B)运行态→就绪态 D)阻塞态→运行态
2.某进程在运行过程中需要等待从磁盘上读入数据,此时该进 程的状态将( )。 A.从就绪变为运行 B.从运行变为就绪 C.从运行变为阻塞 D.从阻塞变为就绪
2.2 进程的基本概念
例2:讨论2个程序在不同的操作系统环境中执行结果
程序C:打印工资报表的程序;
程序D:计算1000以内所有素数并显示最后结果。
(1)在不支持多进程的操作系统下运行:顺序执行C、D
可以看到,先是打印机不停地打印工资报表,打完后,接着运行程序C ,不停地计 算,最后显示所计算的结果。
相关文档
最新文档