进程管理PV操作

简介: 进程管理PV操作

含义:PV操作是一种实现进程互斥与同步的有效方法。PV操作与信号量的处理相关,P表示通过的意思,V表示释放。

具体定义:

P(S):

①将信号量S的值减1,即S=S-1;

②如果S30,则该进程继续执行;否则该进程置为等待状态,排入等待队列。

V(S):

①将信号量S的值加1,即S=S+1;

②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

考点:释放、等待

真题:

2020082617004764.png


分析:

首先,有顾客和收银员两进程,所以这个应该有同步的关系,要协作完成工作。顾客进程的主要工作是进入超市,在进超市之前看看自己能不能进,因为超市限制顾客的人数了。然后进去了,就开始买东西,买完了,就找收银员付钱,付完钱就可以走了。而收银员的工作应该是有顾客付钱来了,就要收钱了,收完钱了,再看看有没有买完东西要付钱的顾客,没有的话可以休息,有的话就继续收钱。

单看顾客进程,从上往下看。顾客进入的前提是要看看是不是能进去。题中信号量S1,S2,Sn初值分别为0,0,n。Sn表示超市可以放n个顾客进来,此时表示的是还有n个资源,也就是超市里一个顾客也没有。S1和S2都等于0是表示顾客和收银员都只有0个资源。

首先顾客进入,P(Sn)一下,Sn=Sn-1=n-1,n-1>0,所以可以放人。然后在超市购物,购完物要付款了,得找收银员了。是P一下,还是V一下,是P(S1)还是P(S2),是V(S1)还是V(S2)?

由于S1和S2都是0,虽然是先P,再V。而且一般同步是P自己,V别人。但是如果P一下,变-1<0,就要开始等待了,进行不下去了。所以应该是V一下,V谁呢,V收营员。哪个信号量是收银员? 不如假设一个,S1好了。V(S1),释放一个收营员的资源,S1=S1+1=1>0,所以收银员可以开始收费了。P(S2)一下,S2=S2-1=-1<0,其他顾客,就不要来付钱了,没地。而收银员要收费就看另一边好了

20200826170103639.png


收银员先怎样怎样,然后收费,然后怎样怎样。还是照一般的理,一般是先P,再V。而且一般同步是P自己,V别人。所以看看c1应该是P,P(S1)=S1-1=1-1=0,表示收银员的资源被占用了,其他要结账的顾客我忙着呢等等啊。c2,是收完钱,V(S2),S2=S2+1=1>0,所以顾客又可以开始来付钱了。

20200826170117300.png


最后顾客走了,释放了他在超市里占的那个资源,V(Sn)。 按照分析的结果,a、b1、b2、c1、c2分别是P(Sn),V(S1),P(S2),P(S1),V(S2)。然后根据选项答案是CDA


相关文章
|
安全 算法 调度
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
264 1
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
|
算法 调度 C++
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
374 1
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)
|
算法 调度
409操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(二)
409操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
404 1
409操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(二)
|
存储 消息中间件 程序员
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(一)
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
746 1
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(一)
进程的同步、互斥以及PV原语
在处理进程间的同步与互斥问题时,我们离不开信号量和PV原语,使用这两个工具的目的在于打造一段不可分割不可中断的程序。应当注意的是,信号量和PV原语是解决进程间同步与互斥问题的一种机制,但并不是唯一的机制。
1277 0
|
7月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
7月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
379 5
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
435 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)

热门文章

最新文章