什么是PV操作

PV操作就是荷兰语Passeren(通过),Vrijgeven(释放)的简称。对应的就是wait等待,signal释放操作。

P操作就是,将进程从运行态转化为阻塞态,直到它被另一个进程唤醒

V操作就是,将一个处于阻塞态的进程唤醒。

P操作

1
2
3
4
s=s-1
if(s<0){
P();
}

V操作

1
2
3
4
s=s+1
if(s<=0){
V();
}

抢占式优先级调度算法和非抢占式优先级调度算法

抢占式优先级调度算法可以使当前正在执行的进程被更高优先级的进程所打断,并立即切换到新的进程。这种调度算法通常会导致频繁的上下文切换,但是可以保证高优先级进程的响应时间,从而提高系统的实时性能。

而非抢占式优先级调度算法则不允许其他进程打断当前进程的执行,只有在当前进程自愿放弃CPU控制权时才会进行进程切换。这种调度算法相对稳定,但是可能会导致低优先级进程长时间等待,影响系统的响应速度和实时性能。

即抢占式优先级调度算法进行V操作时,唤醒的进程为优先级最高的进程,而非抢占式优先级调度算法的V操作则无作为,继续执行当前进程,完成后再执行其他进程。