进程管理——PV操作

简介: 进程管理——PV操作

1、概述

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

  为什么叫PV操作,原来这是狄克斯特拉用荷兰文定义的,因为在荷兰文中,通过叫passeren,释放叫vrijgeven,PV操作因此得名。

  • 临界资源:进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。
  • 临界区:每个进程中访问临界资源的那段代码称为临界区。
  • 信号量:是一种特殊的变量。

PV操作图示


2、生产者与消费者的PV操作

单缓冲区生产者、消费者问题
生产者:                消费者:
    生产一个产品;            P(S2);
    P(S1);                从缓冲区取产品;
    送产品到缓冲区;            V(S1);
    V(S2);                消费产品;
S1初值为1,S2初值为0

生产者pv操作图示:

消费者pv操作图示:

3、练习题1

  某书店有一个收银员,该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,

设置信号量S1、S2和Sn,初值分别为0,0,n。则图中a1,a2应填入( _ 1 _ ),图中b1和b2应填入( _ 2 _ )。

(1)A.P(S1)、V(S2)   B. V(Sn)、P(Sn)   C. P(S1)、V(S2)   D. P(S2)、V(S1)

(2)A.P(Sn)、V(S2)   B. V(Sn)、P(S2)   C. P(S1)、V(S2)   D. P(S2)、V(S1)

答案:(1) A、(2) C 。  (提示:鼠标选择查看答案)

参考思路:


  • 购书者付费——需要收银员操作(存在制约关系,如:收银员不在收银台或者在睡觉,需要购书者唤醒)。
  • 购书者离开书店——需要收银员将书消磁和开发票——购书者需要出示发票通过门禁——才能正常合法离开书店。


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

热门文章

最新文章