美文网首页
2-3进程同步(信号量)

2-3进程同步(信号量)

作者: Liquor_4a19 | 来源:发表于2018-11-30 10:18 被阅读0次

信号量是什么?

信号量的基本应用

实现多个进程互斥(注意点)

(1)互斥信号量mutex初值为1;

(2)每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间

(3)必须成对使用P和V原语(在同一进程中),不能次序错误、重复或遗漏:

        遗漏P原语则不能保证互斥访问

        遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程);

实现进程间的前趋关系(有序)(注意点)

信号量值为0的点是限制的关键所在;

成对使用P和V原语(在有先后关系的两个进程中),不能次序错误、重复或遗漏,否则同步顺序出错。

区别整型、记录型、AND型信号量以及信号量集

(1)整型信号量(符合“有限等待”原则,不符合“让权等待”原则)

信号量定义为一个整型量;

根据初始情况赋相应的值;

仅能通过两个原子操作来访问。

P操作 wait(S):

              While S<=0 do no-op;

              S:=S-1;

V操作  signal(S):  

              S:=S+1;

(2)记录型信号量

信号量结构信息发生变化

不仅要有值的处理,还有队列的处理。

此时形成记录型数据结构,包括两部分:

整型变量value(代表资源数目)

进程链表L(链接所有等待进程)

P、V操作也有所变化(熟练使用记录集型信号量,其wait,signal具体做了什么?)

P操作wait(): S.value = S.value - 1;if  S.value < 0  then  block(S,L)

V操作signal(): S.value = S.value + 1;  if  S.value <= 0 then wakeup(S,L)

(3)AND型信号量

解决思想:一次性分配给进程所需资源,用完一起释放。Wait操作时对它所有需要的资源都要判断,有AND条件,故称“AND同步”、“同时wait”。

(4)信号量集

在大于可分配设置的下界值t前提下,每次可分配d个。

如何利用记录型信号量实现互斥关系?

如何利用记录型信号量实现前趋关系?

相关文章

  • Linux下的信号量使用

    信号量 信号量原语 进程同步的主要方式之一。具体概念参考[《《操作系统概念精要》基本概念整理之进程同步篇(二)》]...

  • 2-3进程同步(信号量)

    信号量是什么? 信号量的基本应用 实现多个进程互斥(注意点) (1)互斥信号量mutex初值为1; (2)每个进程...

  • 第二章 进程的描述与控制3

    2.3信号量机制 1、信号量机制是一种卓有成效的进程同步工具。 (一)整型信号量 1.信号量定义为一个整型量; 2...

  • 理解操作系统之信号量机制

    信号量 1965年荷兰Dijkstra提出的信号量(Semaphores)是一种卓有成效的进程同步工具,在长期的应...

  • 二.进程(3)进程同步

    2.3 进程同步 1. 理解同步的含义 2. 信号量机制控制进程同步 3. 管程 进程间有什么相互影响? 两种制约...

  • 信号量(一)

    信号量机制是一种卓有成效的进程同步工具。 1.整形信号量 仅有两个标准的院子操作wait(S)和signal(S)...

  • 进程相关问题学习

    写在前面,进程同步控制有锁,信号量,事件进程间通信有 队列和管道 信号量相当于多个锁 事件控制进程的动作 红绿灯问...

  • 5.3 管程

    管程概述 虽然信号量是一种既方便、又有效的进程同步机制,但每个进程都要访问wait和signal操作,使得大量同步...

  • 多线程基础

    线程、进程,线程安全,进程同步,可见性,一致性,锁,信号量,并发,并行 从操作系统概念上说,线程是最小的可执行单位...

  • PV操作

    PV操作是利用信号量机制来实现的一种有效的进程同步与互斥工具,可以实现资源的互斥使用。PV操作属于低级通信原语,使...

网友评论

      本文标题:2-3进程同步(信号量)

      本文链接:https://www.haomeiwen.com/subject/gvjccqtx.html