操作系统基础:进程知识笔记(三)

             

1、死锁概念知识

计算机中存在许多互斥资源(打印机)、软件资源(进程表、临界区)如果两个进程同时调用打印机,或同时进入临界区必然会出现问题。

死锁:指两个以上的进程互相要求对方已经占有的资源导致无法继续进行下去的现象。

2、死锁案例

2.1 进程推进顺序不当引起的死锁

假设系统中有一台打印机A、一台扫描仪B,它们被进程P1、P2共享,两个进程并发执行,按照下面的顺序请求和释放资源

如果按照P1<a>P2<a>P1<b>P2<b>的顺序执行,会发生死锁。首先P1<a>打印机A未被占用,可以正常执行;P2<a>扫描仪没有被占用所以可以正常执行。

P1<b>时扫描仪被占用,所以需要等待。P1<b>时打印机被占用所以也需要等待。这样导致双方互相请求对方已经占用的资源,系统就会发生死锁。

             

2.2 同类资源分配不当引起死锁

如果系统中有m个资源被n个进程共享,当每个进程都需要k个资源,并且m<nk时,即资源数小于进程所要求的的总数时,可能会引起死锁。

2.3 PV操作使用不当引起死锁

P2进程从缓冲区取产品前,先执行P(S2),因为S2=-1,故P2等待;P1进程将产品送到缓冲区后。执行P(S1),因为S1=-1,故P1等待。这样P1、P2都无法继续执行下午,导致系统死锁。

             

3、产生死锁的原因和条件

原因:竞争资源及进程推进顺序非

必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件。

进程资源有向图:由方框(资源)、圆圈(请求资源)、有向边组成。

             

4、死锁的处理

鸵鸟策略(不理睬策略)、预防策略、避免策略、检测与解除死锁。

4.1 死锁预防

采用某种策略显示并发进程对资源的请求,破坏死锁产生的某个必要条件,是系统在任何时刻都不能满足死锁的必要条件。预防死锁的两种策略如下:

1、预先静态分配法

破坏不可剥夺条件、预先分配所需资源,保证不出现资源等待的情况。缺点:会降低资源利用率、并发程度。

2、资源有序分配法

破坏环路条件。把资源分类按顺序排列,保证不形成环路。缺点:限制了进程对资源的请求、资源的排序会占用系统开销。

4.2 死锁避免

死锁预防是设法破坏产生死锁的必要条件之一,严格防止死锁产生。死锁避免并不是严格地限制死锁产生的必要条件。最经典的死锁避免算法是Dijkstra提出的银行家算法。缺点:死锁算法会占用系统的很大开销。

4.3 死锁检测

该方法对资源分配不加限制,即允许死锁产生,当系统要定时运行死锁检测程序,判断系统是否发生死锁,如果检测到则设法解除。

4.4 死锁解除

1、资源剥夺法:从一些进程那里强行剥夺足够数量的资源分配给死锁进程。

2、撤销进程法:按照某种策略撤销死锁进程,直到解除死锁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

垂直梯形校正画质损失多少_梯形校正功能是怎么实现的?其中可大有学问

梯形校正这个概念&#xff0c;想必大部分投影仪用户早已耳熟能详。所谓的梯形校正&#xff0c;指的是当我们的投影仪位置摆放不正时&#xff0c;投射出来的画面会是一个梯形&#xff0c;这时候需要通过投影仪的梯形校正功能将画面调整为可以正常观看的矩形。虽然目前市场上的大…

操作系统基础:存储管理知识笔记(一)

1、存储器基础知识 存储器管理的对象是主存或内存&#xff0c;存储器是计算机系统中非常关键的资源&#xff0c;用来存放各种信息的主要场所。存 储器管理功能主要包括&#xff1a;主存空间的分配和回收、提供主存利用率、扩充主存、主存信息的保护。 2、存储器结构 存储器结构…

asp点击按钮sql列求和_助你2020晋级互联网大数据阵营(一):轻轻松松学SQL

毫不负责任的说&#xff0c;你和数据科学家最大的鸿沟&#xff0c;就差一个SQL语言&#xff1a;)入门后&#xff0c;后面的事情就简单了为了帮大家尽快入门Hive SQL、学会提数和分析&#xff0c;实现在大数据领域大干一场的愿望&#xff0c;帮你准备好了数据&#xff0c;准备好…

幂等和高并发在电商系统中的使用

在Java web项目开发中&#xff0c;经常会听到在做订单系统中生成订单的时候&#xff0c;要做幂等性控制和并发控制&#xff0c;特对此部分内容作出总结&#xff0c;在高并发场景下&#xff0c;代码层面需要实现并发控制&#xff1b;但是幂等性&#xff0c;其实更多的是系统的接…

@transactional注解失效情况

先来了解一下Transactional注解事务的特性吧&#xff0c;可以更好排查问题 1、service类标签(一般不建议在接口上)上添加Transactional&#xff0c;可以将整个类纳入spring事务管理&#xff0c;在每个业务方法执行时都会开启一个事务&#xff0c;不过这些事务采用相同的管理方…

计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除

很多的电脑用户担心其他用户在使用电脑时修改c盘中的重要文件&#xff0c;所以会将c盘设置为隐藏&#xff0c;那么大家知道在win7系统中怎么隐藏c盘吗?方法很简单&#xff0c;下面小编为大家带来win7隐藏c盘的详细教程&#xff0c;不知道怎么隐藏的朋友可以查看下面的教程学习…

操作系统基础:存储管理知识笔记(二)

