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。得到的结果如下图所示:

相关文章
|
移动开发
【软考】校验码之详细总结
【软考】校验码之详细总结
1698 0
|
8月前
|
人工智能 JSON 数据可视化
独立开发者必看,前端人想做低代码?先把这个 5k star 可视化拖拽编辑器 Demo 跑起来
小华同学带你玩转AI与高效工具!推荐开源项目「visual-drag-demo」,一个低代码可视化拖拽编辑器教学示例,涵盖拖拽、对齐、撤销重做、图层、导出等核心功能,助你快速掌握搭建器开发精髓。适合前端开发者、想入门低代码平台的你。项目结构清晰,学习成本低,支持自定义组件与交互扩展。立即免费订阅,加入10万+技术人行列,解锁更多实战秘籍!
508 6
|
测试技术 数据库 uml
软考中级软件设计师专项-UML图篇
UML(统一建模语言)是一种用于软件系统建模的标准化语言,能够清晰表达系统的静态结构与动态行为。其核心包括三类构造块:事物、关系和图。事物分为结构事物、行为事物、分组事物和注释事物;关系包括依赖、关联、泛化和实现;图则涵盖了类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图和部署图等,分别用于静态建模、动态建模和物理建模。
1178 1
软考中级软件设计师专项-UML图篇
|
编解码 网络协议 数据安全/隐私保护
计网 - 图解OSI 七层模型 和 TCP/IP 四层模型
计网 - 图解OSI 七层模型 和 TCP/IP 四层模型
12174 0
|
消息中间件 中间件 Kafka
分布式事务最全详解 ,看这篇就够了!
本文详解分布式事务的一致性及实战解决方案,包括CAP理论、BASE理论及2PC、TCC、消息队列等常见方案,助你深入理解分布式系统的核心技术。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式事务最全详解 ,看这篇就够了!
|
存储 人工智能 编译器
【AI系统】算子手工优化
本文深入探讨了手写算子调度的关键因素及高性能算子库的介绍,通过计算分析指标和 RoofLine 模型评估计算与访存瓶颈,提出了循环、指令、存储三大优化策略,并介绍了 TVM 和 Triton 两种 DSL 开发算子的方法及其在实际应用中的表现。
1621 2
【AI系统】算子手工优化
|
消息中间件 存储 监控
说说MQ在你项目中的应用(一)
本文总结了消息队列(MQ)在项目中的应用,主要围绕异步处理、系统解耦和流量削峰三大功能展开。通过分析短信通知和业务日志两个典型场景,介绍了MQ的实现方式及其优势。短信通知中,MQ用于异步发送短信并处理状态更新;业务日志中,Kafka作为高吞吐量的消息系统,负责收集和传输系统及用户行为日志,确保数据的可靠性和高效处理。MQ不仅提高了系统的灵活性和响应速度,还提供了重试机制和状态追踪等功能,保障了业务的稳定运行。
632 7
|
SQL 存储 Oracle
大厂面试高频:聊下分库分表与读写分离的实现原理
本文详解了分库分表和读写分离的原理与实现,帮助解决大数据量下的性能瓶颈问题,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:聊下分库分表与读写分离的实现原理
|
存储 索引
软考--操作系统之文件系统多级索引
软考--操作系统之文件系统多级索引
|
物联网
MQTT常见问题之链接超时发送失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:

热门文章

最新文章