目录
4.1 进程(线程)间相互作用
- 相关进程、无关进程
 - 与时间有关的错误
 
4.2 进程互斥
- 计算机系统中资源共享的程度可分为三个层次:互斥、死锁和饥饿。
 - 临界资源访问过程分为四个部分:进入区、临界区、退出区、剩余区。
 - 进程同步机制准则:空闲则入、忙则等待、有限等待、让权等待。
 - 进程互斥的软件方法: 
  
- 单标志算法
 - 双标志、先检查算法
 - 双标志、后检查算法
 - 先修改、后检查、后修改者等待算法
 
 - 进程互斥的硬件方法 
  
- TS指令
 - Swap指令
 
 
4.3 信号量
P原语相当于进入区操作,V原语相当于退出区操作。P用wait(s),V用signal(s)。
4.5 管程
- 采用P\V同步机制的缺点:
 - 程序易读性差、程序不利于修改和维护、正确性难以保证。
 - 一个管程是一个由过程、变量及数据结构等组合的集合。
 - 一个管程由四部分组成:管程名称、共享数据说明、对数据进行操作的一组过程和对共享数据赋初值的语句。
 - 管程的特点:模块化、抽象数据类型、信息隐蔽。
 
Pthread调用
| 相关 | 线程调用 | 描述 | 
| 互斥量 | pthread_mutex_init | 创建一个互斥量 | 
| pthread_mutex_destroy | 撤销一个已存在的互斥量 | |
| pthread_mutex_lock | 获得一个锁或阻塞 | |
| pthread_mutex_trylock | 获得一个锁或失败 | |
| pthread_mutex_unlock | 释放一个锁 | |
| 条件变量 | pthread_cond_init | 创建一个条件变量 | 
| pthread_cond_destroy | 撤销一个条件变量 | |
| pthread_cond_wait | 阻塞以等待一个信号 | |
| pthread_cond_signal | 向另一个线程发信号唤醒 | |
| pthread_cond_broadcast | 全部唤醒 | 
4.6 进程通信
- 共享内存
 - 消息机制 
  
- 消息缓冲通信
 - 信箱通信
 - 管道通信
 
 









