问题
单项选择题
已知有10个进程共享一个互斥段,如果最多允许6个进程同时进入互斥段,则信号量S的初值为(1),信号量S的变化范围是(2)。 空白(2)处应选择()
A.0~10
B.-1~9
C.-4~6
D.-5~5
答案
参考答案:C
解析:
本题考查操作系统进程管理中进程同步和进程互斥的基础知识。
根据试题23的分析,在操作系统的进程管理中经常使用信号量(Semaphore)机制。其中“P操作”是检测信号量是否为正值,若不是,则阻塞调用进程;“V操作”是唤醒一个阻塞进程恢复执行。
根据用途不同,信号量分为公用信号量和私用信号量。公用信号量用于实现进程间的互斥,初值通常设为1,它所联系的一组并行进程均可对它实施P、V操作;私用信号量用于实现进程间的同步,初始值通常设为0或n。
根据题意,有10个进程共享一个互斥段,而互斥段最多允许6个进程同时进入,所以系统资源有6个可被调用,信号量S可置初值为6。同时信号量是一个整数,当信号量大于等于零时,表示可供并发进程使用的资源实体数;当信号量小于零时,其绝对值表示正在等待使用临界区的进程数。
因此,当第一个申请资源的进程访问时,对信号量S执行一次P操作,信号量S减1后等于5,大于零,进程可继续执行;……,当第十个申请资源的进程访问时,对信号量S执行P操作,信号量S减1后等+-4,小于零,进程进入阻塞队列等待。即信号量S的变化范围是-4~6。