操作系统信号量与P、V操作 初步认识整理

您所在的位置:网站首页 互斥信号量和资源信号量的理解是什么 操作系统信号量与P、V操作 初步认识整理

操作系统信号量与P、V操作 初步认识整理

2023-08-26 06:02| 来源: 网络整理| 查看: 265

初步接触,若有不足之处,请各位不吝赐教。谢谢!

首先介绍:信号量 信号量包括整型信号量、结构型信号量、二值信号量。

整型信号量

最初,将信号量定义为一个共享的整型量,它保存可供使用的唤醒数目。如果信号量的值为0,表示没有保存唤醒;如果它的值大于0,表示有一个或多个保留的唤醒。 对信号量的操作有以下限制: 1、信号量可以初始化为一个非负值。 2、只能由P和V两个操作来访问信号量。 P操作最初源于荷兰语proberen,表示测试;V操作源于荷兰语verhogen,表示增加。请读者注意,在有些书上将P操作称作wait或者DOWN操作,将V操作称作signal或者UP操作。 P和V操作定义的伪代码形式如下:

P(S) //测试信号量S的值是否大于0,若是,则S的值减1,程序向下执行,如果不大于0,则循环测试。 { while (S P(mutex); 临界区 V(mutex); 其他代码区 } while (1);

主要缺点:忙式等待问题:当一个进程处于临界区时,其它试图进入临界区的进程必须在入口处持续进行测试,很显然,这种循环测试、等待进入的方式在单CPU多到程序系统中存在很大问题,因为忙式等待要消耗CPU的时间,即使其它进程想用CPU做有效工作,也无法实现。这种类型的信号量也称“转锁”(Spinlock),因为当进程等待该锁打开时要“原地转圈”。然而,在多处理器系统中转锁仍得到应用。

结构型信号量

又称为记录型信号量、计数信号量,一般是由两个成员组成的数据结构。其中一个成员是整型变量,表示该信号量的值另一个是指向PCB(进程控制块,进程存在的唯一标识)的指针。当多个进程都等待同一个信号量时,它们就排成一个队列,由信号量的指针项指示该队列的队首,而PCB队列是通过PCB自身所包含的指针项进行



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3