精华内容
下载资源
问答
  • 进程互斥

    2018-12-03 10:29:24
    两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。 在多道程序...

    两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
    在多道程序环境下,存在着临界资源,它是指多进程存在时必须互斥访问的资源。也就是某一时刻不允许多个进程同时访问,只能单个进程的访问。我们把这些程序的片段称作临界区或临界段,它存在的目的是有效的防止竞争条件又能保证最大化使用共享数据。而这些并发进程必须有好的解决方案,才能防止出现以下情况:多个进程同时处于临界区,临界区外的进程阻塞其他的进程,有些进程在临界区外无休止的等待。除此以外,这些方案还不能对CPU的速度和数目做出任何的假设。只有满足了这些条件,才是一个好的解决方案。
    为实现进程互斥,可以利用软件的方法,也可以在系统中设置专门的同步机制来协调多个进程,但是所有的同步机制应该遵循四大准则:
    1.空闲让进 当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源。
    2.忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证多进程互斥。
    3.有限等待 对要求访问临界资源的进程,应该保证该进程能在有效的时间内进入临界区,防止死等状态。
    4.让权等待 当进程不能进入临界区,应该立即释放处理机,防止进程忙等待。
    早期解决进程互斥问题有软件的方法和硬件的方法,如:严格轮换法,Peterson的解决方案,TSL指令,Swap指令都可以实现进程的互斥,不过它们都有一定的缺陷,这里就不一一详细说明,而后来Dijkstra提出的信号量机制则更好的解决了互斥问题。
    解决进程互斥还有管程,进程消息通信等方式。

    展开全文
  • 进程互斥课件进程互斥课件进程互斥课件进程互斥课件
  • 目录思维导图进程同步进程互斥 思维导图 进程同步 进程互斥

    思维导图

    在这里插入图片描述

    进程同步

    在这里插入图片描述
    在这里插入图片描述

    注意:   进程同步是为了解决进程异步的。  
    不要以为同步是同时发生的意思。
    

    进程互斥

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 进程同步和进程互斥

    2020-07-13 09:05:42
    进程同步和进程互斥 1.什么是进程同步 2.什么是进程互斥 3.临界区的分类 4.进程互斥需要遵循的原则 5.总结

    进程同步和进程互斥

    1.什么是进程同步
    在这里插入图片描述
    在这里插入图片描述
    2.什么是进程互斥
    在这里插入图片描述
    3.临界区的分类
    在这里插入图片描述
    4.进程互斥需要遵循的原则
    在这里插入图片描述
    5.总结
    在这里插入图片描述

    展开全文
  • 进程互斥实验

    2015-10-07 21:27:11
    进程互斥实验
  • 进程互斥的概念3. 访问临界资源4. 访问临界资源需要遵循的原则5. 知识回顾二、进程互斥的软件实现方法1. 单标志法2. 双标志先检查法3. 双标志后检查法4. Peterson算法5. 知识回顾三、进程互斥的硬件实现方法1. 中断...

    进程同步

    一、进程同步、互斥

    1. 进程同步的概念

    进程同步指的是协调多个并发执行进程的工作先后次序

    2. 进程互斥的概念

    临界资源:一个时间段内只允许一个进程使用的资源

    进程互斥指的是当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待, 当前访问临界资源的进程访问结束,释放该资源后,另一个进程才能去访问临界资源

    3. 访问临界资源

    对临界资源的互斥访问,可在逻辑上分为如下四个部分:
    在这里插入图片描述

    4. 访问临界资源需要遵循的原则

    (1) 空闲让进

    临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区

    (2) 忙则等待

    当已有进程进入临界区时,其他试图进入临界区的进程必须等待

    (3) 有限等待

    对请求访问的进程,应保证能在有限时间内进入临界区 (保证不会饥饿)

    (4) 让权等待

    当进程不能进入临界区,应当立即释放处理机,防止进程忙等待 (不应该让他占用处理机 一直执行循环无法前进,应当得知无法进入临界区时不执行循环,直接切换进程)

    5. 知识回顾

    在这里插入图片描述

    二、进程互斥的软件实现方法

    1. 单标志法

    思想:一个进程访问完临界区后会把使用临界区的权限交给另一个进程,即每个进程进入临界 区的权限只能被另一个进程赋予

    过程:

    在这里插入图片描述

    若P0要访问临界区,turn变为0,P1会一直在⑤循环,无法向下进行,P0访问完,将 turn改为1,P1跳出循环,P1可访问临界区

    注意:
    (1) 该算法可以实现同一时刻最多只允许一个进程访问临界区
    (2) 如果此时允许进入临界区的进程是P0,而P0一直不访问临界区,那么此时虽然临界区 空闲,但一直不允许P1访问,因此,单标志法存在的问题是:违背空闲让进原则

    2. 双标志先检查法

    思想:设置一个布尔数组flag[],数组中各元素标记各进程是否想进入临界区,true表示想进入, false表示不想进入;每个进程在进入临界区之前先检查当前有没有别的进程想进入临界 区,如果没有,把自身对应的标志flag[i]改为true,之后开始访问临界区

    过程:

    在这里插入图片描述

    存在的问题:P0进程进入之后,在修改P0为true之前,切换到P1,P1检查无别的进程 想进入临界区,故会将P1改为true,导致两个进程都为true,会同时访问

    注意:
    (1) 双标志先检查法存在的问题是:违背忙则等待原则
    (2) 出现的原因:进入区的检查和上锁不是一气呵成的

    3. 双标志后检查法

    思想:双标志先检查法的改版,先上锁后检查,谁想进谁直接将自身改为true,不关心其他进 程,改为true之后,再检查有没有其他进程想访问

    过程:
    在这里插入图片描述

    存在的问题:P0想进入,P0改为true,在检查之前切换到P1,P1想进入,改为true,					  导致两个进程都为true,谁都无法访问临界区,产生饥饿现象
    

    注意:
    (1) 双标志后检查法解决了忙则等待的问题,但是又违背了空闲让进和有限等待原则
    (2) 出现的原因:进入区的检查和上锁不是一气呵成的

    4. Peterson算法

    思想:双标志后检查法的改版,若两个进程都想进入临界区,可以主动让对方优先访问临界区

    过程:

    在这里插入图片描述
    进入区做了三件事:1. 主动争取 2. 主动谦让 3. 检查对方

    注意:
    Peterson算法解决了空闲让进,忙则等待,有限等待三个原则,但违背了让权等待原则

    5. 知识回顾

    在这里插入图片描述

    三、进程互斥的硬件实现方法

    1. 中断屏蔽方法

    利用开/关中断指令实现,与原语思想相同,即在某进程开始访问临界区到结束访问为止都不允 许被中断,也就不能发生进程切换,因此也不可能出现两个进程同时访问临界区的情况

    优点:简单、高效

    缺点:不适用于多处理机;只适用于内核进程,不适用于用户进程

    2. TestAndSet指令(TS指令)

    又称为TestAndSetLock指令(TSL指令)

    TSL指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成,如图:

    在这里插入图片描述

    若刚开始lock是false(没有进程访问临界区),则TSL返回值是false,不会卡在while循环,此 进程可以访问临界区;若刚开始是true(有进程在访问临界区),TSL返回值是true,会卡在while 循环,直到正在访问临界区的进程访问结束,将lock值改为false,此进程才可进入临界区

    优点:实现简单,适用于多处理机环境

    缺点:不满足让权等待原则,暂时无法进入临界区的进程会占用CPU并循环执行TSL指令,从 而导致忙等

    3. Swap指令

    又称为Exchange指令(XCHG指令)

    Swap指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成,如图:

    在这里插入图片描述

    当lock为false(无进程访问临界区时)才可以跳出循环,访问临界区

    优点:实现简单,适用于多处理机环境

    缺点:不满足让权等待原则,暂时无法进入临界区的进程会占用CPU并循环执行Swap指令, 从而导致忙等

    4. 知识回顾

    在这里插入图片描述

    四、信号量机制

    1. 产生原因

    进程互斥的四种软件实现方法、三种硬件实现方法都无法实现让权等待,也就是进程无法进入 临界区时,会占用处理机一直循环(因为并没有必要一直循环,可以直接切换进程)

    2. 介绍

    (1) 信号量就是一个变量,表示系统中某种资源的数量
    (2) 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作
    (3) 一对原语是:wait(S)原语和signal(S)原语,S是信号量 (将此对原语理解为函数)
    (4) 通常将wait(S)称为P操作,写为P(S);通常将signal(S)称为V操作,写为V(S)

    3. 整型信号量

    用一个整数型变量作为信号量,用来表示系统中某种资源的数量,如下:

    在这里插入图片描述

    4. 记录型信号量

    在整型信号量(不满足让权等待)的基础上进行改进,使用记录型数据结构表示信号量,如下:

    在这里插入图片描述

    举个例子:
    计算机有两台打印机,需要分配给不同的进程使用,value初始值为2,等待队列为空:

    (1) P0进程使用打印机,执行wait,value–,value值成为1
    (2) P1进程使用打印机,执行wait,value–,value值成为0 (无打印机可用)
    (3) P2进程使用打印机,执行wait,value–,value值成为-1,value < 0,执行block,成为等 待队列的队首 (无法使用时,不会占用处理机执行循环,未出现忙等现象)
    (4) P3进程使用打印机,执行wait,value–,value值成为-2,value < 0,执行block,成为等 待队列的第二个进程
    (5) 切换到P0,P0使用完打印机,执行signal,value++,value值成为-1,value <= 0,执行 wakeup,唤醒等待队列的队首进程(P2进程),P2移出等待队列,P2使用打印机
    (6) 切换到P2,P2使用完打印机,执行signal,value++,value值成为-1,value <= 0,执行 wakeup,唤醒等待队列的队首进程(P3进程),P3移出等待队列,P3使用打印机

    1. 知识回顾

    在这里插入图片描述

    五、用信号量实现进程互斥、同步、前驱关系

    1. 信号量机制实现进程互斥

    设置互斥信号量mutex,初值为1,如图:
    在这里插入图片描述

    注意:
    (1) 对不同的临界资源需要设置不同的互斥信号量
    (2) P、V操作必须成对出现,缺少P无法保证互斥访问,缺少V无法唤醒等待进程

    2. 信号量机制实现进程同步

    实现进程同步,必须保证进程的执行是有先后次序的,即一前一后

    (1) 设置同步信号量S,初值为0 (理解为刚开始没有资源,P1进程想使用必须通过P2产生资源)
    (2) 在前进程之后执行V(S)
    (3) 在后进程之前执行P(S)

    在这里插入图片描述

    3. 信号量机制实现前驱关系

    在这里插入图片描述

    4. 知识回顾

    在这里插入图片描述

    六、生产者 - 消费者问题

    1. 问题分析

    系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费 者进程每次从缓冲区中取出一个产品并使用,生产者、消费者共享一个初始为空、大小为n的 缓冲区
    2. 关系分析

    (1) 同步关系

    i. 缓冲区满时,生产者需要等消费者取走产品
    ii. 缓冲区空时,消费者需要等生产者放入产品

    (2) 互斥关系

    i. 生产者与消费者要互斥访问缓冲区 (缓冲区是临界资源)
    ii. 生产者与生产者要互斥访问缓冲区 (两个生产者可能会覆盖数据)
    iii. 消费者与消费者要互斥访问缓冲区 (两个消费者可能有一个读的是空数据)

    1. 实现

    在这里插入图片描述

    展开全文
  • 进程同步、进程互斥

    2021-01-20 20:55:44
    什么是进程同步 什么是进程互斥
  • 2.3.1进程同步、进程互斥 知识总览 1.进程同步 2.进程互斥 3.总结
  • 线程进程互斥

    2017-03-01 19:58:16
    线程进程互斥
  • 进程同步与进程互斥

    2020-06-25 12:28:48
    进程同步和进程互斥概念进程互斥的软件实现方法单标志法双标志先检查法双标志后检查法Peterson算法进程互斥的硬件实现方法中断屏蔽方法TestAndSet指令Swap指令 概念 进程具有异步性的特征,异步性是指各并发执行的...
  • 进程同步和进程互斥进程同步和进程互斥进程互斥的软件实现方法单标志法双标志先检查法双标志后检查法Peterson算法进程互斥的硬件实现方法 进程同步和进程互斥 进程同步: 1.并发性带来了异步性,又是需要通过进程...
  • 进程互斥启动

    2020-04-07 16:53:07
    实现进程互斥的方法有: 进程在启动时首先检查当前系统是否已经存在有此进程的实例,如果没有,进程将成功创建并设置标识实例已经存在的标记。再创建进程时将会通过该标记而知晓其实例已经存在,从而保证进程在系统...
  • 操作系统的实验课设,实现Dekker,Lamport,Peterson,Eisenberg进程互斥访问临界区算法,使用java语言完成,可以动态显示进程访问临界区时各个进程的状态
  • 2.3_ 1_ 进程同步、进程互斥 文章目录2.3_ 1_ 进程同步、进程互斥1.知识概览2.什么是进程同步?2.什么是进程互斥3.知识回顾 1.知识概览 2.什么是进程同步? 2.什么是进程互斥 3.知识回顾 ...
  • 一、进程同步 并发性带来了异步性,有时需要通过进程同步解决这种异步问题。有的进程之间需要相互配合地完成工作,各进程的工作推进需要遵循一定的先后顺序。 二、进程互斥 ...
  • 进程互斥和进程同步

    千次阅读 2018-05-27 22:40:27
    概念: 1.临界资源(critical resource): 系统中某些资源一次只允许一个进程使用,称这样的资源为...3.进程互斥(mutual exclusive):由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用,...
  • 进程互斥和同步

    2019-09-04 15:17:42
    进程互斥(mutual exclusion) 共享资源 是竞争关系。 是无意识安排的,可以发生在相关进程之间,也可以发生在无关进程之间。 是间接制约关系。 进程同步 合作关系。 是有意识的安排,只发生在相关进程之间。 ...
  • 进程互斥与进程同步

    2017-09-07 21:45:43
    进程之间的相互作用关系分为两种,一种是共享资源的关系,一种是相互合作的关系,前者属于进程互斥、后者属于进程同步。我们把实现这两类相互制约关系的机制,统称为进程同步机制。同步机制有四大原则:空闲让进、忙...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,310
精华内容 6,524
关键字:

进程互斥