计算机操作系统原理实验指导书
2.7 相关知识 2.7.1 信号量
信号量也称为信号锁,主要应用于进程间的同步和互斥,在用于互斥时,通常作为资源锁。信号量通常通过两个原子操作wait(P)和signal(V)来访问。wait操作使信号量的值+1,signal操作使信号量的值-1。
2.7.2 记录型信号量
记录型信号量采用了“让权等待”的策略,存在多个进程等待访问同一临界资源的情况,所以记录型信号量需要一个等待链表来存放等待该信号量的进程控制块或进程号。在本实验中,使用记录型信号量。
2.8 实验设备
PC机1台,要求安装DOS7.1、Turbo C3.0、Windows2000。
2.9 实验指导
实验中提供了5个信号量(s0-s4)和20个进程(pid 0-19)。在程序运行过程中可以键入wait命令,signal命令和showdetail命令显示每个信号量的状态。具体输入解释如下:
1) wait 获取信号量操作(P操作)。
参数: 1 sname 2 pid 。
示例:wait(s1,2) 。进程号为2的进程申请名字为s1的信号量。 2) signal 释放信号量操作(V操作)。
参数 1 sname。
示例:signal(s1)。释放信号量名字为s1的信号量。 3) showdetail 显示各信号量状态及其等待队列。 4) exit 退出命令行。