信号量有哪些特征?

如题所述

wait操作和signal操作是计算机操作系统中进程控制的信号量机制的概念。

在进程控制中如何合理对共享资源分配便是一个关键的问题,所以引入了信号量的这个概念,通过pv操作便可以达到对空闲共享资源的合理分配。

一、信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。

1)、当它的值大于0时,表示当前可用资源的数量;

2)、当它的值小于0时,其绝对值表示等待使用该资源的进程个数。

二、PV操作,只有通过pv操作才可以改变信号量的值。

1)、p操作(wait):申请一个单位资源,进程进入。简而言之就是信号量减一。

2)、v操作(signal):释放一个单位资源,进程出来。简而言之就是信号量加一。

扩展资料

信号量分类

1、整型信号量

最初Dijkstra把整型信号量定义为一个用于表示资源数目的整型量S,它与一般的整型量不同,除初始化外,仅能通过两个标准原子操作(Atomic Operation)wait(S)和signal(S)操作。

2、记录型信号量

在整型信号量机制中的wait操作,只要是信号量S<=0,就会不断测试。因此,该机制并未遵循“让权等待”准则,而是使进程处于“忙等”状态。记录型信号量机制则是一种不存在“忙等”现象的进程同步机制。

3、AND型信号量

在一些应用场合,是一个进程需要先获得两个或者更多的共享资源后方能执行其任务。假定现在有两个进程A和B,他们都要求访问共享数据D和E。当然,共享数据都应该作为临界资源。为此,可为这两个数据分别设置用于互斥的信号量Dmutex和Emutex。

4、信号量集

在记录型信号量机制中,wait(S)或signal(S)操作仅能对信号量施以加1或者减1操作,意味着每次只能获得或释放一个单位的临界资源。而当一次需要N个某类临界资源时,便要进行N次wait(S)操作,显然这是低效的。此外,在有些情况下,当资源数量低于某一下限值时,便不予分配。

参考资料来源:百度百科-信号量机制

温馨提示:答案为网友推荐,仅供参考
相似回答