操作系统(2.1)--进程的描述与控制

目录

一、前驱图和程序执行

1.前驱图 

2.程序顺序执行

2.1 程序的顺序执行

2.2 程序顺序执行时的特征

3. 程序并发执行

3.1程序的并发执行

3.2 程序并发执行时的特征

一、前驱图和程序执行

1.前驱图 

前趋图:是一个有向无循环图,用于描述进程之间执行的前后关系。

具有九个结点的前趋图

存在下述前趋关系:
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)}
 

具有循环的图

前趋图中是不允许有循环的,否则必然会产生不可能实现的前趋关系。如图所示的前趋关系中就存在着循环。它一方面要求在S3开始执行之前, S2必须完成,另一方面又要求在S2开始执行之前,S3 必须完成。显然,这种关系是不可能实现的。

  • 图中的每个结点可用于描述- 一个程序段或进程,乃至一条语句;
  • 结点间的有向边则用于表示两个结点之间存在的偏序(亦称偏序关系)或前趋关系“→”
  • 如果(Pi,Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。
  • 在前趋图中,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)。此外,每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或程序的执行时间。 

2.程序顺序执行

2.1 程序的顺序执行

I:输入操作
C:计算操作
P:打印操作

 

S1:a:=x+y; 
S2:b:=a-5;
S3:c:=b+1;


其中,语句S2必须在语句S后(即a被赋值)才能执行,语句S3也只能在b被赋值后才能执行,因此,三条语句存在着这样的前趋关系: S1→S2 →S3,应如图所示的顺序执行。

2.2 程序顺序执行时的特征

(1)顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一一个操作结束之后开始。
(2)封闭性:程序是在封闭的环境下执行的,即,资源的状态(除初始状态外)只有本程序才能改变它。程序运行时独占全机资源程序一旦开始执行,其执行结果不受外界因素影响。
(3)可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。

3. 程序并发执行

 程序顺序执行时,资源利用率低

3.1程序的并发执行

并发执行的前驱图

在该例中存在下述前趋关系:
Ii→Ci,I i→I i+1, Ci- >Pi,Ci→Ci+1, Pi→Pi+1

I i+1和Ci及Pi-1是重叠的,即在Pi-1和Ci以及Ii+1之间,不存在前趋关系,可以并发执行。

对于具有下述四条语句的程序段:
S1: a:=x+2
S2: b:=y+4
S3: c:=a+b
S4: d:=c+b

画出的前驱图:

3.2 程序并发执行时的特征

(1) 间断性。程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间形成了相互制约的关系。
“执行-暂停-执行”间断性的运行。

(2)失去封闭性。当系统中存在着多个可以并发执行的程序时,系统中的各种资源将为它们所共享,而这些资源的状态也由这些程序来改变,致使其中任一程序在运行时,其环境都必然会受到其它程序的影响。
(3)不可再现性
例:程序A: N:=N+1;
程序B: Print(N); N:=0;
程序A和程序B并发执行,可能出现三种情况(N=n) :
(1) N:=N+1在Print(N)和N:=0之前,此时得到的N值分别为n+1,n+1, 0。
(2) N:=N+1 在Print(N)和N:=0之后,此时得到的N值分别为n,0,1。
(3) N:=N+1 在Print(N)和N:=0之间,此时得到的N值分别为n,n+1, 0。

程序在并发执行时,由于失去了封闭性,其计算结果必将与并发程序的执行速度有关,从而使程序的执行失去了可再现性;程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果却各不相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark的基本概念与架构

一、Spark简介 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交…

STM32F103R8T6 SPWM实现正弦波输出

前言 PWM合成正弦波,原理什么的不详细说了,概括一下就是 PWM有效面积的积分 正弦波的有效面积。PWM的频率越快,细分的越多,锯齿也就越不明显。 做法是:首先利用正弦波取点软件,取点1000个,生…

MySQL 约束介绍

