第 4章 进程管理
2011年 10月 16日星期日 第 4章 进程管理 2/45
第 4章目录
? 4.1 进程的概念及实体
? 4.2 进程的控制与调度
? 4.3 进程通信
? 4.4 进程调度 与 死锁
? 4.5 UNIX进程管理技术
? 4.6 线程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 3/45
在现代计算机系统中,
一般是以进程作为分配资源
的基本单位,也是以进程作
为独立运行的基本单位,并
以进程的观点来设计和研究
操作系统。
4.1 进程的概念及实体
2011年 10月 16日星期日 第 4章 进程管理 4/45
4.1 进程的概念及实体
4.1.1进程概念的引入
4.1.2进程的基本概念
4.1 进程的概念及实体
2011年 10月 16日星期日 第 4章 进程管理 5/45
4.1.1进程概念的引入
4.1.1.1前趋图
4.1.1.2程序的顺序执
单道程序运行情况
4.1.1.3程序的并发执行
1,两道程序运行情况
2,多道程序运行情况
4.1.1.4程序并发执行的条件
4.1 进程的概念及实体
2011年 10月 16日星期日 第 4章 进程管理 6/45
4.1.1.1前趋图
4.1.1 进程的引入
继续
2011年 10月 16日星期日 第 4章 进程管理 7/45
4.1.1.1前趋图续
例:一个大程序由 9个可独立运行的程序段 P1、
P2,P3,P4,P5,P6,P7,P8,P9组成,程序
执行的时间关系描述为如图 4.1 具有 9个结点
的前趋图。 P1→ P2的关系,称 P1是 P2的前趋,
P2是 P1的直接后继。不存在 P2→ P1的关系。
请指出图中结点的前趋关系 。
4.1.1 进程的引入
2011年 10月 16日星期日 第 4章 进程管理 8/45
4.1.1.2程序的顺序执行
4.1.1 进程的引入
2011年 10月 16日星期日 第 4章 进程管理 9/45
单道程序运行情况
4.1.1 进程的引入
2011年 10月 16日星期日 第 4章 进程管理 10/45
4.1.1.3程序的并发执行的前趋图
4.1.1 进程的引入
2011年 10月 16日星期日 第 4章 进程管理 11/45
1、两道程序运行情况
4.1.1 进程的引入
继续
2011年 10月 16日星期日 第 4章 进程管理 12/45
2、多道程序运行情况
4.1.1 进程的引入
继续
2011年 10月 16日星期日 第 4章 进程管理 13/45
2、多道程序运行情况
请看动态 CAI演示。
4.1.1 进程的引入
2011年 10月 16日星期日 第 4章 进程管理 14/45
4.1.1.4程序并发执行的条件
? 程序并发执行是有条件的。在程
序并发执行时,是绝对不允许出
现“与时间有关的错误的”。
? 下面用前趋图的方法进行分析。
4.1.1 进程的引入
具有 4个结点的前趋图
4.1.1 进程的引入
继续
具有 4个结点的前趋图
4.1.1 进程的引入
分析这四个结点的前趋图, 如图 4.10。 因结点 s1、
s2可以并行, 无前趋关系, 而 s1,s3不允许并发,
或 s2,s3不允许并发, s1,s3有前趋关系, s2,s3有
前趋关系, 有 s1→s 3、, s2→s 3,; s1是 s3的前趋, s2
也是 s3的前趋, s3是 s1的直接后续, s3也是 s2的直接
后续 。 s3、, s4不允许并发, 有 s3→s 4,s3是 s4的前
趋, s4是 s3的直接后续 。
2011年 10月 16日星期日 第 4章 进程管理 17/45
4.1.2进程的基本概念
4.1.2.1进程的定义 和 特征
4.1.2.2进程状态 和 演变
4.1.2.3进程实体
4.1.2进程的基本概念
请看动态 CAI演示,
2011年 10月 16日星期日 第 4章 进程管理 18/45
进程的定义
进程( Process)是一个
具有独立功能的程序关于某
数据集合的一次运行活动。
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 19/45
进程的 特征
? 动态性,进程是程序的一次执行活
动;
? 并发性,几个进程可以同时存在于
一个系统中,各进程按照各自独立
的、不可预知的速度向前推进。
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 20/45
进程状态
? 就绪( Ready)状态
? 运行( Running)状态
? 阻塞( Blocked)状态
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 21/45
进程状态的转换
运行
就绪 阻塞
被调度 等待事件
阻塞原因解除
时间片到
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 22/45
进程实体
进程实体由三部分组成,
( 1)程序。
( 2)数据集合。
( 3)进程控制块 PCB( Process
Control Block)。
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 23/45
PCB包含的信息
?





