【正确答案】
D
【答案解析】进程在运行过程中,一般会与其他进程共享资源,而有些资源的使用具有排他性。我们把同时仅允许一个进程使用的资源称为临界资源,如打印机、磁带机等,因此A选项错误。
临界区是指进程中访问临界资源的那段代码,并不是指临界资源的存放地址,因此D选项正确,C选项错误。
本题中容易出错的是B选项,会错误地认为临界区包含实现进程同步互斥功能的代码。根据访问临界资源的过程,进程可以分为4个部分,如图所示。
[*]
其中进入区的功能是为了使进程能够进入临界区而进行相关检查,如果可以进入临界区,则通常设置相应的“正在访问临界区”标志,以阻止其他相关进程同时进入临界区。
而退出区的作用是将“正在访问临界区”标志清除,相当于恢复和善后。
由此可以看出,实现进程互斥和同步的其实是进入区和退出区,并不是临界区。
★其实当有进程存在时,访问临界资源的进程甚至可以不负责同步互斥,全部交由进程处理。