进程同步与互斥、信号量机制、管程
文章目录
一、进程同步、进程互斥的概念
1.1 进程同步
由于进程具有异步性,也就是说各个并发的进程以各个独立且不可预知的速度向前推进。当我们需要进程按照某种特定的顺序执行时(例如之前所说的管道通信,向管道写数据和从管道读数据的进程是并发执行的,但我们必须保证写数据先执行,读数据进程等待写数据进程完成后再执行),需要依靠操作系统提供的进程同步机制来完成。
1.2 进程互斥
进程的并发需要共享的支持(并发的进程可能需要共享一些系统资源)。资源共享分为互斥共享方式和同时共享方式。
我们将一个时间段内只允许一个进程使用的资源称为临界资源(如物理设备,部分变量、数据、内存缓冲区等)。对临界资源的访问,必须互斥进行(即一个进程访问临界资源时,另一个进程想要访问临界必须要等待)。
对临界资源的访问宏观上分为以下步骤:
对临界资源的互斥访问需要遵循以下原则:
- 空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。
- 忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待。
- 有限等待:对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)。
- 让权等待:当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。