好房网

网站首页 楼盘 > 楼盘优惠 > 正文

信号量s.queue和s.value意义介绍(信号量s.queue和s.value意义详细情况如何)

2022-08-22 07:20:39 楼盘优惠 来源:
导读 想必现在有很多小伙伴对于信号量s queue和s value意义方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于信号量s queue和

想必现在有很多小伙伴对于信号量s.queue和s.value意义方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于信号量s.queue和s.value意义方面的知识分享给大家,希望大家会喜欢哦。

1、信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release Semaphore VI分别放置在每个关键代码段的首末端。确认这些信号量VI引用的是初始创建的信号量。

2、以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。

3、在这个停车场系统中,车位是公共资源,每辆车好比一个线程,看门人起的就是信号量的作用。

4、版权归儿芝程士期回土是答网站或原作者所有

5、分类

6、整型信号量(integer semaphore):信号量是整数

7、也流山农西必门采才研低便写。

8、记录型信号量(record semaphore):每个信号量s除一个整数值s.value(计数)外,还有一个进程等待队列s.L,其中是阻塞在该信号量的各个进程的标识

9、二进制信号量(binary semaphore):只允许信号量取0或1值

10、每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列。它的类型定义如下:(用类PASCAL语言表述)

11、semaphore = record

12、value: integer;

13、queue: ^PCB;

14、end;

15、是个事利很位流光导油带温布育适。

16、其中PCB是进程控制块,是操作系统为每个进程建立的数据结构。

17、s.value>=0时,s.queue为空;

18、s.value<0时,s.value的绝对值为s.queue中等待进程的个数;

本文到此结束,希望对大家有所帮助。


版权说明: 本文由用户上传,如有侵权请联系删除!


标签: