第
第
4
4
章 进程的同步和死锁
章 进程的同步和死锁
§4.1 进程的同步和互斥
4.1.1 进程的同步
1. 进程同步举例
例 . 公共汽车中的司机和售票员。
司机 P1 售票员 P2
while (true) while (true) {
{
启动车辆; 关门;
正常运行; 售票;
到站停车; 开门;
} }
§4.1 进程的同步和互斥
2. 进程同步的概念
进程的同步是指系统中多个进程中发生的事件存在某种
时序关系,需要相互合作,共同完成一项任务。具体说,
一个进程运行到某一点时要求另一伙伴进程为它提供消
息,在未获得消息之前,该进程处于等待状态,获得消
息后被唤醒进入就绪态。
通常,把共同完成一个任务的若干进程称为合作进程。
合作进程在并发执行时必须同步推进才能得到正确的执
行结果。
§4.1 进程的同步和互斥
4.1.2 进程互斥
1. 进程互斥举例
假定系统中只有一台打印机,进程 p1 , p2 都需要使用打印机,如
果让它们同时使用,则两个进程的输出交织在一起,打印出的结果无
法使用。
为了解决这一问题,进程使用之前先要提出申请,一旦系统将打印机
分配给它,就一直由它独占使用,其它申请使用打印机的进程则必须
等待。
进程 p1 和 p2 在逻辑上完全独立,毫无关系,只是由于竞争同一个
物理资源而相互制约。这种进程之间的间接制约关系不具有时间次序
的特征,谁先向系统提出申请,谁就先执行。这种对共享资源的排他
性的使用关系就是进程的互斥关系。
§4.1 进程的同步和互斥
2. 临界资源
在计算机的资源中,有些资源,如上面提到的打印机资源,
一次能被一个进程使用,这类资源称为临界资源
( Critical Resource )。
临界资源可能是硬件,也可能是软件:变量,数据,表格,
队列等。它们虽然可以被若干个进程所共享,但一次能为一
个进程所利用。
为了保证共享临界资源的各个进程能正确运行,当临界资源
由一个进程占用后,其它进程如果要使用它,必须等待占用
进程使用完毕并把它释放后,才能由另一个进程使用。多个
进程在共享临界资源时的这种制约关系称为进程的互斥。
评论0