解惑1:

为使多个进程能互斥的访问某临界资源,只须为该资源设置

一个互斥信号量 mutex,初值为 1(代表临界资源只有一个)

mutex初值为1.取值范围为[-1,0,1]

当mutex=1时,表示两个进程皆未进入需要互斥访问的临界区;

当mutex=0时,表示有一个进程进入临界区运行,另一个必须等待,挂入阻塞队列;

当mutex=-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。

mutex为0和为1的区别是:为0的时候等待的进程没有申请该资源,为-1的时候申请了,即进行了P操作,所以阻塞了。

解惑2:

信号量的初值表示系统中资源的数目。

解惑3:

empty代表空闲缓冲区的数量;full代表产品的数量。

根据进程同步的前V后P。

缓冲区没满,生产者才可以生产

缓冲区没空,消费者才可消费。设置同步信号量:full=0,empty=N。

从而画出下面的图:

消费者消费产品,非空闲缓冲区个数减一,所以针对full是P操作。空闲缓冲区加一,所以针对empty是V操作。

生产者生产产品,使用一个空闲缓冲区,所以空闲缓冲区减一,所以针对empty是P操作,但是非空闲缓冲区个数加一,所以针对full是V操作。

那么,为什么生产者消费者问题,为什么不能用一个信号量实现同步?

解释一:

如果缓冲区满,生产者是不能生产的,所以生产者进程受到消费者进程的制约;

如果缓冲区空,消费者是不能消费的,所以消费者进程受到生产者进程的制约

所以 需要两个同步信号量

解释二:

首先,假设只有一个同步信号量empty=5,也就是缓冲区有5个空位;

生产者每次生产就申请一个空位,即p(empty)。

假设5次生产之后,满了,临界区满了=生产者不生产了,现在生产者被阻塞,cpu切换到消费者;

消费者在每次消费成功后,执行v(buffer),但是在消费前并没有受到任何制约!这时候的效果就是,消费者可以无限消费,然后empty的值会无限增加,消费者已经消费了刚才生产的5个产品之后都还可以继续消费。

或者假设现在有另一个同步信号量full=0,也就是,缓冲区有0个产品,但是不知道缓冲区有多大的限制。现在每次生产都在生产之后执行v(full),也就是full++,然而full可以一直增加,因为没有上限,也就是消费者被制约但是生产者没被制约。

2个信号量,一个限制生产者,一个限制消费者;1个信号量无法同事限制他们2个。

解惑4

实现写优先代码:

当顺序为:读者1-写者1-读者2时:

读者进程在读文件时,发生进程调度,写者进程执行,此时,写者进程阻塞在P(rw)中,当再有读者进程2执行时,会阻塞到P(W)中,此时,读者进程释放rw后,写者进程最先被唤醒,然后执行,实现了先来先服务。

操作系统-进程同步与互斥易混点相关推荐

  1. 计算机操作系统进程同步实验报告,操作系统进程同步和互斥的实验报告

    操作系统进程同步和互斥的实验报告 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 湖南农业大学信息科学技术学院学生实验报告姓名: 年级专 ...

  2. 操作系统——进程同步与互斥

    文章目录 进程同步与互斥 简介 进程间合作 进程间合作的问题 竞争条件 原子操作 临界区相关的几个概念 忙等待的互斥 基于硬件的同步解决办法:屏蔽中断 基于软件的同步解决方法 严格轮换法 Peters ...

  3. [操作系统]进程同步和互斥

    文章目录 引言 基本概念 进程同步 临界资源 进程互斥 信号量 整型信号量 记录型信号量 信号量实现同步和互斥 实现互斥 实现同步 经典进程同步和互斥问题 生产者-消费者问题 总结 引言 简单总结一下 ...

  4. 进程同步与互斥c语言实验,操作系统进程同步与互斥实验报告.doc

    PAGE PAGE 1 学 生 实 验 报 告 姓名: 年级专业班级 学号 成绩 课程名称 操作系统 实验名称 实验1 进程的同步与互斥 实验类型 验证 设计 综合 创新 [实验目的.要求] 1.通过 ...

  5. 操作系统—进程同步与互斥问题之生产者消费者问题,附赠PV操作题解题思路(思维导图版)

    建议将思维导图保存下来观看,或者点击这里在线观看

  6. 计算机操作系统专题一:多道环境下进程同步与互斥制约关系的学习

    1. 问题描述 设自行车生产线上有一只箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮,又设有三名工人,其活动分别为: 2. 问题分析(包括涉及的知识点.制约关系分析.问题的解决思路等 ...

  7. 操作系统:第二章 进程管理3 - 进程同步与互斥

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  8. 7 操作系统第二章 进程管理 进程同步与互斥

    文章目录 1 进程同步与互斥 1.1 进程同步 1.2 进程互斥 1.3 进程同步机制遵循的原则 1.3 进程同步.互斥小结 2 进程互斥实现方法 2.1 互斥的软件实现方法 2.1.1 单标志法 2 ...

  9. 【操作系统基础】进程管理(三)进程同步与互斥

    一.进程同步.互斥的基本概念 1. 什么是进程同步 进程具有异步性的特征.异步性是指各并发执行的进程以各自独立的.不可预知的速度向前推进.举一个线程通信的例子,管道通信: 读进程和写进程并发运行,由于 ...

最新文章

  1. 传统外贸不好做,为什么不来做跨境电商?
  2. 技术面试问项目难题如何解决的_【知识】同轴线如何当quot;网线quot;使用?解决改造项目中难题...
  3. 使用JSONP解决同源限制问题
  4. 3大框架Struts、Hibernate、Spring简单了解
  5. 西门子、施耐德、罗克韦尔等巨头告诉你,为何你大爷始终是你大爷
  6. 一文掌握大数据架构师需要具备的能力和格局
  7. Microbiome:中国科学家完成鸡肠道微生物宏基因集的构建(张和平、魏泓、秦楠点评)...
  8. 北京跑步入夏--妞妞跑步长大
  9. 用飞书来谈恋爱,飞书机器人定时给女朋友问好!
  10. 书论72 宋啬《书法纶贯》
  11. 盘点2018上半年最受欢迎的前端开发!
  12. 降水数据下载地址汇总
  13. 2019 年 (A 题) 电动小车动态无线充电系统
  14. 什么是网络安全?学了网络安全就是黑客吗?
  15. 高等数学(上)知识点总结
  16. oracle如何添加小数点,Oracle处理保留小数点
  17. unity动态生成线条,门框,踢脚线,U型、弧形线条,或者根据cad线条打样
  18. java通过密保找回密码_如何进入非密码保护的Java密钥库或更改密码?
  19. 【链表】如何判断两个单向链表是否有相交,并找出交点
  20. CruiseYoung提供的带有详细书签的电子书籍目录

热门文章

  1. SSM框架中mapper和mapping.xml文件在同一个包下需要的配置
  2. android资源透明背景,@谷歌android帝 这是你想要的,全局透明背景教程,两种方法...
  3. Redis 实用技术——消息发布和订阅
  4. MySQL 基础 ———— 视图的应用与总结
  5. Git初学札记(一)————Git简介与安装
  6. php utc时间_PHP转换UNIX时间戳 UTC时间(TZ格式) 标准时间的方法 UNIX UTC GMT时间、本地时间互转...
  7. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量
  8. haskell 求列表最大值_Haskell和自然数之基础篇
  9. php time java_java 时间戳和PHP时间戳 的转换 php time()
  10. 新版opencv兼容旧版_【标准换版】关于家用和类似用途电器用外置电源适配器、充电器和内置开关电源产品认证执行新版标准的通知...