当前位置: 首页 > news >正文

2.2操作系统-进程管理:前趋图、前趋图与PV操作

2.1操作系统-进程管理:前趋图\前趋图与PV操作

  • 前趋图
  • 前趋图与PV操作
  • 练习

前趋图与PV操作,一般出现了,分值在2~3分左右,技巧性很强。

前趋图

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

注意:前趋图中必须不存在循环

前趋图中的每个结点可以表示一条语句、一个程序段或一个进程,结点间的有向边表示两个结点之间存
在的偏序(Partial Order)或前趋关系(Precedence Relation)“→”,
→={(Pi,Pj)|在Pj开始前Pi必须完成}
如果(Pi,Pj)∈→,可写成Pi→Pj,Pi是Pj的直接前趋,Pj是Pi的直接后继
例如,具有九个结点的前趋图:
P1为初始结点,P9为终止结点
每个结点还具有一个重量
该前趋图,存在下面的前趋关系:
P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,
P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9;
或表示为:
P={P1,P2,P3,P4,P5,P6,P7,P8,P9}
={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),
(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),
(P8,P9)}

前趋图与PV操作

前趋图节点表示进程,箭头表示进程间的先后关系,前趋节点完成之后,才能执行后继节点。

复杂一点的前趋图,会有进程之间的并行关系,会体现进程之间的直接制约关系
前趋图可以体现直接制约关系,也就是同步关系。

请添加图片描述
在执行D操作的时候,必须先去验证前趋节点是否已经准备就绪,也就是说,需要P(Sa)、P(Sb)、P(Sc)操作去验证ABC三个前趋节点是否已经完成;而PV操作是成对出现的,因此有了P操作,还需要三个V操作与之对应。

A完成之后,会有V(Sa);
B完成之后,会有V(Sb);
C完成之后,会有V(Sc);

也就是说,在前趋图中,所有的箭线中的箭头流出会对应一个V操作,箭头流入对应一个P操作
请添加图片描述

用前趋图表示PV就是

请添加图片描述

练习

某计算机系统中有一个CPU、一台扫描仪、一台打印机。现有三个图像任务,每个任务有三个程序段:扫描Si,图像处理Ci,打印Pi,i=(1,2,3)。
下图为三个任务个程序段并发执行的前趋图,其中,(A)可并行执行,(C)的直接制约,(B)的间接制约。

A.“C1S2” “P1C2S3” “P2C3”
B.“C1S1” “S2C2P2” “C3P3”
C.“S1C1P1” “S2C2P2” “S3C3P3”
D.“S1S2S3” “C1C2C3” “P1P2P3”

A.S1受到S2和S3、C1受到C2和C3、P1受到P2和P3
B.S2和S3受到S1、C2和C3受到C1、P2和P3受到P1
C.C1和P1受到S1、C2和P2受到S2、C3和P3受到S3
D.C1和S1受到P1、C2和S2受到P2、C3和S3受到P3

A.S1受到S2和S3、C1受到C2和C3、P1受到P2和P3
B.S2和S3受到S1、C2和C3受到C1、P2和P3受到P1
C.C1和P1受到S1、C2和P2受到S2、C3和P3受到S3
D.C1和S1受到P1、C2和S2受到P2、C3和S3受到P3
请添加图片描述

并行执行: 不存在前趋后继关系的,表示可以并行执行;
直接制约关系:有先后顺序影响的是直接制约关系;
间接制约关系:属于一整套流程(流水线),但是需要上个流程执行完毕。

http://www.lryc.cn/news/34302.html

相关文章:

  • 凤凰游攻略
  • Nginx 高可用方案
  • Linux基本指令
  • Linux系统基础命令(二)
  • 【C++】C++11——简介|列表初始|简化声明|nullptr与范围for|STL中的变化
  • Python -- 函数
  • Pytorch中utils.data 与torchvision简介
  • 学习 Python 之 Pygame 开发魂斗罗(十)
  • Keepalive+LVS群集部署
  • 数组、指针总结【面试题】
  • 七色电子标签
  • 大数据是什么?发展前景怎么样
  • MYSQL必知必会 | 查询相关
  • Java学习环境一站说明(保姆级详细教学)
  • 05-Oracle中的对象(视图,索引,同义词,系列)
  • 如何通过websoket实现即时通讯+断线重连?
  • 爽,我终于掌握了selenium图片滑块验证码
  • 二、SpringMVC注解式开发
  • Java容器面试知识点总结
  • 增长:2023 IT运维发展趋势前瞻
  • 自己定义typescript的类型声明文件xx.d.ts
  • 数据分析方法及名词解释总结_(面试2)
  • 【FLY】Java知识点总结
  • SpringMVC-0307
  • 华为OD机试 - 九宫格按键输入(C 语言解题)【独家】
  • Oracle 11g RAC群集部署
  • 【C++、C++11】列表初始化、右值引用
  • CMU15-445 Project.3总结
  • 002+limou+HTML——(2)HTML文档
  • 红外传感器模块与 Arduino 连接