操作系统养成计划之篇二:死锁

news/2024/5/20 15:17:57 标签: 死锁

博文开头说点别的,风雨哈佛路小说原文中有这么一段话:上帝赋予我平静,让我接受无法改变的事情,赋予我勇气,让我改变我能改变的事情,赋予我智慧,让我发现事物的不同...莉丝默里的精神!

死锁的概念:该组的每一个进程都正在等待这一组的其他进程所占有的资源而无法推进的错误现象!

死锁状态下,所有的进程都在等待,没有一个进程能引用任何事件将该组中的其他成员唤醒,因此,所有的进程永远处于等待状态。

死锁产生的原因:

根本原因:系统资源不足;推进顺序不当。

四个必要条件:

1、互斥条件

2、保持和等待条件

3、不剥夺条件

4、环路等待条件

死锁的一般处理策略:

1、预防死锁(设置一些限制条件,破坏产生死锁的四个必要条件的一个或几个)

2、避免死锁(在资源的动态分配过程当中,用某种方法防止系统进入不安全状态!即侯明明提到的银行家算法)

3、死锁的检测与解除(允许死锁发生,通过检测系统,发生死锁后通过某种措施解除死锁

死锁经典问题:

哲学家吃通心面问题:

问题描述:设有5个哲学家,共享拥有五把椅子的圆桌,每人一把椅子,桌子上一共五根筷子,每人两边各放一把,哲学家饥饿时试图取得两把筷子就餐,

就餐应满足如下条件:

1、每一个人只有拿到两双筷子才能就餐

2、如果筷子在他人手上,则必须等待他人就餐结束才可以拿取筷子

3、未拿到两只筷子绝不放下手中的筷子

问题分析:

五位哲学家对左右邻居对中间筷子的访问属于互斥关系

一般思路方法PV操作如下:

semaphore chopstick[5]={1,1,1,1,1};//定义信号量,筷子五只

pi(){

do{

P(chopstic[i]);

P(chopstick[(i+1)%5]);

eat ;

V(chopstic[i]);

V(chopstick[(i+1)%5]);

Think;

}while(1);

}

这种算法存在死锁问题,当五个哲学家各拿一只筷子,那么大家都没得吃了GG;可以增加一些限制条件从而避免死锁,比如说,同时最多允许四个哲学家就餐;

后续增添哲学家吃面问题实例代码!

Thanks for your reading.





http://www.niftyadmin.cn/n/959461.html

相关文章

操作系统养成计划之篇二:死锁实战篇——银行家算法

bankers algorothm 银行家算法是针对避免死锁问题的经典算法 其算法以银行借贷为基础,判断并且保证系统的安全运行 介绍银行家算法需要先介绍三个概念: 1:安全序列:指一个进程序列{1、2、3、... n},对于每一个进程…

计算机网络肢解计划之篇一:网络体系结构

写在博客开头:我的系列博客第二轮,每天加油学习,每隔一段时间总结学习内容,加以巩固,以及分享!收获每一点滴,愿所有的一切更加美好。每一天都有意义!powerful! 系列博客…

细菌繁殖

Description 某种细胞&#xff08;用*表示&#xff09;繁殖遵循一定的规律。第一天的数量为1&#xff0c;以后按照如下方式繁殖&#xff1a;第一天:*第二天:*****第三天:*************。。。。。。。。。你需要计算第x天的细胞数量。Input 第一行一个N(<1000),下面将有N行测…

C++学习篇之引用

引用的概念&#xff1a;引用是一个别名&#xff0c;在创建引用的过程中&#xff0c;需要使用另一个对象去初始化&#xff0c;之后&#xff0c;该引用就像是这个对象的另一个名称&#xff0c;对引用执行的任何操作都是针对该对象。 引用的创建&#xff1a; Int &rReferenc…

计算机网络肢解计划之篇二:物理层

这篇博客主要介绍计算机网络的物理层&#xff0c;介绍方向分为三个部分&#xff0c;分别是通信基础&#xff0c;传输介质和物理层设备。 一&#xff1a;通信基础&#xff0c;先介绍 一些基本概念&#xff1a; 1&#xff1a;数据&#xff1a;指传送信息的实体 2&#xff1a;信号…

vs2008 MFC工程建立

愿鸡汤成为你前进的动力&#xff0c;愿梦想使你持之以恒&#xff0c;而非一时热血 本文总结了VS如何区建立MFC工程的步骤。 MFC&#xff0c;全称Microsoft Foudation Classes&#xff0c;是一种application framework&#xff0c;以VC封装了windows API 的开发工具。 具体详细使…

关于跨平台技术选型的思考

关于跨平台技术选型的思考 在我们进行技术架构和技术选型的时候&#xff0c;我们经常犯一个错误就是&#xff0c;试图找一个完美的解决方案即&#xff1a;坑少、功能多。 但是&#xff0c;无数次惨痛经历仍然难以记住这个事实&#xff0c;就是&#xff0c;好的架构是需要迭代的…

DOS下进行文本编辑的方法

这篇博文介绍dos环境下对文本进行编辑的方法&#xff0c;话不多说&#xff0c;进入正题。 当你有一个dos盘的时候&#xff0c;进入dos盘&#xff0c;使用指令“EDIT”&#xff0c;即可进入编辑界面&#xff0c;如图&#xff1a; 利用快捷键“ALTF”&#xff0c;进行选择需要的…