【OS笔记 5】前驱图、顺序执行与并发执行的特征

我们知道,在没有OS的计算机或者单道批处理系统中,程序执行的方式是顺序执行。在多道批处理系统中,多道程序共享系统资源、并发执行,并发执行出现的问题也引入了进程的概念。 所以,在学习进程之前有必要先对程序的 顺序执行并发执行方式简单的了解


一、前驱图的概念

所谓前驱后继,其实也就是发生时间的先后关系。

作用: 用于描述程序执行的先后顺序。
本质: 是一个有向无循环图,可记为 DAG(Directed Acyclic Graph)(重点:有向无循环)

在这里插入图片描述

结点表示: 一个进程、一个程序段 或 一条语句。
有向边表示: 前驱关系。箭头所指的是后继,如图中 P2 是 P1 的后继。
Pi --> Pj: Pi 存在指向 Pj 的边,称 Pi 是 Pj 的直接前驱,Pj 是 Pi 的直接后继。表示 Pj 在执行前 Pi 必须完成。
终止节点: 没有后继的结点,如图中的 P9。


二、程序的顺序执行与并发执行

1. 顺序执行

(1)顺序执行的前驱图

就是“一条直线”,因为每个时刻都只能运行一个程序。

在这里插入图片描述
(2)程序顺序执行的特征

① 顺序性
指处理机严格地按照程序所规定的的顺序执行。

② 封闭性
指程序在封闭的环境下运行,即程序运行时独占全机资源(没有其它程序一起共享),资源的状态只有本机才能改变。

③ 可再现性
只要程序执行时的环境和初始条件相同,当程序重复执行时,都可获得相同的结果。


2. 并发执行

(1)并发执行的设计与前驱图

Parbegin 与 Parend 里面的部分并发执行,begin 和 end 里面的语句顺序执行。
所以图中 只有当 紫色的 Parbegin 里面的 P1 和 P2 并发执行完之后,才能执行接下来的 P4。

在这里插入图片描述


(2)程序并发执行时的特征(注意是“程序”,不是“进程”!!!我刚学时就搞混了)

① 间断性
也就是一个程序的整个执行过程是“走走停停”的,由于共享资源,这些并发的程序相互制约,有时需要进行等待,造成了 “执行——暂停——执行” 的间断性活动规律。

② 失去封闭性
由于并发的程序之间共享系统资源,导致其中任一程序在运行时,其环境都必然会收到其它程序的影响,所以就失去了运行环境的封闭性。

③ 不可再现性
程序在并发执行时,由于失去了封闭性,从而也失去了不可再现性。换句话说,程序在多次执行后,虽然它们执行的环境和初始条件是相同的,但得到的结果却各不相同。
比如 A 和 B 两个程序共享变量N,A 中会让 N+1 ,B 中会让 N=0 。那么 N 最后的数值肯定跟 A 和 B 执行的情况(比如执行顺序什么的)有关系。

此时还未引入进程的概念。如果每次执行的结果都不同,岂不是失去了程序的意义,因此,人们引入了“进程”的概念,并且设计了相应的进程同步机制,使得程序在并发同时也能独立地运行。对于进程的描述,在下一章【OS笔记 6】中。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值