阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。 P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,

admin2005-03-20  57

问题 阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
   在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。
   P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
   V(S):S:=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

选项

答案(1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1)

解析 本题考查的是并发系统的同步与互斥控制。
   在并发系统中,同时存在的多个进程在执行速度上是相对独立的,它们以各自的运行速度向前推进。但是,由于多个并发进程或者共享系统资源,或者合作完成某项任务,所以它们之间常常存在着相互制约或彼此依赖的关系,进程之间的这种制约和依赖关系可以归结为两种基本形式:同步和互斥。
   一般来说,一个进程相对于另一个进程的运行速度是不确定的,也就是说进程是在异步环境下运行的,每个进程都有各自独立的、不可预知的速度向前推进。但是相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达了这些点后,除非另一进程已经完成了某些操作,否则就不得不停下来等待这些操作结束。这就是进程间的同步。
   在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(critical resource,CR),如打印机、公共变量、内存工作区、表格等。临界区(critical section,CS)是进程中对临界资源实施操作的那段程序。
   在多道程序系统中,一般都使用P、V操作原语通过信号量实现进程的同步和互斥。信号量是一种特殊的变量,它具有以下特性:
   ▲  信号量是一个整型变量。
   ▲  每一个信号量表示一种系统资源的状况,其值表示资源当前可用的数量。
   ▲  每一个信号量都对应一个空或非空的等待队列,该队列就是信号量所表示的资源的等待队列。
   ▲  对信号量只能实施P、V操作,只有P、V操作才能改变其值。
   P操作的功能是:当进程执行P操作时,首先将信号量S减一,其结果为:若 S≥0,则该进程继续运行;若S<0,则阻塞该进程,并把它插入道信号量S的等待队列中。
   V操作的功能是:当进程执行V操作时,首先将信号量S加1,其结果是:若S>0,则该进程继续执行;如果S≤o,则释放S信号量等待队列中队首的等待进程,解除其阻塞状态,而调用V操作的当前进程继续执行。
   P、V操作是一对操作,若有对信号量的P操作,必定有对该信号量的V操作,这样才能保证资源被合理地分配和释放。
   问题1:缓冲区BUFFER是临界资源,信号量S1表示缓冲区中空闲单元的数目,初值为N,信号量S2表示缓冲区中消息的数目,初值为0。
   显然,发送进程海产生一条消息,将消耗一个空闲的缓冲区单元,所以将消息送入缓冲区时应先执行一个P(S1),写入消息后执行一个V(S2)。当接收进程执行时,若缓冲区中有消息,则可读取,然后将释放一个空闲单元,所以接收进程进入其临界区后先执行一个P(S2),读取消息后执行一个V(S1)。
转载请注明原文地址:https://kaotiyun.com/show/qyDZ777K
0

相关试题推荐
最新回复(0)