操作系统之信号量关系
互斥与同步的信号量关系
1.1软件
1.2硬件
屏蔽中断
机器指令(test set)
如果任何期间都可以中断就不是硬件
缺点
盲等占用处理器的时间
饥饿现象
死锁
1.3信号量
semaphores
进程之间用来通信的标志
有进程要等待信号量的话就阻塞自己
等待和信号量都不可中断
有一个队列
----------
wait & signal
Wait操作给信号量做减法
semaphore
wait(s):s-1
申请资源并且可能阻塞自己<s<0>(不出现盲等)
Signal(s): s+1
释放资源并唤醒阻塞进程<s<=0>
·通用信号量
通用信号量是记录型,其中一个是整型,另一个域为队列
其元素等待该信号量的阻塞进程
·二进制信号量
1.4信号量的类型
·互斥信号量和资源信号量
互斥信号量是用于申请或者释放资源的使用权(只能有一个人使用)
资源信号量标识某类资源的可用个数
wait资源用于申请资源,可以阻塞自己
signal资源用于唤醒资源唤醒一个阻塞进程
互斥信号量
s.count 》=0的时候标识可以用的资源个数
s.count <0 标识在阻塞队列里被阻塞的进程个数
1.4量程
1.5信息传递