美文网首页
(六)互斥机制

(六)互斥机制

作者: BubbleM | 来源:发表于2017-10-15 17:38 被阅读20次

进程互斥

(竞争关系)由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用。各进程之间竞争使用这些资源,这一关系称为进程互斥。
临界资源critical resource:
系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享资源。
临界区(互斥区)critical section(region):
各个进程中对某个临界资源(共享变量)实施操作的程序片段。
实现进程互斥的方案:

  1. 软件方案:
  • Dekker解法
  • Peterson解法
  1. 硬件方案:
  • 屏蔽中断
  • TSL(XCHG)指令

忙等待busy waiting:
进程在得到临界区访问权之前,持续测试而不做其他事情。
优先级反转(倒置):
基于优先级的抢占式的调度可能会导致优先级反转。

进程同步synchronization

(协作关系)指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。

信号量及PV操作

  1. 信号量
    一个特殊的变量,用于进程间传递信息的一个整数值。定义如下:
struc semaphore{
  int count;
  queueType queue;
}

对信号量只能实施3种操作:初始化,p,v(p、v分别是荷兰语的test(proberen)和incerment(verhogen))

p、v操作定义

经典的IPC问题

相关文章

  • (六)互斥机制

    进程互斥 (竞争关系)由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用。各进程之间竞争使用这些...

  • 自旋锁 和 互斥锁

    自旋锁 和 互斥锁 Pthreads提供了多种锁机制: (1) Mutex(互斥量):pthread_mutex_...

  • go-锁机制

    Golang中的锁机制主要包含互斥锁和读写锁 互斥锁 互斥锁是一种简单的加锁的方法来控制对共享资源的访问,互斥锁只...

  • 网络之美

    线程安全问题----互斥锁和递归锁 互斥锁线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制就是引入互斥锁...

  • Java并发编程,互斥同步和线程之间的协作

    互斥同步和线程之间的协作 互斥同步 Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM...

  • 线程间共享数据

    本文主要介绍线程间共享数据的保护机制,主要内容是互斥量的介绍。 I、使用互斥量保护共享数据 1.1 lock 与 ...

  • JDK多线程基础笔记(2):线程互斥与同步(synchroniz

    线程互斥(线程安全) synchronized 简介 synchronized 是 Java 内建的同步机制,所以...

  • android 多线程——Callback

    线程同步的四种机制 线程同步有四种机制,分别是临界区(Critical Section)、互斥量(Mutex)、信...

  • 拜托,面试请不要再问我Redis分布式锁的实现原理!

    目录 一、写在前面 二、Redisson实现Redis分布式锁的底层原理 (1)加锁机制 (2)锁互斥机制 (3)...

  • Linux 多线程 - 线程异步与同步机制

    Linux 多线程 - 线程异步与同步机制 I. 同步机制 线程间的同步机制主要包括三个: 互斥锁:以排他的方式,...

网友评论

      本文标题:(六)互斥机制

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