P操作和V操作的物理意义(从进程互斥的角度)
信号量是是一种解决进程互斥的方法,能够有效的提升cpu的利用率。信号量只能通过初始化和两个标准的原语P、V操作来访问。
P操作:资源监测。需要访问临界资源的进程,进入临界区前发出检测
信号量的操作。如果临界资源没有被访问,
进程进入临界区访问临界资
源;否则,进入等待队列。V操作:资源释放。访问临界资源的进程退出临界区前,释放临界资源。同时,查看等待队列是否有进程。如果等待队列中有进程,则将1个进程放到就绪对队列。
【例】n个并发进程共用1个临界资源Q,写出用信号量实现n个进程互斥使用Q时的程序描述(伪代码),给出信号量值的取值范围,并说明每个取值的物理意义。
1 、信号灯值的取值范围: :[-(n-1) ,1]
2 、 mutex 每个取值的物理意义:
mutex = 1 说明没有进程进入临界段执行;
mutex = 0 说明有 1 个进程进入临界段执行;
mutex = 1 说明有 1 个进程进入临界段执行,另有 1 个进程正在等
待进入;
mutex = -(n-1) 说明有 1 个进程进入临界段执行,另有 (n 1) 个进
程正在等待进入。
//伪代码
main(){
int mutex=1;//互斥信号量,共享一个临界资源
cobegin
pa(),pb();//并发运行进程a,b
coend
}
pa()
{
...
p(mutex);
csa//临界区
v(mutex);
...
}
pb()
{
...
p(mutex);
csb;
v(mutex);
...
}
考研相关的例题
**(考研真题,单项选择题)**操作系统中有一组特殊的程序,它们不能被系统中断,在操作系统中称为( B )。
A.初始化程序 B.原语 C.子程序 D.控制模块
2.**(考研真题,单项选择题)**进程的状态和优先级信息存放在( B )。
A.JCB B.PCB C.快表 D.页表
3.**(考研真题,单项选择题)**下列关于进程和线程的叙述中,正确的是( A )。
A.不管系统是否支持线程,进程都是资源分配的基本单位
B.线程是资源分配的基本单位,进程是调度的基本单位
C.系统级线程和用户级线程的切换都需要内核的支持
D.同一进程中的各个线程拥有各自不同的地址空间
4.( B)是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件。
A.共享存储器 B.管道 C.进程控制块 D.作业控制块
**(考研真题,单项选择题)**如果3个进程共享一个互斥段,每次最多可以允许2个进程进入互斥段,则信号量的变化范围是(A)。
A. 2、1、0、-1 B. 3、2、1、0
C. 2,1、0、-1,-2 D. 1、0、-1,-2
6.**(考研真题,单项选择题)**若记录型信号量S的初值为15,当前值为-15,则表示有(A)等待进程。
A. 15个 B. 30个 C. 16个 D. 31个
7.**(考研真题,单项选择题)**在9个生产者,5个消费者,共享容量为7的缓冲区的生产者-消费者问题中。互斥使用缓冲区的信号量S的初值为(D)。
A. 9 B. 5 C. 7 D. 1