12、信号量机制
- 总览:
12.1、什么是信号量机制
- 信号量本质就是一个变量,用来表示系统中某种资源的数量。
- 使用系统提供的原语对信号量进行操作。
- P、V操作都是原语。
12.2、整型信号量
12.3、记录型信号量
- 当P操作的时候发现资源不够的时候,会使用block原语让进程从运行态转到阻塞态,并挂在信号量S的等待队列中。
- V操作的时候,当该进程使用完资源进行放回之后,发现还有进程处于阻塞队列中,那么就进行唤醒,从阻塞态转到运行态。
- 例子:
切换到P2进程的时候,发现资源<0,主动执行一个block原语,让自己进行阻塞,同时插入到等待同列中。
P3同理。
当P0进程使用完之后,进行singal操作的时候,发现资源小于0,会从阻塞队列中去唤醒一个进程(P2进程)。
当P2进程结束之后,同样由于value值小于等于0,到阻塞队列中进行唤醒(P3线程)。