首页 > 系统相关 >进程的同步与互斥

进程的同步与互斥

时间:2023-03-19 19:34:25浏览次数:40  
标签:同步 互斥 临界 进入 进程 等待 资源

进程互斥(间接制约)
定义:由于操作系统各进程需要使用共享资源,而这些资源需要排他性使用,各进程之间竞争使用这些资源,这些关系称为进程互斥。

临界资源:系统中的资源一次只允许一个进程使用,这样的资源称为临界资源或互斥资源或共享资源

临界区:进入进程访问临界资源的那段程序

同步(直接制约):

指系统中一些进程需要相互合作,共同完成一项任务,比如一个进程运行到某一点时,需要另一个伙伴进程为它提供消息,在未获得消息之前,该进程会一直处于等待状态,在获得消息后被唤醒进入就绪状态。

典型的例子是公共汽车上司机与售票员的合作。只有当售票员关门之后司机才能启动车辆,只有司机停车之后售票员才能开车门。司机和售票员的行动需要一定的协调。同样地,两个进程之间有时也有这样的依赖关系,因此我们也要有一定的同步机制保证它们的执行次序。

实现进程同步方式:使用信号量。 信号量的特点就是允许多个进程同时访问,数量由资源数目决定。

临界区使用原则:

(1)没有进程在临界区时,想进入临界区的进程可进入
(2)不允许两个进程同时在临界区
(3)临界区运行的进程不得阻塞其他进程进入临界区
(4)不得使进程无限等待进入临界区

互斥问题的解决方案

无论采取何种方案实现互斥,都必须满足四大基本原则:

1.空闲则进:如果临界区中没有进程执行或者一个进程刚刚执行完,那么立即允许另一个进程(如果有的化)进入临界区执行,最大限度地提高资源利用率。

2.忙则等待:如果临界区中有进程正在执行,那么则让当前进程等待,以保证互斥使用临界资源。

3.有限等待:等待进入临界区的进程在有限时间内最终一定能够进入临界区,不允许“死等”。

4.让权等待:如果一个进程执行到了临界区,但是无法获得临界区资源,那么立即释放处理机,避免忙等。

标签:同步,互斥,临界,进入,进程,等待,资源
From: https://www.cnblogs.com/Relliu/p/17233997.html

相关文章

  • 【framework】应用进程启动流程
    1前言Activity启动流程中介绍了从点击桌面上应用快捷方式到Activity的onCreate()方法调用流程,本将介绍应用进程的启动流程。由于应用进程启动流程复杂,本文按进......
  • 【Android】使用ContentProvider实现跨进程通讯
    1前言​ContentProvider即内容提供器,是Android四大组件之一,为App存取数据提供统一的对外接口,让不同的应用之间可以共享数据。​如图,Server端通过Content......
  • 温习:进程和线程的区别
    进程和线程的区别:1、定义不一样,进程是执行中的一段程序,线程是进程里执行中的任务,一个进程里可以有多个线程。2、一个线程只能属于一个进程。3、线程无地址空间,它包括在......
  • 说说对AQS(AbstractQueuedSynchronizer)队列同步器的理解
    AQS是构建锁或者其他同步组件的基础框架(如ReentrantLock、ReentrantReadWriteLock、Semaphore等),包含了实现同步器的细节(获取同步状态、FIFO同步队列)。AQS的主要使用......
  • CAS 是一种什么样的同步机制?多线程下为什么不使用 int 而使用 AtomicInteger?
    CompareAndSwap,比较交换。可以看到synchronized可以保证代码块原子性,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能在某些场合下使......
  • 第二章 - 进程
    2.1进程的定义、组成、组织、特征:2.1.1进程的定义:程序:一个指令序列定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位单道程序:一次只能处理......
  • Day 17 17.4 多进程实现
    多进程实现由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。multiprocessing包是Python......
  • 怎么使用硬件同步原语替代锁?
    什么是硬件同步原语?硬件同步原语(AtomicHardwarePrimitives)是由计算机硬件提供的一组原子操作。我们常见的原语操作有CAS和FAA两种。CASCompareandSwap(CAS),字面意思......
  • Linux 远程数据同步工具详解(rsync)
    一、简介1认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文......
  • Linux进程调度的思考
    a.进程怎么载入到CPU中运行?b.当前进程正在运行,怎么确定是否要切换下一个进程?c.怎么选出下一个进程?d.选择进程的算法和优先级?e.介绍一下常用的算法调度逻辑?f.从......