词条 | 进程同步 |
释义 | 同步的概念我们把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。 如果我们对一个消息或事件赋以唯一的消息名,则我们可用过程 wait (消息名) 表示进程等待合作进程发来的消息,而用过程 signal (消息名) 表示向合作进程发送消息。 私用信号量上面我们用wait(消息名)与signal(消息名)的方式,描述了进程同步的一种实现方法。事实上,使用信号量的方法也可实现进程间的同步。 一般来说,我们也可以把各进程之间发送的消息作为信号量看待。与进程互斥时不同的是,这里的信号量只与制约进程及被制约进程有关而不是与整组并发进程有关。因此,我们称该信号量为私用信号量(Private Semaphvre)。一个进程Pi的私用信号量Semi是从制约进程发送来的进程Pi的执行条件所需要的消息。与私用信号量相对应,我们称互斥时使用的信号量为公用信号量。 用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)。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。