一、管程:
1、管程的组成:
- 一组局部变量
- 对局部变量操作的一组过程
- 对局部变量进行初始化的语句。
2、管程的特点:
- 任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据;
- 任何时刻,仅允许一个进程在管程中执行某个内部过程。
3、管程如何实现同步:
- 对共享变量互斥操作
- 操作的同步控制: 靠条件变量(主要作用就是进程同步的阻塞和唤醒控制)的操作管理实现
4、管程的优点:
- 保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程。
- 管程可增强模块的独立性
- 引入管程可提高代码的可读性,便于修改和维护,正确性易于保证:采用集中式同步机制
5、管程的缺点:
大多数常用的编程语言中没有实现管程,如果某种语言本身不支持管程,那么加入管程是很困难的。
二、进程通信:
进程通信是指进程之间的信息交换。
1、进程通信的类型:
- 共享存储器系统(操作存储区方式)
- 消息传递系统(发--收方式)send receive
- 管道通信(中间文件方式)字符流形式
- Client-Server system : 套接字(Socket)、远程过程调用(远程方法调用)
2、消息缓冲队列通信机制:
本机通信消息结构,如下:
type message buffer = record
sender; 发送者进程标识符
size; 消息长度
text; 消息正文
next; 指向下一消息缓冲区的指针
end
PCB中需要记录有关通信的信息项
type ProcessControlBlock =record
…
mq; 消息队列队首指针
mutex; 消息队列互斥信号量
sm; 消息队列资源信号量
…
end
3、发送原语、接收原语:
三、线程
进程是一个可拥有资源的独立单位; 是一个可独立调度和分派资源的基本单位;进程实体信息量大,对进程的管理操作越多,与运行时间的比值就越大,运行效率就低。
------------------------------为进一步提高并发效率:
以进程为单位分配资源 将进程划分为多个功能单位调度执行。
线程:进程内的一条执行路径,线程在进程范围内作为执行实体。
多线程系统中,同一个进程中的多个线程
- 共享进程资源
- 可并发执行
轻型实体:只需一点必不可少的、能保证独立运行的资源。(TCB)
线程与进程的比较
调度:线程作为CPU调度的基本单位,而进程只作为其它资源分配单位。
并发性:进程之间可以并发,实质上是不同进程中的两个线程并发。一个进程的多个线程之间亦可并发。
拥有资源:进程间资源相互独立;同一进程的各线程间共享。某进程内的线程在其它进程不可见
系统开销:线程上下文切换在同进程环境下上下文切换要快得多。因为同进程内线程间共享内存地址和打开的文件资源;