?




?





?




?





?





?




?




4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 24/45
PCB的组织方式
? 线性表方式
? 链表方式
4.1.2进程的基本概念
2011年 10月 16日星期日 第 4章 进程管理 25/45
4.2进程控制
? 4.2.1进程的创建和撤消
? 4.2.2 阻塞与唤醒
? 4.2.3 挂起和激活
4.2 进程的控制与调度
2011年 10月 16日星期日 第 4章 进程管理 26/45
4.2.1进程的创建和撤消
? 进程控制由操作系统中的原语实现
? 1,创建进程原语
? 2,撤消进程原语
? 撤消原语一般由其父进程或祖先发出,
自己不会撤消自己。系统收回该进程
占用的资源,最后消去其 PCB。
4.2 进程的控制与调度
2011年 10月 16日星期日 第 4章 进程管理 27/45
4.2.2 阻塞与唤醒
? 正在运行的进程,当出现某种原因
无法再运行时,比如要调用的页不
在内存中,会产生缺页中断,进程
通过调用阻塞原语 block()把自己阻
塞。阻塞是进程自身的一种主动行
为。
4.2 进程的控制与调度
2011年 10月 16日星期日 第 4章 进程管理 28/45




4.2 进程的控制
2011年 10月 16日星期日 第 4章 进程管理 29/45
4.3进程的同步与通信
? 4.3.1基本概念
? 4.3.2加锁与开锁
? 4.3.3 信号量机制
? 4.3.4信号量上的 P,V操作
? 4.3.5 经典进程同步问题
? 4.3.6 监督机制
? 4.3.7 进程通信
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 30/45
4.3.1基本概念
4.3.1.1 临界资源和临界区
4.3.1.2 进程的互斥
4.3.1.3 进程的同步
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 31/45
4.3.1.1 临界资源和临界区
4.3进程的同步与通信
临界资源
临界区
2011年 10月 16日星期日 第 4章 进程管理 32/45
临界资源
把一次仅允许一个进程使用的资
源称为临界资源 ( Critical Resource) 。
如:卡片输入机、打印机、磁带机等。
软件中的变量、数据、表格,甚至文
件也可以是临界资源。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 33/45
临界区
把一个进程访问临界资源的那段
代码称为临界区 ( Critical Section)。
请看动态 CAI演示。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 34/45
4.3.1.2进程的互斥
为说明什么是进程的互斥,现看一
看两个排队进程共享就绪队列的
例子,请看动态 CAI演示,
插入就绪队列 的问题。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 35/45
分析插入就绪队列 的问题
1.在 插入就绪队列中谁是临界资
源? 谁是临界区?
2.为什么 F进程会被独立?
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 36/45
1.在 插入就绪队列中谁是临界资
源? 谁是临界 区?
被竞争访问就绪队列是临界资源。
排队进程的作用是 判断和修改新来
的进程的链接指针,它就是访问 临
界资源的那段代码,即临界区。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 37/45
2.在插入就绪队列问题中为什么
F进程会被独立?
由于 E进程尚未完成指针的链接,
就被中断,而进入 F进程的中断
务程序只能完成判断,无法挂入,
所以中断返回后,不再会有中断
信号理 F进程,所以 F进程就像
掉入了大海再也找不到了。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 38/45
4.3.1.3 进程的同步
把某进程未获得合作进程发来消息
之前,该进程等待,消息到来之
后方可继续执行的进程合作关系,
称为进程的同步。
4.3进程的同步与通信
2011年 10月 16日星期日 第 4章 进程管理 39/45
4.3.2加锁与开锁
它用一个变量 W来代替某种临界资源的状
态,W=0表示资源可用,W=1表示资源正被使
用,W又称为锁或锁位。
◆ 加锁原语 Lock(W)定义如下,
( 1)测试 W是否为零;
( 2)若 W=0,则 1→W ;
( 3)若 W=1,则返回到( 1)。
◆ 开锁原语 Unlock(W)定义如下,
( 1) 0 →W 。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 40/45
4.3.3 信号量机制
信号量机制, 是荷兰计算机科学家
E.W.Dijkstra首先提出的, 并于 1968
年在 T.H.E操作系统中予以实现 (P,
V是荷兰语, 发信号, 和, 等待, 二
词的第一个字母 )。
继续
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 41/45
4.3.3 信号量机制
信号量机制是一种卓有成效的进
程同步工具 。 在操作系统中, 通
常有,1.整型信号量机制
2.记录型信号量机制
3.信号量集机制 。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 42/45
1.整型信号量机制
在操作系统中, 信号量 (semaphore)是
表示资源的物理量, 是一个与队列
有关的整型变量, 其值仅能由 P和 V
操作来改变 。 操作系统利用它的状
态对资源和进程进行管理 。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 43/45
信号量
信号量 S,
信号量 S是一个整型变量,而且
初值非负;对 S只能实施 P( S)和 V
( S)操作,也只有这两种操作才能
改变 S的值;对每一个信号量,都对
应有一个(空或非空)的等待队列,
队列中的进程处于阻塞态。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 44/45
2.记录型信号量机制
记录型信号量机制遵循, 让权等待, 策略,
采用记录型的数据结构, 增加一个进程
链表 L,用于链接所有等待的进程 。 其它
进程做 V操作后, 如果信号量 S,value小
于等于 0,表示有等此信号量的进程, 将
调 wakeup原语, 把 S,L队列中的第一个进
程置为就绪状态后送往就绪队列 。 在
wait(s)原子操作中增加一个, if”条件 。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 45/45
3.信号量集机制。
将进程需要的所有共享临界资源一次全部分配给
它, 其使用后再一起释放 。 对多个临界资源的
分配, 采用原子操作, 要么全部分配到进程,
要么不分配, 也就是说, 只要有一个资源不能
获得, 其它所有资源也都不分配给它 。 为此,
在 wait(s)原子操作中增加一个, AND”条件,
称为 AND型信号量集机制 。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 46/45
4.3.4信号量上的 P,V操作的应用
P( S)操作,
( 1)将 S值减 1;
( 2)若 S< 0,阻塞当前(即施行 P操作)
的进程,并将它插入到该信号量的等待
队列中,调度另一就绪进程运行;
( 3)若 S≥0,则当前进程继续运行。
请看动态 CAI演示,P操作
继续
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 47/45
V操作
V( S)操作,
( 1)将 S值增 1;
( 2)若 S≤0,从该信号量的等待队列中
移出一进程,使其由阻塞态变成就绪态,
并插入到就绪队列中,当前进程继续运
行;
( 3)若 S> 0,当前进程继续运行。
c V操作 继续
请看动态 CAI演示,v操作
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 48/45
PV操作的应用
1.利用信号量实现进程互斥
请看动态 CAI演示,进程互斥模型
2,利用信号量实现进程同步
请看动态 CAI演示,进程同步模型
3,利用信号量描述前趋关系
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 49/45
3.利用信号量描述前趋关系
4.3 进程通信
继续
2011年 10月 16日星期日 第 4章 进程管理 50/45
3.利用信号量描述前趋关系
有两合作进程 P1,P2。 P1有 c1,P2
有 c2。如果希望有 c1→c 2这种前
趋关系,可用信号量来描述。
请分析。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 51/45
4.3.5经典进程同步问题
4.3.5.1生产者与消费者
请看动态演示,PV操作的综合应用
4.3.5.2哲学家进餐问题
请看动态演示:哲学家进餐问题
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 52/45
4.3.6 监督机制
定义:一个监督程序定义了一个数据结构
和能为并发进程所执行 (在该数据结构上 )
的一组操作,这组操作能同步进程和改
变监督程序中的数据。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 53/45
4.3.6 监督程序的示意
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 54/45
4.3.7 进程通信
4.3.7.1进程通信类型
高级通信可分为三类,
1.共享存储器系统 (共享某些数据结构 )
2.消息传递系统 (用原语来实现通信 )
3.管道通信系统 (以文件为传输介质 )
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 55/45
4.3.7 进程通信
4.3.7.2消息通信
1,消息缓冲,消息缓冲是
P.B.Hansen首先于 1969年提出的一
种进程通信方式,由 缓冲区传递消息
2,管道,所谓管道,是指通过连接
某些读、写进程进行进程通信的共
享文件,或 pipe文件。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 56/45
4.4进程调度与死锁
4.4.1进程调度的基本概念
4.4.2进程调度算法
4.4.4 死锁的基本概念
4.4.5死锁的对策
4.4.6银行家算法
4.4进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 57/45
4.4.1进程调度的基本概念
根据进程状态的转变重新分配 CPU。
需要选定算法,修改 PCB表,执行
分配 CPU,调度程序把控制权交给
选 中的进程,使其运行。
4.4进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 58/45
调度算法应解决的两个问题
( 1)当 CPU空闲时,选哪个就绪进程
分配给它 CPU;
( 2)进程占有 CPU时,它能占有 CPU
多长时间。 继续
4.4 进程的调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 59/45
4.4.2进程调度算法
4.4.2.1静态优先数法
请看动态演示,
4.4.2.2 动态优先数法
请看动态演示,
4.4.2.3 时间片轮转法
请看动态演示,
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 60/45
静态优先数法
指进程创建时所确定的进程优先数
在进程的整个生存期内不再变动。通常
按以下规则来确定优先数,
( 1)按进程的类型
( 2)按资源使用要求
( 3)按用户要求
2011年 10月 16日星期日 第 4章 进程管理 61/45
动态优先数法
指根据进程的某些动态特性来确定优
先数,因而系统要在进程生存期内经常地
修改各进程的优先数。动态优先数的确定
由以下规则来确定,
( 1)进程占有 CPU时间的长短;
( 2)就绪进程等待 CPU时间的长短。
2011年 10月 16日星期日 第 4章 进程管理 62/45
时间片轮转法
将就绪进程按先来先服务 FCFS
原则排队,调度程序每次将 CPU分
配给队列中的第一个进程。其运行
时间不能超过分给它的时间片( q
秒),若时间片用完而进程还没完
成,它也必须释放 CPU并排到就绪
队列的队尾,等待下次调度。
2011年 10月 16日星期日 第 4章 进程管理 63/45
4.4.4 死锁的基本概念
死锁是因竞争资源而引起的一种
具有普遍性的现象。
请看动态演示,死锁的比喻
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 64/45
4.4.5死锁的对策
死锁的对策, 概括起来, 有如下四个
方面,
·死锁预防 (deadlock prevention)
·死锁避免 (deadlock avoidence)
·死锁检测 (deadlock detection)
·死锁恢复 (deadlock recovery)
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 65/45
4.4.6银行家算法
银行家算法是由 E.W.Dijkstra于 1968年
提出的。
1.条件
2.算法
3.例题
请看动态演示,银行家算法
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 66/45
银行家算法的条件
1.银行有若干顾客共享资金。顾客必须一开始 就提前说明借款总额。
2.顾客交易期间,每次都以一个单位方式工作 。
3.顾客在借到一个单位前可等一个时间。
当顾客借款总额达到其开始声明的最大总数时
还清全部借款。
4.假如银行使他当前全部顾客在有限的时间内
完成他们的交易则是安全的。
继续
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 67/45
4.4.6银行家算法
2.算法
银行算法如下,
主顾:剩余申请额=最大申请额-已
借款额
银行:库存现金=资金总额-各主顾
已借款额之总和
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 68/45
3.例题:系统将对以下进程分配资源,根据银行
家算法,怎样分配顺序才能保证避免死锁?
系 统 状 态
用户进程 已占有资源数 最大需求数
① 40 80
② 20 100
③ 100 200
④ 0 40
⑤ 20 40
系统可分配数,20
4.4 进程调度与死锁
2011年 10月 16日星期日 第 4章 进程管理 69/45
4.5 UNIX进程管理技术
? 4.5.1 UNIX进程的数据结构
? 4.5.2 UNIX进程的控制
? 4.5.3 UNIX进程的调度
? 4.5.4 UNIX进程的通信
? 4.5.5 UNIX共享内存的系统调用
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 70/45
4.5.1 UNIX进程的数据结构
? 在 UNIX系统中,进程控制块 (PCB)由 proc结构、
user结构两部分实现。
? proc结构是进程映象最常用的部分,proc结构
记录了进程的状态、优先数等直接与进程调度
有关的内容,proc结构必须常驻内存。
? 每一个进程被分配的一个区,叫做 U区,是
user结构,不运行时,user结构可能被对换到
外存。 继续
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 71/45
4.5.1 UNIX进程的数据结构图
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 72/45
4.5.1 UNIX进程的数据结构分析
? 1,proc的数据结构
? 2,user的数据结构
? 3,寄存器的内容
? 4,地址变换机构
? 5,进程的三个逻辑段
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 73/45
UNIX进程的数据结构
? PROC结构
? USER结构
? 用户栈
? 用户地址空间正文段
? 数据段
? 硬件寄存器
? 区表
? 页表
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 74/45
4.5.2 UNIX进程的控制
? 4.5.2.1 UNIX进程树的形成
? 4.5.2.2 UNIX进程创建和终止有关的系统
调用
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 75/45
unix






