66 - 进程互斥锁的应用示例
创始人
2024-05-31 21:42:46
0

---- 整理自狄泰软件唐佐林老师课程

查看所有文章链接:(更新中)深入浅出操作系统 - 目录

文章目录

  • 1. 简单生产消费者问题
    • 1.1 具体问题描述
    • 1.2 解决方案
    • 1.3 简单生产消费者问题模型
    • 1.4 编程实验:生产消费者示例
  • 2. 多任务读写问题(复杂生产消费者问题)
    • 2.1 互斥关系分析
    • 2.2 多任务读写问题模型
    • 2.3 注意
    • 2.4 扩展互斥锁的类型
    • 2.5 编程实验:多任务读写示例
    • 2.6 思考

1. 简单生产消费者问题

  • 有 n 个生产者同时制造产品,并把产品存入仓库中
  • 有 m 个消费者同时需要从仓库中取出产品
  • 规则:
    • 一次只允许一个生产者向仓库放入产品
    • 一次只允许一个消费者从仓库取出产品
    • 生产者和消费者不能同时进入仓库
      ==> 也即:一次只允许一个人进入仓库,仓库是临界资源

1.1 具体问题描述

  • 有 2 个生产者任务,2 个消费者任务
    • Producer A - 生产者,生产A型产品
    • Producer B - 生产者,生产B型产品
    • Consumer A - 消费者,消耗A型产品
    • Consumer B - 消费者,消耗B型产品

1.2 解决方案

  • 使用链表模拟仓库(临界资源)
  • 使用互斥锁保护临界资源
  • 消费者任务进入仓库后,查找所需产品并取出
  • 生产者生产 N 个产品后结束生产

1.3 简单生产消费者问题模型

在这里插入图片描述

1.4 编程实验:生产消费者示例

【参看链接】:66 - 进程互斥锁的应用示例 / 00简单生产消费者问题

在这里插入图片描述

2. 多任务读写问题(复杂生产消费者问题)

  • 有 1 个 Writer 每间隔一段时间就会更新数据
  • 有 n 个 Reader 需要同时读数据
  • 规则:
    • Writer 更新数据时,所有 Reader 必须等待,直到更新完成
    • 多个 Reader 可同时读数据,不会产生冲突
    • Writer 需要等待所有 Reader 数据读取完毕,才能更新数据

2.1 互斥关系分析

  • Writer 与所有 Reader 在目标数据上读写互斥
  • Reader 之间不存在目标数据的读互斥(整体)
  • Reader 之间存在同时读写其它数据的互斥关系

2.2 多任务读写问题模型

在这里插入图片描述

2.3 注意

一个 Writer 和多个 Reader 之间 通过g_mutex_write互斥,使得写权限互斥锁的所有权(g_mutex_write)可以在多个 Reader 之间传递。

在这里插入图片描述

会出现问题:ReaderA获取锁,ReaderB释放锁

2.4 扩展互斥锁的类型

  • Normal
    • 简单互斥锁,不支持多次获取锁
    • 获取锁和释放锁的任务可以不同
  • Strict
    • 严格互斥锁,支持多次获取锁
    • 获取锁和释放锁的任务必须是同一个

2.5 编程实验:多任务读写示例

【参看链接】:66 - 进程互斥锁的应用示例 / 01多任务读写问题

在这里插入图片描述

2.6 思考

  • 如何使用互斥锁解决“吃饭问题”?

相关内容

热门资讯

投影安卓系统授权费,投影背后的... 你有没有想过,为什么你的安卓手机可以运行那么多酷炫的应用?这其中可大有学问呢!今天,就让我带你一探究...
网络21系统和安卓区别,系统架... 你有没有想过,为什么有些人在网上做生意能如鱼得水,而有些人却觉得像是在迷宫里转圈圈?这其中的奥秘,可...
安卓系统水印相机软件,轻松实现... 你有没有发现,手机拍照已经成为我们生活中不可或缺的一部分?无论是记录生活的点滴,还是捕捉美丽的瞬间,...
安卓系统有软音源吗,软音源技术... 你有没有发现,在使用安卓手机的时候,有时候声音听起来有点怪怪的,像是被什么软绵绵的东西包裹了一样?没...
电脑切换系统和安卓,探索多平台... 你有没有想过,为什么你的电脑有时候会突然从Windows系统切换到安卓系统呢?这可不是什么小把戏,而...
原生安卓系统浏览器,原生安卓系... 你有没有发现,手机里的浏览器用起来有时候就像个“小懒虫”,总是慢吞吞的,让人等得心痒痒。今天,就让我...
安卓系统什么打开权限吗,打开权... 你有没有发现,你的安卓手机有时候会跳出来一些奇怪的提示,让你授权这个应用打开那个权限?别急,别慌,今...
安卓系统做游戏机,畅享无限娱乐... 你有没有想过,那个一直陪伴你手机生活的安卓系统,竟然也能摇身一变,成为一台游戏机呢?没错,你没听错,...
虚拟丧葬系统下载安卓版,体验未... 你知道吗?现在科技的发展真是让人惊叹不已,连丧葬这种方式都有了全新的面貌。没错,就是那个听起来有点神...
安卓系统解锁弹广告,揭秘安卓系... 你有没有遇到过这种情况?手机屏幕上突然弹出一个广告,让你瞬间从沉浸式的游戏体验中被打断,心情瞬间跌落...
安卓系统机备用机,智能生活助手... 你有没有想过,当你的安卓手机突然罢工,或者你急需一台备用机来处理一些紧急事务时,你会怎么办呢?别急,...
安卓系统末日生存手游,安卓系统... 你知道吗?在手机游戏的世界里,最近掀起了一股末日生存的热潮。这不,安卓系统上的一款新游戏——《安卓系...
安卓系统应用停用的好处,解锁系... 你知道吗?最近在安卓系统上,有很多应用都宣布停用了。这可不是一个简单的决定,背后可是有着不少好处呢!...
凤凰安卓系统固态硬盘,引领存储... 你知道吗?最近在手机圈里,一款名为“凤凰安卓系统固态硬盘”的新产品可是引起了不小的轰动呢!这款硬盘不...
安卓系统通讯删除,安卓系统通讯... 手机里的通讯录是不是有时候会让你头疼?那些不再联系的人,那些过时的信息,是不是总让你觉得手机里乱糟糟...
安卓系统怎么调成黑白色,轻松实... 你是不是也和我一样,对安卓系统的个性化设置充满了好奇?今天就来手把手教你,如何把安卓系统的界面调成黑...
安卓u盘系统盘,便携式移动办公... 你有没有想过,你的安卓手机或者平板,如果有一天突然变成了一个超级电脑,那会是怎样的场景呢?其实,这并...
安卓系统如何给软件授权,安卓系... 你有没有想过,你的安卓手机里那些可爱的应用是怎么被允许在你的设备上畅行无阻的呢?没错,这就是今天我们...
安卓app调用系统指纹,安全便... 你知道吗?现在智能手机的功能越来越强大,各种APP也是层出不穷。但是,你知道吗?有些APP竟然可以调...
华为会被禁安卓系统吗,未来走向... 最近关于华为的一个大话题在互联网上可是闹得沸沸扬扬呢!那就是——华为会不会被禁用安卓系统?这个问题牵...