读者和写者

  • 读写两组进程,共享一个文件,多个读者可以同时访问文件,多个写者不可以同时访问文件,写者和读者也不可以同时访问文件
  • 共享读;独占写
  • 特征:1,资源被谁占有;2,写者改变资源,读者不改变资源
  • 分析:写者关心文件是否被占有;读者作为一个团体去读文件,第一个人关心文件是否被占有;读者团中间的人增加读者团的人数;最后一个读者需要释放文件

semaphore mutex = 1;读者i(){while(1){p(mutex);if (read_count == 0){p(s);}read_count++;v(mutex);p(mutex);count--;v(mutex);if (read_count == 0){v(s);}}
}写者i(){while(1){p(s);写操作;v(s);}
}

例题

  • 一根绳子横跨峡谷两边,猴子通过绳索过峡谷,只要朝着相同方向,同一时刻可以通过多只猴子,但是如果是相反的方向,同时有猴子通过就会产生死锁,如果一只猴子想过峡谷,必须看是否有相反方向的猴子通过绳索,请使用pv操作解决问题
  • 猴子属性分为 第一只 中间 最后一只
  • 代码
semaphore mutex = 1;
semaphore s = 1;//桥
左边猴子(){while(1){p(mutex);if (left_count == 0){p(s);}left_count++;v(mutex);过桥;p(mutex);left_count--;if (left_count == 0){v(s);}v(mutex);}
}

生产者和消费者 以及 读者和写者之间的区别

  • 资源的影响 消费者会改变资源;但是读者不会改变资源
  • 读者表现一个团体的性质,需要计数,按照属性分为 第一个 中间的人 和 最后一个人;生产者和消费者计数是对资源的利用和剩余进行计数。

计算机操作系统读者和写者模型的简单介绍以及思考相关推荐

  1. VAE 模型基本原理简单介绍

    VAE 模型基本原理简单介绍 1. 编写目的 2. 推荐资料 3. 相关背景 3.1 生成模型(Generative model): 3.2 隐变量模型(Latent Variable Models) ...

  2. Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用

    Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用 目录

  3. 计算机操作系统生产者和消费者模型的简单介绍

    同步互斥小口诀 画图理解题目 判断题目类型 分析进程数目 填写进程模板 补充基本代码(伪代码) 补充PV代码 检查调整代码 注意事项 代码是一步一步写出来的,代码是反复调整写出来的 60%是生产者和消 ...

  4. 几种服务器端IO模型的简单介绍及实现(转载)

    作者:阿凡卢 出处:http://www.cnblogs.com/luxiaoxun/ 服务器端几种模型: 1.阻塞式模型(blocking IO) 我们第一次接触到的网络编程都是从 listen() ...

  5. 操作系统线程互斥,锁死机制的简单介绍

    用户线程的切换,是内核决定,由调度器分配时间片调度到内核空间,转换成内核线程,然后指令重排序交给CPU.CPU没有执行过程中的中断时间,是不断的在运行,只是调度器提前将线程调度好,将多个线程的指令排好 ...

  6. 关于盒子模型的简单介绍

    一.盒模型.盒子模型.框模型 (box model) 网页中也有很多的元素,将各种元素摆放在合适的位置盒模型将页面所有元素的形状都统一了,你在布局时只需要考虑到元素的大小即可. 盒模型: 内容区   ...

  7. 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍...

    在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...

  8. python模型的属性是什么_Python的自定义属性访问跟描述器以及ORM模型的简单介绍...

    一 . 自定义属性访问 1.__getattr__ 作用:当我们访问属性的时候,如果属性不存在(出现AttrError),该方法会被触发. 2.__getattribute__ 作用:访问属性的时候, ...

  9. Pytorch模型层简单介绍

    模型层layers 深度学习模型一般由各种模型层组合而成. torch.nn中内置了非常丰富的各种模型层.它们都属于nn.Module的子类,具备参数管理功能. 例如: nn.Linear, nn.F ...

最新文章

  1. 【安全漏洞】挖洞小记
  2. nlp 命名实体识别 算法_中文命名实体识别算法 Lattice LSTM
  3. 很好的 .NET 换肤软件 IrisSkin
  4. pytorch模型加载测试_pytorch模型加载方法汇总
  5. mysql查看sql代价_mysql 代价
  6. _百万内最魔性的GT跑车 测试捷豹F-TYPE P380四驱版
  7. python中factor函数_Python基础教程
  8. MVC Razor视图引擎控件
  9. C库函数学习笔记之strcpy
  10. 快速记下html css,如何快速记住及输入CSS样式属性单词?
  11. 怎么用psftp下载linux上的文件夹,使用PSFTP上传和下载Linux服务器文件.doc
  12. 【java】蔡勒公式计算星期(switch语句方法和数组方法)
  13. 使用PowerShell查看Windows 补丁记录并写入数据库
  14. iOS 音乐播放器(二)
  15. 爱因斯坦广义相对论:引力是时空的曲率
  16. 简单批处理文件使用win7自带wifi,妈妈再也不担心WiFi软件不稳定了
  17. ”高内聚 ,低耦合“到底是什么意思?
  18. 多智能体强化学习(三)单智能体强化学习
  19. 使用WebSocket实现聊天室
  20. HotSpot JVM -- 深度好文

热门文章

  1. 提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?
  2. 【转】10个推荐的 PACS/DICOM Server开源项目
  3. 【转】编译DCMTK
  4. 【转】000.DICOM:DICOM标准学习路线图(初稿)!!!!!!!!!!!!
  5. 【转】分布式事务的常见解决方案
  6. 天猫方糖 篇一:新版天猫放糖改造立体声
  7. 【Python CheckiO 题解】First Word (simplified)
  8. 字节一面 —— List 和 Map、Set 的区别
  9. 【POJ - 2762】Going from u to v or from v to u?(Tarjan缩点,树形dp 或 拓扑排序,欧拉图相关)
  10. 【POJ - 3048】Max Factor (数论,打表,水题)