3-2009-进程线程模型 操作系统高级 教学课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU现场保护信息:
– 寄存器值(通用、程序计数器PC、状态PSW,地址 包括栈指针)
– 指向赋予该进程的段/页表的指针
2020/9/19
PCB组织方式(1/5)
PCB表:
系统把所有PCB组织在一起,并把它们放在内 存的固定区域,就构成了PCB表
PCB表的大小决定了系统中最多可同时存在的 进程个数,称为系统的并发度 (注:多道程序中的多道与系统并发度不同)
2020/9/19
七状态进程模型(3/4)
激活(Activate):把一个进程从外存转到内存 ;可能有以下几种情况: – 就绪挂起→就绪:没有就绪进程或挂起就绪 进程优先级高于就绪进程时,发生转换 – 阻塞挂起→阻塞:当一个进程释放足够内存 时,系统会把一个高优先级阻塞挂起(系统 认为会很快出现所等待的事件)进程
当各用户对资源使用上发生冲突时,如何处理竞争
2020/9/19
4.与时间有关的错误(1/4)
一飞机订票系统,两个终端,运行T1、T2进程
T1 :
T2:
...
...
read(x);
read(x);
if x>=1 then if x>=1 then
x:=x-1;
x:=x-1;
write(x);
write(x);
2020/9/19
2.并发程序(1/4)
并发环境:
一定时间内,物理机器上有两个或两个以上的程 序同时处于开始运行但尚未结束的状态,并且次 序不是事先确定的
A B
பைடு நூலகம்
B A
A B
B A
2020/9/19
引入并发的目的: 为了提高资源利用率,从而
提高系统效率
并发程序(2/4)
A
CPU DEV1 CPU DEV2
进程控制信息:
– 当前状态 – 优先级(priority) – 代码执行入口地址 – 程序的外存地址 – 运行统计信息(执行时间、页面调度) – 进程间同步和通信;阻塞原因
2020/9/19
PCB的内容(2/3)
– 进程的队列指针 – 进程的消息队列指针
所拥有的资源和使用情况:
– 虚拟地址空间的现状 – 打开文件列表
已完成创建一进程所必要的工作 – 已构造了进程标识符 – 已创建了管理进程所需的表格
但还没有允许执行该进程 (尚未同 意) – 因为资源有限
2020/9/19
中止后,进程移入该状态
– 它不再有执行资格 – 表格和其它信息暂时由辅助
程序保留 可完成一些数据统计工作
当数据不再需要后,进程(和它的 表格)被删除
了解:Linux的相关数据结构
2020/9/19
PCB组织方式(2/5)
链接结构: 同一状态进程的PCB组成一个链表,不同状态
对应多个不同的链表 就绪链表、阻塞链表
索引结构:对具有相同状态的进程,分别设置各 自的PCB索引表,表明PCB在PCB表中的地址
进程队列:不同状态进程分别组成队列 运行队列、就绪队列、等待队列
A
CPU
DEV1
CPU DEV2
CPU
t(s)
10
15
20
25 30
35 40
45
B
DEV1
CPU
DEV2 CPU
DEV2
在并发环境下 CPU利用 = 89% DEV1并发环境下利用 = 33% DEV2并发环境下利用 = 66%
2020/9/19
并发程序(4/4)
特征: (1)程序执行结果的不可再现性
2020/9/19
(1)进程的创建
创建一个PCB 赋予一个统一进程标识符 为进程映象分配空间 初始化进程控制块
– 许多默认值 (如: 状态为 New,无I/O设备或 文件...)
设置相应的链接
– 如: 把新进程加到就绪队列的链表中
2020/9/19
(2)进程的撤消
收回进程所占有的资源 撤消该进程的PCB
2020/9/19
七状态进程模型(4/4)
提交
就绪挂起
事 件 出 现
阻塞挂起
激活 挂起
激活 挂起
2020/9/19
创建
提 交 挂起
调度
就绪
运行
超时