目录 1、非空约束 2、 唯一约束 3、主键约束 4、自增长约束 5、外键约束 约束等级 6、默认值约束 1、非空约束 限定某个字段/某列的值不允许为空,空字符串’不等于NULL,0也不等于NULL CREATE TABLE 表名称( 字段名 数据类型, 字段名 数据类型 N…

Python如何打包exe文件?如何换成喜欢的图标?

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天又想来分享一个Python打包exe文件的教程!!这次是最强终极版~~~~ 在我们代码写好后,分享给不会编程的朋友时,总会遇到许许多多的的问题 这个时候,知道怎么…

【链表OJ题(五)】合并两个有序链表

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(五)1. 合并…

jvm类与类加载

1.类加载过程: 首先要加载某个类一定是出于某种目的,比如要运行java程序,那么久必须加载主类才能运行其中的方法,所以一般在这些情况下,如果类没有被加载,就会自动被加载: 1.使用new创建对象时 …

【Unity小知识】Editor编写常用方法汇总

汇总一些Unity Editor开发的常用方法和实现方式,会持续更新。 添加自定义菜单栏方法 using UnityEngine; using UnityEditor;public class EditorTools : EditorWindow {[MenuItem("EditorTools/自定义的编辑器方法")]public static void CustomEditroFu…

Java——Map和Set的使用

目录 引言 Map的使用方法 Set说明 用map统计数组中每个数字出现的次数 将数据去重 找出第一个重复出现的数字 宝石与石头 复制带随机指针的链表 只出现一次的数字 引言 Map和Set是适合动态查找的集合容器,Map中存储的就是key-value的键值对,Set中只存储…

IDEA常用插件列表

一 背景 IDEA常用插件列表,用来提供工作效率。你都安装了吗 IntelliJ IDEA 默认安装并提供了非常多的工具,比如 Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不为人知的工具。 二 插件列表 阿里代码规约…

有什么比较好的bug管理工具?5款热门工具推荐

工具再优秀,适合自己才最重要。 为尽量讲透这个问题,本文的行文结构我先整理如下: 1、为什么需要bug管理工具? 2、好的bug管理工具的标准是什么? 3、好的bug管理工具推荐(5款) 4、如何挑选适合…

cmd命令教程

小提示: 在本文中,我将向您展示可以在 Windows 命令行上使用的 40 个命令 温馨提示:在本教程中学习使用适用于 Windows 10 和 CMD 网络命令的最常见基本 CMD 命令及其语法和示例 文章目录为什么命令提示符有用一、cmd是什么?如何在…

Java Web 实战 13 - 多线程进阶之 synchronized 原理以及 JUC 问题

文章目录一 . synchronized 原理1.1 synchronized 使用的锁策略1.2 synchronized 是怎样自适应的? (锁膨胀 / 升级 的过程)1.3 synchronized 其他的优化操作锁消除锁粗化1.4 常见面试题二 . JUC (java.util.concurrent)2.1 Callable 接口2.2 ReentrantLock2.3 原子类2.4 线程池…

[蓝桥杯单片机]——八到十一届初赛决赛客观题

第八届初赛 一、填空题 采用外部12MHz晶振,经过系统12分频时定时器获得最大定时长度,此时定时器定时脉冲为1MHz,周期为1s,而定时器计时均为16位加法计数器,即计时长度为。 二、 选择题 ①带阻滤波器是指能通过大多数频…

九种跨域方式实现原理(完整版)

前言 前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。 一、什么是跨域? 1.什么是同源策略及其限制内容? 同源策略是一种约定,它是浏览器最核心也最基本的安…

【JavaSE】类和对象(上)

类和对象(上)类和对象1. 面向对象的初步认知1.1 什么是面向对象1.2 面向对象与面向过程2. 类定义和使用2.1 简单认识类2.2 类的定义格式2.3 课堂练习3. 类的实例化3.1 什么是实例化3.2 类和对象的说明类和对象 类和对象需要慢慢的逐步的才能理解&#x…

【Linux】项目自动化构建工具——make/Makefile

目录 1.make与Makefile的关系 Makefile make 项目清理 clean .PHONY 当我们编写一个较大的软件项目时,通常需要将多个源文件编译成可执行程序或库文件。为了简化这个过程,我们可以使用 make 工具和 Makefile 文件。Makefile 文件可以帮助我们自动…

虹科干货|Redis企业版数据库为企业「数据安全」叠加最强Buff!

虹科干货|Redis企业版数据库为企业「数据安全」叠加最强Buff! “这是一场可预见的噩梦!” 近期,黑客通过攻击亚洲最大两家数据中心—万国数据和新科电信媒体,获取国际巨头企业的登录凭证,引发了2000多家企…

JS高级知识总结

文章目录1. this指向问题2. 对象进阶2.1 对象的定义和使用2.2 对象访问器2.2.1 Getter2.2.2 Setter2.3 对象构造器2.4 对象原型2.4.1 prototype属性2.4.2 \_\_proto\_\_ 属性2.4.3 constructor属性2.4.4 原型链2.5 Object对象2.5.1 管理对象2.5.2 保护对象3. 函数进阶3.1 函数的…

jQuery《一篇搞定》

今日内容 一、JQuery 零、 复习昨日 1 写出至少15个标签 2 写出至少7个css属性font-size,color,font-familytext-algin,background-color,background-image,background-sizewidth,heighttop,bottom ,left ,rightpositionfloatbordermarginpadding 3 写出input标签的type的不…

WiFi6模块如何应用在智能家居

WiFi 6技术可以应用于智能家居,提供更高的速度、更可靠的连接和更好的安全性。以下是一些WiFi 6模块在智能家居中的应用:更快的速度: WiFi 6比先前的WiFi标准更快,这意味着您可以更快地传输数据和流媒体内容。这对于智能家居设备尤…
最新文章