操作系统-进程同步与互斥易混点
解惑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后,写者进程最先被唤醒,然后执行,实现了先来先服务。
操作系统-进程同步与互斥易混点相关推荐
- 计算机操作系统进程同步实验报告,操作系统进程同步和互斥的实验报告
操作系统进程同步和互斥的实验报告 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 湖南农业大学信息科学技术学院学生实验报告姓名: 年级专 ...
- 操作系统——进程同步与互斥
文章目录 进程同步与互斥 简介 进程间合作 进程间合作的问题 竞争条件 原子操作 临界区相关的几个概念 忙等待的互斥 基于硬件的同步解决办法:屏蔽中断 基于软件的同步解决方法 严格轮换法 Peters ...
- [操作系统]进程同步和互斥
文章目录 引言 基本概念 进程同步 临界资源 进程互斥 信号量 整型信号量 记录型信号量 信号量实现同步和互斥 实现互斥 实现同步 经典进程同步和互斥问题 生产者-消费者问题 总结 引言 简单总结一下 ...
- 进程同步与互斥c语言实验,操作系统进程同步与互斥实验报告.doc
PAGE PAGE 1 学 生 实 验 报 告 姓名: 年级专业班级 学号 成绩 课程名称 操作系统 实验名称 实验1 进程的同步与互斥 实验类型 验证 设计 综合 创新 [实验目的.要求] 1.通过 ...
- 操作系统—进程同步与互斥问题之生产者消费者问题,附赠PV操作题解题思路(思维导图版)
建议将思维导图保存下来观看,或者点击这里在线观看
- 计算机操作系统专题一:多道环境下进程同步与互斥制约关系的学习
1. 问题描述 设自行车生产线上有一只箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮,又设有三名工人,其活动分别为: 2. 问题分析(包括涉及的知识点.制约关系分析.问题的解决思路等 ...
- 操作系统:第二章 进程管理3 - 进程同步与互斥
本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...
- 7 操作系统第二章 进程管理 进程同步与互斥
文章目录 1 进程同步与互斥 1.1 进程同步 1.2 进程互斥 1.3 进程同步机制遵循的原则 1.3 进程同步.互斥小结 2 进程互斥实现方法 2.1 互斥的软件实现方法 2.1.1 单标志法 2 ...
- 【操作系统基础】进程管理(三)进程同步与互斥
一.进程同步.互斥的基本概念 1. 什么是进程同步 进程具有异步性的特征.异步性是指各并发执行的进程以各自独立的.不可预知的速度向前推进.举一个线程通信的例子,管道通信: 读进程和写进程并发运行,由于 ...
最新文章
- 传统外贸不好做,为什么不来做跨境电商?
- 技术面试问项目难题如何解决的_【知识】同轴线如何当quot;网线quot;使用?解决改造项目中难题...
- 使用JSONP解决同源限制问题
- 3大框架Struts、Hibernate、Spring简单了解
- 西门子、施耐德、罗克韦尔等巨头告诉你,为何你大爷始终是你大爷
- 一文掌握大数据架构师需要具备的能力和格局
- Microbiome:中国科学家完成鸡肠道微生物宏基因集的构建(张和平、魏泓、秦楠点评)...
- 北京跑步入夏--妞妞跑步长大
- 用飞书来谈恋爱,飞书机器人定时给女朋友问好!
- 书论72 宋啬《书法纶贯》
- 盘点2018上半年最受欢迎的前端开发!
- 降水数据下载地址汇总
- 2019 年 (A 题) 电动小车动态无线充电系统
- 什么是网络安全?学了网络安全就是黑客吗?
- 高等数学(上)知识点总结
- oracle如何添加小数点,Oracle处理保留小数点
- unity动态生成线条,门框,踢脚线,U型、弧形线条,或者根据cad线条打样
- java通过密保找回密码_如何进入非密码保护的Java密钥库或更改密码?
- 【链表】如何判断两个单向链表是否有相交,并找出交点
- CruiseYoung提供的带有详细书签的电子书籍目录
热门文章
- SSM框架中mapper和mapping.xml文件在同一个包下需要的配置
- android资源透明背景,@谷歌android帝 这是你想要的,全局透明背景教程,两种方法...
- Redis 实用技术——消息发布和订阅
- MySQL 基础 ———— 视图的应用与总结
- Git初学札记(一)————Git简介与安装
- php utc时间_PHP转换UNIX时间戳 UTC时间(TZ格式) 标准时间的方法 UNIX UTC GMT时间、本地时间互转...
- python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量
- haskell 求列表最大值_Haskell和自然数之基础篇
- php time java_java 时间戳和PHP时间戳 的转换 php time()
- 新版opencv兼容旧版_【标准换版】关于家用和类似用途电器用外置电源适配器、充电器和内置开关电源产品认证执行新版标准的通知...