纯净之家

当前位置:首页 > 教程资讯 > 操作系统 > 进程间的并发进程之间的关系在多道程序环境下的应用

进程间的并发进程之间的关系在多道程序环境下的应用

2021-10-06 来源:网络整理 我要评论()

用手机看

扫描二维码查看并分享给您的朋友

进程之间的关系

在多程序环境下,系统中通常有多个并发进程同时运行操作系统 同步,而这多个进程之间必然存在以下两种情况:

进程之间在执行过程中存在两种相互约束:

并发执行的进程之间存在这种限制关系,并发执行时进程的异步性会导致系统混乱。

解决方案:

(1) 确保多个进程以互斥的方式访问关键资源;

(2)其次,要协调相互协作的各个进程的执行顺序。

进程同步一、进程同步的基本概念1、关键资源

在一段时间内只允许一个进程访问的资源称为关键资源,对关键资源应采用互斥的访问方式。

2、临界区

临界区:

访问进程中的关键资源时要执行的代码段。

重复

入口部分;

临界区;

出口部分;出口部分

剩余部分;

直到假;

临界区的作用:

只有当进程进入临界区时才能访问临界资源,即临界区设置为进程以互斥的方式访问临界资源。

3、同步机制应该遵循的规则二、信号量机制1、整数信号量

当一个进程访问某种类型的关键资源时,它必须被执行并且只有这两个原子操作才能访问该资源。

等待和信号操作可以描述为:

wait(S):而S≤0 do no-op S≤0 表示系统中没有这样的资源

S:=S-1; 如果系统还有这样的资源,则允许该进程访问,该进程访问时,该资源的数量减1。

————申请资源操作/P操作

信号(S):S:=S+1;进程访问完资源后,需要释放这种资源,而系统中的这种资源增加1操作系统 同步,所以信号量S也应该增加1。

————释放资源操作/V操作

P和V操作的性质:

它是原子的,进程只能通过P操作或V操作修改信号量S,其他进程不能同时修改信号量S。

使用P和V操作实现进程对资源的互斥访问。

使用P和V操作实现对关键资源的互斥访问

例如:系统中有两个进程A和B竞争进入临界区,用信号量S表示临界区的资源数量,S的初始值设为1,则说明如下:

流程 A 流程 B

…… ……

P(S); P(S);

临界区操作;临界区操作;

V(S); V(S);

使用 P 和 V 操作来实现进程之间的简单同步。

例如:假设S是一个信号量,表示缓冲区存储的信息资源数量,这里我们让这个缓冲区只存储一个信息,初始值为0:

流程 A 流程 B

…………

向缓冲区发送信息;P(S);

定速巡航系统图片分析操作_操作系统 同步_双开同步最好操作的职业

V(S); 从缓冲区中取出信息;

整数信号量模型数量机制缺点的注意事项

违反同步机制中的“give power to wait”规则

2、记录信号量

在信号量机制中,除了一个用来表示资源数量的整数变量值外,还应该添加一个进程链表L来链接所有由于无法申请某种类型的关键资源而暂时等待的进程。它包含的两个数据项可以描述为:

输入信号量=记录

值:整数;

L:进程列表;

结尾

等待和信号操作可以描述为:

程序等待(S)

var S:信号量;

开始

S.value:=S.value-1;

如果 S.value<0 则阻塞(SL)

结尾

程序信号(S)

var S:信号量;

开始

S.value:=S.value+1;

如果 S.value≤0 则唤醒(SL);

定速巡航系统图片分析操作_双开同步最好操作的职业_操作系统 同步

结尾

P操作功能说明

V操作功能说明

记录信号量的物理意义3、AND信号量的AND同步机制的基本思想

进程在整个运行过程中所需要的资源全部一次性分配给进程,进程用完后这些资源一起释放。

因此,可以通过在等待操作中加入“与”条件来实现同时应用操作,即Swait操作。Swait 定义如下:

等待 (S1, S2,..., Sn)

如果 S1≥1 并且…并且 Sn≥1 那么

对于 i:﹦1 到 n 做

Si:﹦Si﹣1;

结束

别的

将进程放入与关联的等待队列中

找到第一个 Si<1 的 Si,并设置程序数

这个过程到Swait操作的开始

万一

信号 (S1, S2,..., Sn)

对于 i:﹦1 到 n 做

Si:﹦Si﹢1;

删除所有在队列中等待的进程

 1 2 下一页

热门软件

  • 电脑软件
  • 手机软件
  • 手机游戏
更多>

用户评论

'); })();
返回顶部