计算机操作系统教程(第3版)电子素材3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章进程管理3.1进程的概念
3.1.1程序的并发执行
1. 程序(program)
2. 程序的顺序执行
3. 多道程序系统中程序执行环境的变化
4. 程序的并发(concurrent)执行
图3.1堆栈的取数和存数过程
2
计算机操作系统教程(第3版)3.1.2进程的定义
3.2进程的描述
3.2.1进程控制块PCB
1. 描述信息
2. 控制信息
3. 资源管理信息
4. CPU现场保护结构
3.2.2进程上下文
图3.2进程上下文结构
图3.3UNIX System Ⅴ进程上下文组成
计算机操作系统教程(第3版) 3 3.2.3进程上下文切换
图3.4进程上下文的切换过程
3.2.4进程空间与大小
图3.5进程空间示例
3.3进程状态及其转换
3.3.1进程状态
3.3.2进程状态转换
图3.6进程状态转换
4
计算机操作系统教程(第3版)3.4进程控制
3.4.1进程创建与撤销
1. 进程创建
图3.7创建原语流图
2. 进程撤销
图3.8撤销原语流图
计算机操作系统教程(第3版) 5 3.4.2进程的阻塞与唤醒
图3.9阻塞原语图
图3.10唤醒原语
3.5进程互斥
3.5.1资源共享所引起的制约
1. 临界区
图3.11多进程共享内存栈区示例
6
计算机操作系统教程(第3版)
2. 间接制约
3. 什么是互斥
3.5.2互斥的加锁实现
3.5.3信号量和P,V原语
1. 信号量(semaphore)
2. P,V原语
图3.12P原语操作功能
图3.13V原语操作功能
计算机操作系统教程(第3版)7
8
计算机操作系统教程(第3版)3.5.4用P,V原语实现进程互斥
3.6进程同步
3.6.1同步的概念
计算机操作系统教程(第3版)9
3.6.2私用信号量
3.6.3用P,V原语操作实现同步
图3.14缓冲区队列
10
计算机操作系统教程(第3版)
3.6.4生产者-消费者问题
图3.15生产者-消费者问题
3.7.1进程的通信方式
图3.16消息的组成
图3.17缓冲区或邮箱通信结构
3.7.3邮箱通信
图3.18邮箱通信结构
3.7.4进程通信的实例——和控制台的通信
图3.19和控制台通信示例
1. KCP和DCP的动作
2. CCP和KCP及DCP的接口
3. CCP与用户进程的接口
图3.20CCP和用户进程接口
4. CCP的动作
3.7.5进程通信的实例——管道
1. 管道pipe
图3.21管道通信
2. 示例
图3.22父进程和子进程P1,P2通信例子
图3.23例2程序流程图
3.8死锁问题
3.8.1死锁的概念
1. 死锁的定义
图3.24死锁的概念
2. 死锁的起因
3. 产生死锁的必要条件
3.8.2死锁的排除方法
1. 死锁预防
2. 死锁避免
3. 死锁的检测和恢复
3.9线程的概念
3.9.1为什么要引入线程
3.9.2线程的基本概念
图3.25等效于单线程的进程执行示意图
图3.26多线程情况下进程执行示意图
3.9.3线程与进程的区别
图3.27多线程与进程的关系3.9.4线程的适用范围
图3.28RPC请求处理
计算机操作系统教程(第3版)21 3.10线程分类与执行
3.10.1线程的分类
图3.29线程、进程等的上下文切换开销
3.10.2线程的执行特性
图3.30线程的状态与操作
22
计算机操作系统教程(第3版)
本章小结
习题
3.1有人说,一个进程是由伪处理机执行的一个程序,这话对吗?为什么?
3.2试比较进程和程序的区别。
3.3我们说程序的并发执行将导致最终结果失去封闭性。这话对所有的程序都成立吗?试举例说明。
3.4试比较作业和进程的区别。
3.5UNIX System V中,系统程序所对应的正文段未被考虑成进程上下文的一部分,为什么?
3.6什么是临界区?试举一临界区的例子。
3.7并发进程间的制约有哪2种?引起制约的原因是什么?
3.8什么是进程间的互斥?什么是进程间的同步?
3.9试比较P,V原语法和加锁法实现进程间互斥的区别。
3.10设在书3.6节中所描述的生产者 消费者问题中,其缓冲部分为m个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。重新描述发送过程deposit(data)和接收过程remove(data)。
3.11两进程P A,P B通过两FIFO缓冲区队列连接(如图3.31所示),每个缓冲区长度等于传送消息长度。进程P A,P B之间的通信满足如下条件:
图3.31习题3.11图
(1) 至少有一个空缓冲区存在时,相应的发送进程才能发送一个消息。
(2) 当缓冲队列中至少存在一个非空缓冲区时,相应的接收进程才能接收一个消息。
试描述发送过程send(i,m)和接收过程receive(i,m)。这里i代表缓冲队列。
3.12在和控制台通信的例中,设操作员不仅仅回答用户进程所提出的问题,而且还能