本文来源于操作系统第四版57页内容
提出
dijistra哲学家问题
信号量的物理结构
1. 整型信号量
wait(S){
while(S<=0);
S--;
}
Signal(S){
S++;
}
S 表示某一种资源数目的总数
2. 记录型信号量
typedef struct{
int value;
struct process_control_block *list;
}semaphores;
wait(semaphores *S){
S->value--;
if (S->value<0) block(S->list);
}
signal(semaphore *S){
S->value++;
if(S->value<=0) wakeup(S->list);
}