系统操作软件有哪些(系统的基本概念)

一、死锁的定义

多进程,多线程的并发执行虽然提升了系统资源的利用率,提高了系统的性能,但是并发执行也带来了新的问题—–死锁。

死锁是指多个进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象(互相挂起等待),若无外力作用,它们都将无法推进下去。此时系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程

举一个生活中的简单例子:小明和小红都想买一块橡皮,这块橡皮价值一块钱,但是他们俩每个人都只有五毛钱,小明说:你把你的五毛钱给我,让我买橡皮。小红说:你把你的五毛钱给我,让我买橡皮。这样,两个人互相僵持着,谁也不愿意低头,谁都买不到橡皮。

二、几种常见的死锁1.线程将自己锁住

为了保证线程之间的同步和互斥,我们往往需要给其加锁,有时候,线程申请了锁资源,还没有等待释放,又一次申请这把锁,结果就是挂起等待这把锁的释放,但是这把锁是被自己拿着,所以就会永远挂起等待,就造成了死锁。

2.多线程竞争资源循环等待

有两个线程P1和P2,P1首先申请得到了锁L1,P2申请得到了锁L2,这个时候P1有向去申请锁L2,结果是被挂起等待P2释放锁L2,而P2恰好也想申请锁L1,结果是挂起等待P1释放锁L1,此时就造成两个线程互相僵持,造成死锁。

3.进程推进顺序不当引起的死锁问题

有三个线程,P1,P2和P3,分别生产数据M1,M2,M3,同时分别接收别的线程产生的数据M3,M2,M1,如果线程推进的顺序正确,即三个线程都先生产数据,再接收,那么没有问题,但是一旦线程先接受数据,再生产数据,因为一开始没有数据产生,那么就会造成三个线程的死锁问题。

更多Linux内核视频教程文档资料免费领取后台私信【内核】自行获取。

系统操作软件有哪些(系统的基本概念)

内核学习网站:

Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

三、死锁产生的原因和必要条件1.死锁产生的主要原因:

  1. 系统的资源不足。
  2. 进程(线程)推进的顺序不对。
  3. 资源的分配不当。

当系统的资源很充沛的时候,每个进程都可以申请到想要的资源,那么出现死锁的概率就很低,线程的调度顺序和速度不同,也会导致死锁问题。

2.死锁产生的四个必要条件:

  1. 互斥条件:进程(线程)申请的资源在一段时间中只能被一个进程(线程)使用。
  2. 请求与等待条件:进程(线程)已经拥有了一个资源,但是又申请新的资源,拥有的资源保持不变 。
  3. 不可剥夺条件:在一个进程(线程)没有用完,主动释放资源的时候,不能被抢占。
  4. 循环等待条件:多个进程(线程)之间存在资源循环链。

3.处理死锁的方法:

  1. 预防死锁:破坏死锁产生的四个条件之一,注意,互斥条件不能破坏。
  2. 避免死锁:合理地分配资源。
  3. 检查死锁:利用专门的死锁机构检查死锁的发生,然后采取相应的方法。
  4. 解除死锁:发生死锁的时候,采取合理的方法解决死锁。一般是强行剥夺资源。

4.如何打破四个产生条件

  1. 打破互斥条件:改造独占性资源为虚拟大资源,但是大部分资源无法改造,因此不建议使用这个方法。
  2. 打破请求与保持条件:在进程(线程)运行之前,就把需要申请的资源一次性申请到位,满足则运行,不满足就等待,这样就不会造成在占有资源的情况下,还要申请新资源。
  3. 打破不可剥夺条件:在占有资源并且还想要申请新资源的时候,归还已经占有的资源。
  4. 打破循环等待条件:实现资源的有序分配,即对所有的设备进行分类编号,只能以升序的方式来申请资源。

比如说进程P1,使用资源的顺序是R1,R2,进程P2,使用资源的顺序是R2,R1,如果采取动态分配的方式,就很有可能造成死锁。我们对设备进行分类编号,那么P1,P2只能以R1,R2的顺序来申请资源。就可以打破环形回路,避免死锁。

四、银行家算法

