进程互斥

作者: 土豆有点 | 来源:发表于2018-06-25 15:30 被阅读2次

1.什么是进程互斥:
各进程之间竞争使用这些资源--这一关系称为进程互斥。
2.什么是临界资源:
系统中某些资源一次只允许一个进程使用
3.什么是临界区
给个进程中对某个临界资源实施操作的程序片段

临界区的使用原则

没有进程在临界区时,想进入临界区的进程可进入
不允许两个进程同时处于其临界区中
临界区外运行的进程不得阻塞其他进程进入临界区
不得使进程无限期等待进入临界区

进程同步:
指系统中多个进程汇总发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。如如果进程A产生数据,而进程B打印数据,则B在打印之前必须等A产生数据。

1.信号量机制
什么是信号量?

信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号的下一个进程。信号量的值与相应资源的使用情况相关。
当它的值大于0时,表示当前可用资源的数量
当它的值小于0时,其绝对值表示等待使用该资源的进程个数。
注意,信号量的值仅能由PV操作来改变。

2.PV操作
image.png

一般来说,信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S<0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

PV操作过程

分析并发进程的关键活动,划定临界区
设置信号量mutex,初值为1
在临界区前实施P(mutex)
在临界区之后实施V(mutex)


image.png
三个同步问题

生产者---消费者


image.png

说明:这里empty变量表示缓冲区还有多少个位置是空的,full表示缓冲区中被占用的个数。

作者---读者

问题:

多个进程共享一个数据区,这些进程分为两组:
读者进程:只读数据区中的数据
写者进程:只往数据区写数据

要求满足的条件:

允许多个读者同时执行读操作
不允许多个写者同时操作
不允许读者、写者同时操作


image.png

这里我们对读者计数。这虽然解决了多个读者同时读的问题,但是引出了另一个问题,就是rc变成了一个共享资源,所以我们还需要对rc进行保护,于是针对rc增加了P、V操作。

哲学家进餐

相关文章

  • 操作系统学习笔记(十三)

    同步和互斥的概念 进程的互斥关系 进程的互斥关系的例子 定义: 多个进程由于共享了独占性资源,必须协调各进程对资源...

  • 操作系统

    一.进程管理 (一)进程的状态 (二)前驱图 (三)进程的同步与互斥 互斥:单独资源,一...

  • 操作系统拾遗--进程同步、互斥

    进程通信 进程通信--进程之间的信息交换,如同步、互斥。 进程通信分为: 低级通信方式:同步与互斥 高级通信方式:...

  • 进程互斥

    1.什么是进程互斥:各进程之间竞争使用这些资源--这一关系称为进程互斥。2.什么是临界资源:系统中某些资源一次只允...

  • 进程互斥

    我这儿还用着呢,你先等会吧。 并发的出现是为了提高系统的效率,但是由此产生的问题却也不少。我们知道,并发的程序是交...

  • 操作系统之信号量

    进程互斥:是指系统中各进程互斥使用临界值,又称为进程间接制约。进程同步:是并发执行的进程因直接制约而引起的相互通信...

  • 1.线程及通信

    1、线程 创建线程 结束一个进程 等待一个进程结束 2、互斥量 初始化互斥量 上锁 解锁 销毁互斥量 3、条件量 ...

  • 第二章 信号量机制

    3)信号量的基本应用:实现进程互斥; 实现进程间的前趋关系(有序) *互斥信号量注意点: 1.互斥信号量mutex...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • Linux线程互斥是如何实现的,大牛来详细分析

    一、互斥锁 为啥要有互斥? 多个进程/线程执行的先后顺序不确定,何时切出CPU也不确定。 多个进程/线程访问变量的...

网友评论

    本文标题:进程互斥

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