单选题 进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责产生数据并放入缓冲区,进程B从缓冲区读数据并输出。进程A和进程B之间的制约关系是( )。
A.互斥关系 B.同步关系 C.互斥和同步关系 D.无制约关系

【正确答案】 B
【答案解析】并发进程因为共享资源而产生相互之间的制约关系,这些制约关系在程序中如果没有得到正确的控制和实现,就会产生同步/互斥问题。制约关系可以分为两类:①互斥关系(也称为问接制约关系),指进程之间因相互竞争使用独占型资源(互斥资源)所产生的制约关系;②同步关系(也称为直接制约关系),指进程之间为协同工作需要交换信息、相互等待而产生的制约关系。本题中两个进程之间的制约关系是同步关系,进程B必须在进程A将数据放入缓冲区之后才能从缓冲区中读出数据。