件 出 现
事件 等待
阻塞
释放
退出
William Stallings
3.进程控制块
(Process Control Block,PCB)
概念:
系统为了管理进程设置的一个专门的数据结构 ,用它来记录进程的外部特征,描述进程的运 动变化过程(又称进程描述符、进程属性)
2020/9/19
(3)进程阻塞和进程唤醒
处于运行状态的进程,在其运行过程中 期待某一事件发生,如等待键盘输入、 等待磁盘数据传输完成、等待其它进程 发送消息,当被等待的事件未发生时, 由进程自己执行阻塞原语,使自己由运 行态变为阻塞态
2020/9/19
进程的基本状态
运行态(Running): 进程占有CPU,并在CPU上运行
就绪态(Ready): 一个进程已经具备运行条件,但由于无CPU暂时 不能运行的状态(当调度给其CPU时,立即可以 运行)
等待态(Blocked):阻塞态、封锁态、睡眠态 指进程因等待某种事件的发生而暂时不能运行的 状态(即使CPU空闲,该进程也不可运行)
2020/9/19
William Stallings
4.进程映像 (进程要素)
代码段(用户程序) 数据段(用户数据) 用户栈(堆栈)
– 用于过程调用和参数传递 – 与系统栈区分
进程控制块PCB (进程属性)
– 用户进程不能直接访问、修改自己的PCB
2020/9/19
进程虚拟地址空间
2020/9/19
生活中类比例子
2020/9/19
进程分类
进程的分类: 系统进程 用户进程
系统进程优先于用户进程 daemon: 守护进程/精灵进程
2020/9/19
2.进程的基本状态及其转换
进程的三种基本状态: 运行态、就绪态、等待态
进程在消亡前处于且仅处于三种基本状态 之一
不同系统设置的进程状态数目不同
又称任务(Task)
为了描述程序在并发执行时对系统资源的共享, 所需的一个描述程序执行时动态特征的概念
2020/9/19
程序与进程的区别
进程更能真实地描述并发(程序不能) 进程是由程序和数据两部分组成的 程序是静态的,进程是动态的 进程有生命周期,有诞生有消亡,短暂的;而
程序是相对长久的 一个程序可对应多个进程 进程具有创建其他进程的功能
2020/9/19
七状态进程模型(2/4)
挂起(Suspend):把一个进程从内存转到外存;可 能有以下几种情况: – 阻塞→阻塞挂起:没有进程处于就绪状态或就绪进 程要求更多内存资源时,发生这种转换,以提交新 进程或运行就绪进程 – 就绪→就绪挂起:当有高优先级阻塞(系统认为会 很快就绪的)进程和低优先级就绪进程时,系统会 选择挂起低优先级就绪进程 – 运行→就绪挂起:对抢占式系统,当有高优先级阻 塞挂起进程因事件出现而进入就绪挂起时,系统可 能会把运行进程转到就绪挂起状态
操作系统高级
Operating Systems Advanced Class
北京大学软件与微电子学院 2009春季
2020/9/19
第三讲 进程线程模型
• 多道程序设计 • 进程管理 • 进程控制 • 线程 • 进程(线程)调度(CPU调度)
2020/9/19
一、多道程序设计
• 顺序程序 • 并发程序 • 多道程序设计
系统利用PCB来控制和管理进程,所以PCB是 系统感知进程存在的唯一标志
进程与PCB是一一对应的
2020/9/19
PCB的内容(1/3)
进程描述信息:
– 进程标识符(process ID),唯一,通常是一个整数 – 进程名,通常基于可执行文件名(不唯一) – 用户标识符(user ID);进程组关系
五状态进程模型
2020/9/19
William Stallings
七状态进程模型(1/4)
就绪状态(Ready):进程在内存且可立即进入 运行状态
阻塞状态(Blocked):进程在内存并等待某事件 的出现
阻塞挂起状态(Blocked, suspend):进程在 外存并等待某事件的出现
就绪挂起状态(Ready, suspend):进程在外 存,但只要进入内存,即可运行
2020/9/19
PCB组织方式(3/5)
2020/9/19
William Stallings
PCB组织方式(4/5)
索引表 就绪队列
等待队列 1 等待队列 2
PCB表
PCB 1 PCB 2 PCB 3 PCB 4 PCB 5 PCB 6 PCB 7
… PCB n
2020/9/19
PCB组织方式(5/5)
并发程序执行的结果与其执行的相对速度有关,是不确 定的 (2)在并发环境下程序的执行是间断性的 执行——停——执行 (3)资源共享
系统中资源被多个程序使用 (4)独立性和制约性
独立的相对速度、起始时间 程序之间可相互作用(相互制约)
可分为直接作用和间接作用 (5)程序和计算不再一一对应
(计算:一个程序的执行)
进程上下文环境(context)
对进程执行活动全过程的静态描述 由进程的用户地址空间内容、硬件寄存器内容及 与该进程相关的核心数据结构组成
用户级上下文:进程的用户地址空间(包括用户 栈各层次),包括用户正文段、用户数据段和用 户栈
寄存器级上下文:程序计数器、程序状态寄存器 、栈指针、通用寄存器的值
2020/9/19
与时间有关的错误(4/4)
p1
p2
g1
c1
c2
ci
pi
g2
g3
并发环境下程序间的制约关系
2020/9/19
二、进程的基本概念
进程的概念 进程的状态及其转换 进程控制块(Process Control Block) 进程的特征
2020/9/19
1.进程的概念
定义:Process 进程是具有独立功能的程序关于某个数据集合上 的一次运行活动,是系统进行资源分配和调度的 独立单位
2020/9/19
3.多道程序设计(Multiprogramming)
多道程序设计:允许多个程序同时进入内存并 运行,其目的是为了提高系统效率
考虑因素: • 在多道程序环境下如何向用户提供服务 • 在并发程序之间如何正确传递消息(通信) • 如何对CPU进行调度,保证每个用户相对公平地得到
CPU (CPU是一个只可调度,不可分配的资源) • 如何管理其他资源
CPU
10
15
20
30
40
DEV 1
CPU
DEV2 CPU DEV2
B
10
20
25
30
40
t(s) t(s)
在顺序环境下,A先执行,B再执行 CPU利用率= 40/80 = 50%
DEV1利用率= 15/80 =18.75% DEV2利用率= 25/80 =31.25%
2020/9/19
并发程序(3/4)
系统级上下文:
– 静态部分(PCB和资源表格) – 动态部分:核心栈(核心过程的栈结构,不同进程在
调用相同核心过程时有不同核心栈)
2020/9/19
5.进程控制
创建、撤消进程以及完成进程各状态之间的转 换,由具有特定功能的原语完成 进程创建原语 进程撤消原语 阻塞原语 唤醒原语 挂起原语 激活(解挂)原语 改变进程优先级
2020/9/19
运行
就绪
等待
进程的基本状态及其转换
2020/9/19
状态转换:
在进程运行过 程中,由于 进程自身进 展情况及外 界环境的变 化,这三种 基本状态可 以依据一定 的条件相互 转换
进程状态转换的原因
就绪 --> 运行
– 调度程序选择一个新的进程运行
运行 --> 就绪
– 运行进程用完了时间片 – 一个高优先级进程处于就绪状态,中断正在运行的进程
...
...
2020/9/19
与时间有关的错误(2/4)
复制一个记录
get copy put
Cobegin
get;
copy;
f
s
t
g
put;
Coend
2020/9/19
与时间有关的错误(3/4)
f st g
初始状态 3,4,...,m 2 2 (1,2) g,c,p 4,5,...,m 3 3 (1,2,3) g,p,c 4,5,...,m 3 3 (1,2,2) X c,g,p 4,5,...,m 3 2 (1,2,2) X c,p,g 4,5,...,m 3 2 (1,2,2) X p,c,g 4,5,...,m 3 2 (1,2,2) X p,g,c 4,5,...,m 3 3 (1,2,2) X 设信息长度为m,有多少种可能性?
运行 --> 等待
– 当一个进程必须等待时
• OS尚未完成服务 • 对一资源的访问尚不能进行 • 初始化I/O 且必须等待结果 • 等待某一进程提供输入 (IPC)
等待 --> 就绪
– 当所等待的事件发生时
2020/9/19
进程的其他状态
创建状态,终止状态 挂起(suspend)状态
进程没有占用内存空间 处在挂起状态的进程映像在磁盘上 (调节负载,对换)
相关文档
最新文档