第二章:进程的描述与控制(2)
2.4管程机制
管程是把所有进程对某一临界资源使用进行集中控制,以提高可靠性
管程的定义
- 一个管程定义了一个数据结构和能为并发进程调用的在该数据结构上的一组操作过程,这组忽视操作过程,能同步进程和改变管程中的数据.
管程的组成
- (1)局部于管程的共享变量说明
- (2)对该数据结构进行操作的一组互斥执行的过程
- (3)对局部于管程的数据设置初值等语句
实现管程的三个关键性问题
- (1) 互斥
- (2)条件变量
- (3)同步
管程的分析
-
核心思想
- 实现一种包含过程、变量、数据结构的独立模块
- 任何时刻,只能有一个进程在管程内
- 由编译器支持,实现进程间的互斥
-
方法分析
-
优点
- 实现了进程互斥的自动化
-
缺点
- 依赖于编译器,无法通用或普及
-
2.6线程
1、定义
- 线程是进程中可独立调度执行的子任务,一个进程可以有一个或多个线程,它们共享所属进程所拥有的资源.
2. 线程的属性
- 线程有线程控制表TCB
- 线程共享所属进程的资源
- 线程是处理器的独立调度单位
- 线程具有动态性
3.线程与进程的比较
-
拥有资源
- 进程是拥有资源的一个独立单位,它可以申请并拥有自己的资源。
-
调度
- 引入线程的os,进程作为资源拥有的基本单位,线程是调度和分派的基本单位
-
并发性
- 引入线程的OS,不仅不同进程的线程之间可以并发执行,而正在一个进程的多个线程间亦可并发执行
-
系统开销
- 进程创建或撤销时的开销明显大于创建或撤销线程时的开销
2.7 进程通信
进程之间的信息交换
1.进程的同步与互斥–低级通信
2.高级通信
-
优点
- 效率高和使用方便
3.三种基本的进程通信方式
-
共享存储器系统
- 共享内存变量(信号量机制)
- 共享内存区
-
消息传递系统
-
消息缓冲
- 又称报文,指进程之间相互传递的数据
-
信箱
-
-
管道通信方式
- 指用于连接一个读进程和一个写进程以实现他们间通信的共享文件,又称pipe文件
4.发送和接受原语
- 发送原语(send)
- 接受原语(receive)