在避免死锁的方法中最有名的就是银行家算法,它是DIJKstra E.W于1968年提出来的。为什么叫做银行家算法呢,是因为这有点向银行的“借贷”服务,假如银行只有有限多的资金供给客户进行贷款服务,那么为了保证银行能有足够的资金运转,它在借钱之前要审核客户是否有能够在指定时间内偿还贷款的能力。在研究我们的操作系统的资源分配策略时,也会出现类似的问题,我们系统中的有限资源要分配给各种进程,那么就要事先考察此进程是否有在指定期限内归还资源的能力。必须要保证它能在有限的时间内进行归还,供其他进程使用。大致实现方法:

  1. 当一个进程对资源的最大需求量不超过系统中的资源数量时就可以接纳该进程。
  2. 进程可以分期请求资源,当请求的总数不能超过最大需求量。
  3. 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
  4. 当系统现有的资源能满足进程尚需的资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。

银行家算法:首先需要定义状态和安全状态的概念。系统的状态是当前给进程分配的资源情况。因此,状态包含两个向量Resource(系统中每种资源的总量)和Available(未分配给进程的每种资源的总量)及两个矩阵Claim(表示进程对资源的需求)和Allocation(表示当前分配给进程的资源)。安全状态是指至少有一个资源分配序列不会导致死锁。当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该进程知道同意该请求后系统状态仍然是安全的。

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 请问五九是什么日子?

    五九是我国数九当中的中间的一个节气,五九六九沿河看柳,五九一般是1月份到二月份之间的几天。数九又称冬九九,是一种汉族民间节气。数九寒天,就是从冬至算起,每九天算一“九&…

    2021年12月21日
  • 电子商务主要学什么(电子商务专业就业方向前景分析)

    电子商务专业属于新兴的专业,是计算机开发类知识与财经管理类知识交叉的学科。因此,学习的课程会比较杂。就业而言,可以分为两大方向:一个是走计算机开发的技术方向;另外一个就是走非技术的…

    2021年6月26日
  • 怎么投诉淘宝卖家(盘点投诉淘宝店最狠的方法)

    今天315,消费者权益保护日。估计这个话题在各平台又得上热搜了!今天法律部落也来凑个热闹说说315! 平时网上买东西你们都在哪儿买?京东还是淘宝还是其它平台? 【我想投诉淘宝!!】…

    2022年6月30日 百科问答
  • 祝福卡祝福语怎么写

    1、天涯海角,但愿相忆。 2、沧海明月,天长地久。 3、我默默地祝福你,祝你幸福。 4、新年快乐。 5、一句贺词,浓缩了我对你的祝愿。 6、祝成功和快乐永远伴随着你。 7、愿你不断…

    2022年1月9日
  • 巫师3湖女之剑任务怎么触发

    简要回答 巫师三湖女之剑最简单的任务触发,是进入到陶森特后,并且直接收集到五德,这样才可以获得湖女之剑的任务。其实在收集五德的时候,也会有相关的技巧。首先去比武场看沙尔马,此刻选择…

    2022年4月21日
  • 陆正耀开店计划曝光:“趣小面”14城出击,反瑞幸咖啡扩张打法

    Tech星球独家获悉,陆正耀刚刚创立4个月的舌尖科技(北京)有限公司,在2021年5月搬进了位于北京朝阳区望京南地铁口的东煌大厦。陆正耀租下一整层,约2000平作为办公室,与wew…

    2022年7月4日
  • 性价比最好的手机

    简要回答 对于很对人来说,选择手机优先就对比性价比,也就是说价格要对得起配置,那么千元左右的手机型号中,到底哪些比较值得入手呢,快来看看有没有适合你的。 详细内容 01 vivo …

    2022年2月26日 百科问答
  • 梅妻鹤子的诗人是哪一位?

    01 林逋 梅妻鹤子意思是以梅为妻,以鹤为子,指的是北宋处士林逋。比喻隐逸生活和恬然自适的清高情态,也是中国传统绘画的常见题材之一。出自宋·沈括《梦溪笔谈卷十&mid…

    2022年1月5日
  • 蒜蓉辣椒酱的做法

    简要回答 蒜蓉辣椒酱甜酸鲜辣,非常开胃下饭。做法是先把红辣椒洗净控水剁碎,苹果、白梨和西红柿搅碎,大蒜和姜剁碎。所有食材混合后,再加入适量味精、米醋、白糖、精盐拌匀腌制20分钟。再…

    2022年2月16日 百科问答
  • 农村养殖什么致富快(适合穷人没本钱的养殖)

    养殖业是乡村地区的主要经济项目之一,农村养殖业致富项目也比较多,最为常见的主要有黄鳝养殖、特种野猪养殖、肉驴养殖、小龙虾养殖、肉鸽养殖、香猪养殖、竹鼠养殖等。我们一起来看看2021…

    2021年12月7日 百科问答
品牌推广 在线咨询
返回顶部