什么是进程同步 进程同步的概念
进程同步是指在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。那么你对进程同步了解多少呢?以下是由小编整理关于什么是进程同步的内容,提供给大家参考和了解,希望大家喜欢!
进程同步的的概念
我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。 如果我们对一个消息或事件赋以唯一的消息名,则我们可用过程 wait (消息名) 表示进程等待合作进程发来的消息,而用过程 signal (消息名) 表示向合作进程发送消息。
进程同步的制约关系
在多道程序环境下,系统中各进程以不可预测的速度向前推进,进程的异步性会给系统造成混乱,造成了结果的不可再现性。为防止这种现象,异步的进程间推进受到二种限制:
(1)资源共享关系
多进程共享资源,例如各进程争用一台计算机,这时各进程使用这台打印机时有一定的限制。如各进程随意使用打印机,会造成打印机结果交织在一起难以区分。所以必须由系统统一分配,每次只允许一个进程使用一段时间打印机,等该进程使用完毕后再将打印机分配给其它进程。这种使用原则称为互斥使用。
(2)相互合作关系
在某些进程之间还存在合作关系,例如图2-2程序并发执行图中一个程序的输入、计算、打印三个程序段作为三个进程并发执行,由于这三个进程间存在着相互合作的关系,即先输入再计算、最后再打印的关系,所以这三个进程在并发执行时推进序列受到限制,要保证其合作关系正确,进程间这种关系称为同步关系。
用P,V原语操作实现同步
步骤:
1. 为各并发进程设置私用信号量
2. 为私用信号量赋初值 3. 利用P、v原语和私用信号量规定各进程的执行顺序。 实例:
例:设进程PA和PB通过缓冲区队列传递数据。PA为发送进程、PB为接收 进程。PA发送数据时调用发送过程deposit(data),PB接收数据时调用过程remove(data)。且数据的发送和接收过程满足如下条件:
1)在PA至少送一块数据入一个缓冲区之前,PB不可能从缓冲区中取出数据(假定数据块长等于缓冲区长度)
2)PA往缓冲队列发送数据时,至少有一个缓冲区是空的;
3)由PA发送的数据块在缓冲队列中按先进先出(FIFO)方式排列。 描述发送过程deposit(data)和接收过程remove(data)。