67-68 - 进程等待机制的实现
创始人
2024-06-02 20:42:55
0

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

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

文章目录

  • 1. 问题
    • 1.1 再论吃饭问题
    • 1.2 一种可能的解决方案
    • 1.3 编程实验:解决吃饭问题
    • 1.4 思考
    • 1.5 一个大胆的想法
  • 2. 等待机制设计
    • 2.1 关键结构的改动
    • 2.2 预备工作
    • 2.3 编程实验:进程等待机制的实现 - 预备工作 - StrCmp
    • 2.4 思考
    • 2.5 关键实现步骤
      • 2.5.1 关键问题
      • 2.5.2 边界情况处理
      • 2.5.3 编程实验:进程等待机制的实现
    • 2.6 经典问题
      • 2.6.1 经典问题一
      • 2.6.2 经典问题二
      • 2.6.3 经典问题三
    • 2.7 死锁问题
  • 3. 小结

1. 问题

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

1.1 再论吃饭问题

在这里插入图片描述

吃饭要等待煮饭和做菜结束。

1.2 一种可能的解决方案

在这里插入图片描述

1.3 编程实验:解决吃饭问题

【参看链接】:67-68 - 进程等待机制的实现 / 67 / 00

在这里插入图片描述

1.4 思考

  • CookRice、CookDish、HaveDinner三个任务并未访问任何临界资源,那么它们之间有互斥关系吗?那么互斥锁去保护谁呢?

1.5 一个大胆的想法

在这里插入图片描述

2. 等待机制设计

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

2.1 关键结构的改动

在这里插入图片描述

2.2 预备工作

在这里插入图片描述

2.3 编程实验:进程等待机制的实现 - 预备工作 - StrCmp

【参看链接】:67-68 - 进程等待机制的实现 / 67 / 01test_strcmp_strlen

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

2.4 思考

  • 完整实现等待机制还有哪些工作要做?

2.5 关键实现步骤

  • 新增Wait(const char* name)系统调用接口
  • 扩展RunningToWaiting()内核函数:参数化等待队列
  • 扩展WaitingToReady()内核函数:参数化等待队列
  • 实现FindTaskByName():通过名字查找任务数据结构

2.5.1 关键问题

  • 任务分散于各种队列中,如何快速通过名字查找目标任务?
  • 直接查找gTaskBuff数组,当task.id不为0时,可通过task.name判断是否是目标任务

2.5.2 边界情况处理

  • 当目标任务不存在时,立即返回,无须阻塞
  • 任务不能等待 “IdleTask”,Wait(“IdleTask”) 将立即返回

在这里插入图片描述

2.5.3 编程实验:进程等待机制的实现

【参看链接】:67-68 - 进程等待机制的实现 / 68

在这里插入图片描述

2.6 经典问题

2.6.1 经典问题一

在这里插入图片描述

2.6.2 经典问题二

在这里插入图片描述

2.6.3 经典问题三

在这里插入图片描述

2.7 死锁问题

  • 现象描述
    任务因执行所需的资源无法获得而进入无限阻塞的状态 ==> 死锁
  • 发生的条件
    • 互斥:任务需要对资源进行互斥访问(临界资源)
    • 持有并等待:任务获得了资源,同时又在等待其它资源
    • 循环等待:任务之间在相互等待(等待路径形成环路)
    • 非抢占:任务已获得的资源不能被抢夺

3. 小结

  • 任务之间除了互斥关系还有等待关系
  • 任务之间的等待可以看作对执行时间的互斥
  • 任务之间可能因为对多个临界资源的竞争而产生死锁
  • 可依据死锁发生的条件精心设计多任务,避免死锁的发生

相关内容

热门资讯

未来的车五年级作文(通用6篇... 未来的车五年级作文 篇一未来的车五年级作文随着科技的不断发展,未来的车辆将会有许多令人兴奋的变化。在...
五年级多彩的春天作文500字... 五年级多彩的春天作文500字 篇一春天的脚步悄然来临,五年级的同学们迎来了一个多彩的春天。在这个季节...
无言五年级作文(优选6篇) 无言五年级作文 篇一如今的社会,信息爆炸,人们每天都被各种各样的信息所包围。我们通过电视、手机、平板...
日出即景五年级作文500字(... 日出即景五年级作文500字 篇一日出即景每天早上,当第一缕阳光洒在大地上,我总是迫不及待地跑到窗前,...
小学生五年级作文700字(优... 小学生五年级作文700字 篇一我喜欢的动物——熊猫熊猫是我最喜欢的动物之一。它们圆圆的脸上有两个黑黑...
五年级写人作文:我的爸爸【推... 五年级写人作文:我的爸爸 篇一我的爸爸是一个非常了不起的人。他有着一双睿智的眼睛,一头乌黑的头发和一...
小学五年级作文刺激的漂流【精... 小学五年级作文刺激的漂流 篇一在一个阳光明媚的夏天,我和爸爸妈妈一起去参加了一次刺激的漂流活动。这是...
那一次,我成功了作文600字... 篇一:那一次,我成功了那一次,我成功了。这是一次让我终身难忘的经历,它让我明白了成功的含义和背后的辛...
我的补习班小学作文【最新3篇... 我的补习班小学作文 篇一:我的补习班经历我是一个小学生,在上小学四年级的时候,我开始辅导班的学习。我...
我要当奥运小冠军五年级作文(... 我要当奥运小冠军五年级作文 篇一我要当奥运小冠军我是一个五年级的学生,我有一个梦想,那就是成为一名奥...
我是小小推销员作文600字五... 篇一:我是小小推销员我是小小推销员,我喜欢帮助别人解决问题,我喜欢和别人交流,我喜欢给别人推荐好的产...
观《安源儿童团》有感(优质3... 观《安源儿童团》有感 篇一安源儿童团是一部非常温暖而感人的电视剧,通过描绘一群可爱的儿童在困境中团结...
五年级下册第五单元作文500... 五年级下册第五单元作文500字 篇一我的暑假计划暑假即将来临,我已经制定好了一个丰富多彩的暑假计划。...
心中的小英雄五年级作文(实用... 心中的小英雄五年级作文 篇一我心中的小英雄是我的爸爸。虽然他不是一个超级英雄,但他在我的生活中扮演着...
寻根作文五年级【优选6篇】 寻根作文五年级 篇一探寻祖先的足迹我是一名五年级的学生,最近在学校里进行了一次寻根活动。这是一次非常...
游上海迪士尼作文 游上海迪士尼作文(精选26篇)  在平平淡淡的学习、工作、生活中,大家都经常看到作文的身影吧,作文是...
文明礼仪的作文 文明礼仪的作文(精选20篇)  在日常生活或是工作学习中,说到作文,大家肯定都不陌生吧,作文是一种言...
清静如兰 淡若清风为作文 关于清静如兰 淡若清风为作文  平淡的生活,简单中也自有情趣。淡雅如玉、淡泊明志、淡然处世。淡是一种...
给男朋友的一封信 给男朋友的一封信(通用13篇)  在平平淡淡的日常中,大家都经常接触到书信吧,借助书信人们可以传递思...
家的味道作文 家的味道作文四篇  篇一:品一品家的味道  家的味道是温馨的,在你遭受了外面的风雨后,疲惫地回到家,...