电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

操作系统课程第三章-进程和线程的描述与控制[1]


发布日期:2023/9/1
 

进程是计算机进行资源分配和独立运行的基本单位

进程的引入

引入进程是为了使多道程序并发执行

程序的顺序执行

一个程序通常由若干个程序段所组成它们必须按照某种先后次序来执行仅当前一个操作执行完后才能执行后继操作这类计算过程就是程序的顺序执行过程

例如先输入→再计算→最后输出I→C →P

程序顺序执行时的特征

顺序性处理机的操作严格按照程序所规定的顺序执行即每一个操作必须在下一个操作开始之前结束

封闭性程序一旦开始运行其执行结果不受外界因素影响

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

程序的并发执行

程序的并发执行是指若干个程序(或程序段)同时在系统中运行这些程序(或程序段)的执行在时间上是重叠的一个程序(或程序段)的执行尚未结束另一个程序(或程序段)的执行已经开始

前驱图

前驱图是一个有向无循环图图中的每个结点可以表示一条语句一个程序段或进程结点间的有向边表示语句或程序段的执行次序

程序并发执行例

进程并发执行对每个进程而言其输入计算和输出这三个操作必须顺序执行它们之间存在如下先后关系

I先于C和I C先于P和C P先于P

I和C I C和P可以并发

与时间有关的错误例

程序并发执行时可能出现与时间有关的错误

进程r=x; 进程r=x;

r++; r++;

x=r; x=r;

设在两进程运行之前x的值为则两进程运行结束后x值可为

Bernstein条件

读集语句执行期间要引用的变量集合记为R(Si)={aam}

写集语句执行期间要改变的变量集合记为W(Si)={bbn}

Bernstein条件能保证两条相继的语句并发执行而不会产生与时间有关的错误

R(Si)∩ W(Sj)={ }

R(Sj)∩ W(Si)={ }

W(Si)∩ W(Sj)={ }

考虑下面是条语句

Sa=x+y Sb=z+

Sc=ab Sd=c+

R(S)={xy} R(S)={z} R(S)={ab}

W(S)={a} W(S)={b} W(S)={c}

因R(S)∩ W(S)∪R(S)∩ W(S)∪W(S)∩W(S)={ }故S和S可以并发执行

因R(S)∩ W(S)∪R(S)∩ W(S)∪W(S)∩W(S)={b}故S和S不能并发执行

并发语句的描述方式

cobegin

S;S;…Sn;

coend

对应的前驱图如右其中S和Sn+分别是cobegin和coend语句前后的两条语句

程序并发执行时的特征

间断性并发程序具有执行暂停执行这种间断性的活动规律

失去封闭性多个程序共享系统中的资源这些资源的状态将由多个程序来改变致使程序之间相互影响

不可再现性在初始条件相同的情况下程序的执行结果依赖于执行的次序

并发程序的其他特征

资源分配动态性多道程序在运行过程中可根据需要随时提出分配资源的请求

程序并发执行的相互制约并发程序执行时相互影响相互制约其相互制约关系分为

直接制约合作进程之间的相互制约

间接制约因资源共享产生的相互制约

相互通信的可能多个进程之间可能需要相互传递信息

同步与互斥的必要并发进程之间需要调整相对执行速度许多资源需要互斥使用

[] [] [] [] [] [] [] [] []

上一篇:二 真经之生产消费问题扩展[2]

下一篇:操作系统课程第三章-进程和线程的描述与控制[7]