明天晚上考试,写个博客,压压惊
第一大题
自己百度
第二大题
PV操作题,需要熟知以下概念:
1.信号量(semaphore)
我们有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。
一般来说,信号量S>0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
温馨贴士:信号量的值只能由PV操作来改变。
2.PV操作
自己通俗的理解, P就是请求资源,V就是释放资源。 P操作是减法运算(S=S-1),当信号量S小于0时申请资源;V操作是加法运算(S=S+1),当信号量小于等于0时释放资源;P、V操作二者必须成对出现。
P操作:使S=S-1,若S>=0,则该进程继续执行,否则该进程排入等待队列。
V操作:使S=S+1,若S>0,唤醒等待队列中的一个进程。
后面的题,咱也不知道是不是当年的考试题,但是放在一起了,就一起解析了
这个题有毛病,主要下面讲一下算法好了