问题 问答题

试从物理概念上来说明记录型信号量和wait与signal操作。

答案

参考答案:信号量是具有整数值的对象,支持两种原子操作P0和V0。P操作减少信号量的值,若新的信号量的值小于0,则操作阻塞;V操作增加信号量的值,若结果值大于或等于0,V操作就要唤醒一个等待的线程或进程。例如考虑管理一个计数资源,也就是说,资源是一些固定数目的实例(如n个缓冲区),进程想获得资源的一个实例,当它使用完这个资源后释放它,这个资源能用信号量表示,该信号量可初始化为资源实例数。想获得资源时使用P操作,每次请求成功它都要减少信号量的值。信号量的值减少至0时(无空闲可用资源),下一个P操作将被阻塞。释放资源时使用V操作,它增加信号量的值,同时唤醒被阻塞的进程。x.wait操作意味着调用该操作的进程将被挂起,直至另一进程执行x.signal操作,故x.signal操作仅仅重新启动一个被挂起的进程,若无挂起进程,则signal操作相当于空操作,即不改变x的状态,这不同于V操作,V操作是总要影响信号量操作的。

单项选择题
填空题