PV操作与前趋图题型

简介: PV操作与前趋图题型

练习题1

问:进程A、B、C、D该执行什么PV操作?

答:

进程A——剁肉;V(Sa)   进程B——切葱花;V(Sb)    进程C——切姜粒;V(Sc)

进程D——搅拌肉馅;P(Sa)、P(Sb)、P(Sc)、V(Sd)

进程E——包饺子;P(Sd)

前趋图:是为了描述一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示。



练习题2

进程P1、P2、P3、P4、P5的前趋图如下:


  若用PV操作控制进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4且信号量初值都等于零。下图中a和b应分别填写(1) ,c和d应分别填写(2), e和f应分别填写(3)。


第一空:

A. P(S1)和P(S2)

B. P(S1)和V(S2)

C. V(S1)和V(S2)

D. V(S1)和P(S2)

第二空:

A. P(S1)、P(S2)和V(S3)、V(S4)

B. P(S1)、P(S2)和P(S3)、P(S4)

C. V(S1)、V(S2)和P(S3)、P(S4)

D. V(S1)、V(S2)和V(S3)、V(S4)

第三空:

A. P(S3)和P(S4)

B. P(S3)和V(S4)

C. V(S3)和V(S4)

D. V(S3)和P(S4)

注意:此题我们可以将信号量S1…S4依次标注在图1的4个箭头上,在用PV操作去思考解题思路。



练习题3

  假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0。进程P1和P2并发执行后a、b和c的结果分别为:a=_ (1) _、b= _ (2) _、c= _ (3) _。

P1程序段begin{                                     P2程序段begin{
a:=1;                          b:=2;              
a:=a+1;                          b:=b+1;
V(S1);                           P(S1);
c:=a+5;                          b:=a+b;
P(S2);                           V(S2);
a:=a+c;                          c:=b+c;
}                            }
end                            end

(1) A. 9   B. 12   C. 13   D. 14

(1) A. 5   B. 6     C. 9     D. 10

(1) A. 4   B. 6     C. 12   D. 13

注意:此题着重说明了不考虑优先级,所以我们不能按照常规的PV操作去思考本题。在进程P1阻塞的情况下,当P2去唤醒P1时不生效,P2还是依次执行完毕后再次执行P2。得到的结果如下图所示:

相关文章
|
移动开发
【软考】校验码之详细总结
【软考】校验码之详细总结
1440 0
|
9月前
|
机器学习/深度学习 人工智能 算法
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
|
消息中间件 中间件 Kafka
分布式事务最全详解 ,看这篇就够了!
本文详解分布式事务的一致性及实战解决方案,包括CAP理论、BASE理论及2PC、TCC、消息队列等常见方案,助你深入理解分布式系统的核心技术。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式事务最全详解 ,看这篇就够了!
|
JavaScript 前端开发 API
【前端开发】JS同步与异步调用,Vue2基础知识
本文简要介绍了JavaScript中的同步与异步调用以及Vue2的基础知识。 ### JS同步与异步调用 - **同步调用**:代码按顺序执行,每个任务完成后才执行下一个。 - **异步调用**:允许代码并发执行,不必等待前一个任务完成。 - **回调函数**:传统异步模式,如`setTimeout`。 - **Promise**:解决回调地狱问题,链式调用 `.then()`。 - **async/await**:基于Promise,使异步代码看起来像同步代码。 ### Vue2基础知识 - **核心概念**:指令、实例、组件、模板、数据绑定和生命周期钩子。 - **指令**
804 5
|
存储 消息中间件 程序员
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(一)
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
1058 1
408操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(一)
|
前端开发 算法 测试技术
【软考学习5】流水线基本概念、周期执行时间、吞吐率、加速比和效率的计算
【软考学习5】流水线基本概念、周期执行时间、吞吐率、加速比和效率的计算
2551 0
|
存储 索引
软考--操作系统之文件系统多级索引
软考--操作系统之文件系统多级索引
|
NoSQL Redis
Another Redis Desktop Manager 连接Redis(哨兵模式)
Another Redis Desktop Manager 连接Redis(哨兵模式)
1612 1
|
物联网
MQTT常见问题之链接超时发送失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
人工智能 数据处理
kettle开发-AI分流之case/switch
kettle开发-AI分流之case/switch
802 0