一、分页存储管理 1、分页存储管理介绍 1.1 分页原理 页&#xff1a;将一个进程的地址空间划分为若干个大小相等的区域称为页。 块、页框&#xff1a;主存空间划分成与页相同的若干个物理块。 1.2 地址结构 分页系统地址结构&#xff1a;前一部分为页号&#xff1b;后一部分为页…

人工智能 信道估计 深度学习_DEMO演示|基于IVP02D 人工智能工作站的深度学习引擎,实现人群热力估计...

近年来&#xff0c;随着深度学习在计算机视觉领域获得广泛应用&#xff0c;算法框架也日渐成熟&#xff0c;例如基于深度神经网络的人群密度分析&#xff0c;通过自动学习能获得更有效的人群特征&#xff0c;相较于传统方法取得了一定的提高。AI小知识人群密度分析&#xff08;…

vscode kite插件_微软发布 VS Code Python 插件 7 月更新

微软发布了 7 月的 Visual Studio Code Python 扩展更新&#xff0c;此版本总共修复了 51 个问题&#xff0c;其中包括&#xff1a;支持新的语言服务器&#xff1a;PylanceGather 扩展将 Notebook 导出为 HTML 和 PDF调试器的反向连接支持新的语言服务器&#xff1a;PylancePyl…

360浏览器打不开微信的连接服务器,上午还能打开,下午360浏览器打不开微信公 – 手机爱问...

2011-08-27ie&#xff0c;搜狗&#xff0c;谷歌浏览器都打不开&#xff0c;说打不开ipad说服务器超时是新浪在更新设备吗&#xff1f;一般你能进入爱问就可以进入邮箱&#xff0c;下面的方法看看(如果你是铁通的可能是铁通的问题)。可能是服务器故障引起的&#xff0c;请不要着…

域名还能绑定动态IP?看完又涨知识了!!

点击上方蓝色“冰河技术”&#xff0c;关注并选择“设为星标”持之以恒&#xff0c;贵在坚持&#xff0c;每天进步一点点&#xff01;作者个人研发的在高并发场景下&#xff0c;提供的简单、稳定、可扩展的延迟消息队列框架&#xff0c;具有精准的定时任务和延迟队列处理功能。…

java 及时释放内存_JMM(一):初识Java内存模型

在并发编程中&#xff0c;线程之间的通信是一个很关键的问题&#xff0c;而该问题解决方案主要可分为两大类&#xff1a;消息传递、共享内存。前者有以Erlang语言为代表的Actor模型&#xff0c;而后者中典型的则是Java语言。对于消息传递机制而言&#xff0c;线程之间必须通过发…

电脑维修知识:电脑常见故障维修大全及解决方法

电脑已经成为我们学习生活娱乐必不可少的设备了&#xff0c;用得时间久了难免会遇到小故障&#xff0c;今天我们一起来看下遇到常见的电脑方面的小故障&#xff0c;我们应该如何去自己检测和维修吧。电脑检测故障我们还是要从电脑的几大硬件开始检查起。1、CPU打开机箱查看CPU风…

工程图样中粗实线的用途_图纸天天画,粗实线和细实线的线宽比例是多少?2:1还是3:1?...

点击上方头条号“机械设计一点通”关注我们&#xff0c;每天学习一个机械设计相关知识点我们知道&#xff1a;机械制图中为了表示不同内容&#xff0c;并能分清主次&#xff0c;必须使用不同线型。图线的线型由线宽和线素长度等构成&#xff0c;机械制图中各种线型都有相应宽度…

STM32F4_USART配置及细节描述

Ⅰ、概述 关于USART串口通信&#xff0c;可以说是MCU的标配。不管是在实际项目应用中&#xff0c;还是在开发过程中&#xff0c;它都起着很重要的作用。 在项目应用中我们常常使用UART串口进行通信&#xff0c;根据通信的距离及稳定性&#xff0c;还选择添加RS232、RS485等对UA…

腾讯面试:SaaS多租户,如何设计?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业网易、美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 多租户设计&#xff0c;如何 技术选型&#xff…

Mac中Finder是什么?怎么打开?

很多人都知道windows系统中的资源管理器&#xff0c;不过不知道什么是finder。finder和资源管理器一样&#xff0c;都是用来管理文件&#xff0c;finder存在于mac统中&#xff0c;那么finder有什么作用呢?下面下班就为大家分享关于mac系统中finder的相关内容。   1、怎么打开…

phpstudy页面不存在_网站的404页面对于SEO的重要作用

随着网站建设的需求和要求越来越多&#xff0c;网站的新形式也逐渐成为人们改版的方向&#xff0c;但是在网站的改版中难免会出现一些小差错&#xff0c;导致网站的运行不顺畅&#xff0c;这很有可能就是网站建设中忘记设计404页面&#xff0c;那么4040页面能给网站带来哪些好处…

计算机系统基础:虚拟存储管理知识笔记

1、虚拟存储管理概念 一个计算机任务只需要部分装入主存便可以启动运行&#xff0c;其余部分留在磁盘上&#xff0c;在需要的时候装入主存&#xff0c;这样可以提高主存空间的利用率。这样该系统所具有的主存容量会比实际主存容量大很多&#xff0c;这样的存储器称为虚拟存储器…

git推送指令配置_git 常用命令

git 简介在实际开发中&#xff0c;会使用git作为版本控制工具来完成团队协作。因此&#xff0c;对基本的git操作指令进行总结是十分有必要的&#xff0c;本文对一些术语或者理论基础&#xff0c;不重新码字&#xff0c;可以参考廖雪峰老师的博文&#xff0c;本文只对命令做归纳…