2011年 10月 16日星期日 第 4章 进程管理 76/45
4.5.2.2 UNIX进程创建和终止有关的系统调用
? 1,进程的创建,fork( ) 系统调用
? 2,执行程序,exec()系统调用 与 fork()
? 连用 。
? 3,进程的终止,exit( ) 系统调用
? 4,进程的同步,wait( ) 系统调用
? 5,库函数 system
? 4.5.2.3 UNIX进程状态的转变
2011年 10月 16日星期日 第 4章 进程管理 77/45
4.5.3 UNIX进程的调度
? 4.5.3.1 UNIX进程的调度算法
? 4.5.3.2 UNIX进程调度与交换
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 78/45
4.5.4 UNIX进程的通信
? 4.5.4.1 UNIX的 sleep/wakeup原语
? 4.5.4.2 UNIX进程的管道功能
? 1,创建无名管道
? 2,创建有名管道 FIFO文件
? 4.5.4.3 UNIX进程的消息队列
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 79/45
4.5.5 UNIX共享内存的系统调用
? 一、有关创建和终止共享内存段
? 的系统调用
?二、用文件映射虚拟存储地址空间
? 的系统调用
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 80/45
UNIX的睡眠 /唤醒原语
? 睡眠原语 sleep(chan,pri),
( 1)使调用它的进程放弃 CPU,以 chan
作为等待原因进入等待状态,并把进程
优先数修改为 pri;
( 2)调用进程调度程序 swtch,完成运
行进程的切换工作。
? 唤醒原语 wakeup(chan),
( 1)把所有因 chan原因而处于等待状态
的进程唤醒,使它们变成就绪状态。
4.3 进程通信
2011年 10月 16日星期日 第 4章 进程管理 81/45
死锁
定义,死锁是因竞争资源而引起的一种
具有普遍性的现象。系统中两个或多个
进程无限期地等待永远不会发生的条件,
称此系统处于死锁态。
产生死锁的原因,
4.4 死锁
2011年 10月 16日星期日 第 4章 进程管理 82/45
( 1)系统资源不足;
( 2)进程推进顺序不合适。
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 83/45
资源的概念
? 可抢占的资源和不可抢占的资源
? 共享资源和独享资源
? 永久性资源和临时性资源
4.4 死锁
2011年 10月 16日星期日 第 4章 进程管理 84/45
死锁的必要条件
? 互斥条件
? 不可抢占条件
? 部分分配条件
? 循环等待条件
4.4 死锁
2011年 10月 16日星期日 第 4章 进程管理 85/45
死锁的对策
? 死锁预防 (deadlock prevention)
? 死锁避免 (deadlock avoidence)
? 死锁检测 (deadlock detection)
? 死锁恢复 (deadlock recovery)
4.4 死锁
2011年 10月 16日星期日 第 4章 进程管理 86/45
UNIX进程的控制
? 进程的创建 fork()
? 进程的执行 exec()
? 进程的等待 wait()
? 进程的终止 exit()
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 87/45
UNIX进程的调度
? UNIX进程的调度算法
? 采用动态优先数法,优先数小者优先级高
? 采用可抢占式调度方式
? UNIX进程的调度与交换
? 由 sched()过程实现进程的交换
? 由 switch()过程实现进程调度
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 88/45
UNIX进程的通信
? Sleep/wakeup原语
? 实现临界区管理与进程间的同步
? UNIX进程的管道功能
? 由 pipe()创建无名管道
? 创建有名管道 FIFO文件
? UNIX进程的消息队列
? 消息队列工具 IPC
? IPC工具的产生
? 消息队列的产生、发送、接收、控制
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 89/45
4.6 线程的基本概念
? 4.6.1 线程的引入
? 4.6.2线程与进程的比较
? 4.6.3用户级线程和内核支持的线程
? 4.6.4线程的应用
? 请看动态 CAI演示:运行 char4.htm
4.5 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 90/45
线程的引入
? 线程是进程内的一个执行单元,是
进程内的一个可调度实体。
? 线程的基本状态
– 就绪状态
– 备用状态
– 运行状态
– 等待状态
– 转换状态
– 终止状态
4.6 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 91/45
线程的引入
?好比发现了分子之后又发现了原
子一样,在操作系统中引人进程
之后又引人了线程的概念,这是
为了减少程序并发执时所付出的
时空开销,使操作系统具有更好
的并发性。
? 继续
4.6 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 92/45
线程的定义
?线程的定义是:线程是进程内的
一个执行单元;是进程内的一个
可调度的实体。一个线程是在同
一进程内部按步执行的一个明确
的序列。线程的概念解决了在进
程空间可以形成多条执行通路,
从而解决程序快速并发执行的问
题。一个线程执行一个子任务。
4.6 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 93/45
线程与进程的比较
? 线程由进程创建,线程是进程的一个组
成部分
? 进程中多个线程都在所属进程的同一地
址空间活动
? 资源分配是分给进程的
? CPU是分给线程的
? 线程在执行中也需要协作同步
4.6 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 94/45
用户线程和内核支持线程
? 用户线程
– 这类线程的创建和消亡只存在于用户级,不
须通过中断进入内核,内核 不知线程的存
在,线程与内核无关。
? 内核支持线程
– 这类线程的创建和消亡依赖内核,在内核中
保留一张线程控制块,内核用这个线程控制
块对线程进行控制。
4.6 UNIX进程管理技术
2011年 10月 16日星期日 第 4章 进程管理 95/45
线程的应用
? 在 JAVA中使用线程
? 制作动画时使用线程
? 在客户-服务器结构中使用线程
4.6 UNIX进程管理技术
本章动态演示,
演示 4.0 多道程序的执行
演示 4.1 静态优先数法
演示 4.2 动态优先数法
演示 4.3 时间片轮转法
演示 4.4 进程状态的转变
演示 4.5 临界区的比喻
演示 4.6 插入就绪队列的例子
演示 4.7 进程的同步模型
演示 4.8 进程的互斥模型
演示 4.9 P操作
演示 4.10 V操作 继续
演示 4.12 死锁的比喻
演示 4.13 银行家算法
演示 4.14 线程的概念
演示 4.15 单线程与多线程的区别
演示 4.16 线程与进程的区别
演示 4.17 用户级线程与内核支持线程的区别
演示 4.18 线程的应用
演示 4.19 UNIX进程映象
演示 4.20 UNIX进程数据结构
演示 4.21 进程的父子关系
演示 4.22 UNIX进程树的形成
演示 4.23 UNIX用户注册过程
演示 4.24 UNIX的进程调度算法
演示 4.25 哲学家进餐问题
演示 4.26 Solaris 2 中的线程
本章录音讲解目录
录音讲解 38个
名称 播放时间 ( 分钟 )
1.程序的顺序执行 2
2.单道程序时序 2
3.两道程序时序 2.5
4.多道程序时序 2.5
5.比较 2.5
6.进程特征与定义 5.5
7.进程状态的转变 4.5
8.UNIX进程状态 2
9.进程实体 5
10.进程控制原语 5
11.UNIX进程 5
12.挂起原语 3.5
13.调度算法 5
本章录音讲解目录
14.静态优先数法 2.5
15.动态优先数法 1.5
16.时间片轮转法 6
17.进程通信概要 2.5
18.临界资源 1
19.举例引入就绪队列的插入 1
20.进程的同步 2.5
21.进程的互斥 1
22.加锁与开锁 3
23.UNIX睡眠 /唤醒原语 5
24.信号量, PV操作 4
25.互斥模型 3
26.同步模型的第一种情况 3.5
本章录音讲解目录
27.同步模型的第二种情况 5
28.生产者与消费者 5
29.消息通信 1.5
30.消息缓冲 1
31.消息队列 4
32.管道 2
33.死锁的概念 2.5
34.资源的概念 5
35.死锁的必要条件 2
36.银行家算法 5
37.结论 0.2
38.小结 5.5
第 4章结束
注,操作方法见引论及第 1章的
最后说明