首页 > 编程语言 >系统架构设计师考试知识点整理-4:死锁问题、银行家算法、管程与线程

系统架构设计师考试知识点整理-4:死锁问题、银行家算法、管程与线程

时间:2023-03-12 10:32:19浏览次数:48  
标签:知识点 管程 系统 算法 死锁 进程 资源


死锁问题

1.死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源所造成的循环等待的现象。

2.死锁产生的根本原因在于系统提供的资源少于并发进程所要求的该类资源数。

3.死锁产生的必要条件

(1)互斥条件:即一个资源每次只能被一个进程使用。

(2)保持与等待条件:有一个进程已经获得了一些资源,但因请求其他资源被阻塞时,对已经获得的资源保持不放。

(3)不可抢占条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后 ,系统不能强行收回,只能由进程使用完自己释放。

(4)循环等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。

 

银行家算法

1.银行家算法是指在分配资源之前先看清楚资源分配后是否会导致系统死锁,如果会死锁,则不分配,否则就分配。

2.按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:

(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。

(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。

(3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有效的时间里得到资源。

(4)当系统中现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。

解决死锁的策略

1.死锁预防:破坏导致死锁必要条件中的任意一个就可以预防死锁。例如,要求用户申请资源时一次性申请所有的资源,这就破坏了保持和等待条件。预防通常会降低系统的效率。

2.死锁避免:避免是指进程在每次申请资源时判断这些操作是否安全,例如:使用银行家算法。死锁避免算法的执行会增加系统的开销。

3.死锁检测:死锁预防和避免都是事前措施,而死锁的检测则是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。

4.死锁解除:这是与死锁检测结合使用的,它使用的方式就是剥夺。即将,某进程所拥有的资源强行收回,分配给其他的进程。

 

管程与进程

1.管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程、对变量赋初值的语句等4个基本部分组成。

2.每一个管程管理一个临界资源,当有几个进程调用某管程时,仅允许一个进程进入管程,其他调用者必须等待,也就是申请进程必须互斥地进入管程。

3.线程是进程的活动部分,是处理器分配资源的最小单位,它可以共享进程的资源与地址空间。

 

 

标签:知识点,管程,系统,算法,死锁,进程,资源
From: https://blog.51cto.com/BADAOLIUMANGQZ/6115514

相关文章

  • 避免死锁(银行家算法)
    避免死锁(银行家算法)1、什么是安全序列2、安全序列、不安全状态、死锁的联系3、银行家算法实现思想知识回顾......
  • 一次死锁经历
    加入CountDownLatch后死锁了描述:打开某个界面后,就会A类的start方法,show方法中调用了B类的get方法,并用synchronized包裹,而在B类方法中使用了线程池来调用A类的showData方法......
  • java面向对象知识点
    thisthis(id,name);//调用另一个方法只能放在第一行thisid=id;thisname=name;publicStudent(intid,Stringname,chargender){this.id=id;......
  • Redis相关知识点整理
    1、redis基础数据结构有哪些?字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(sortedset) 2、redis持久化rdb:rdb核心规则配置save<指定时间><执行指定次数更新......
  • MySQL相关知识点整理
    1、关系型数据库与非关系型数据的区别?分类关系型数据库非关系型数据库概念关系型数据库(SQL)是由二维表及其之间的联系所组成的一个数据组织,最典型的数据结构是表,......
  • Linux知识点
    Linux知识点(*)代表扩展,了解即可(#)代表重点,考点密集一、网络操作系统*WindowsXP不会在网络上提供服务二、Linux内核版本号###三、服务器操作系统*......
  • JDK 7 HashMap 并发情况下的死锁问题
    链表的头插法,了解一下这个博客目录问题描述详细解释问题描述JDK7的HashMap解决冲突用的是链表,在插入链表的时候用的是头插法,每次在链表的头部插入新元素。res......
  • (数据库系统概论|王珊)第十一章并发控制-第二、三、四节:封锁、封锁协议活锁和死锁
    pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解目录一:封锁(1)概念(2)类型(3)控制方式二:封锁协议(1)概念(2......
  • LabVIEW|知识点:值属性节点、局部变量、数据连线三种方式的传递效率
    这是类似的线程切换导致效率低下的问题,出现在调用动态链接库的情况下,也出现在使用属性节点和方法节点时。比如,设置一个控件的值有三种常用方法。对于显示控件而言,可以直接通......
  • LabVIEW|知识点:设计模式
    1、简单设计模式设计:需求-----方案架构1)简单VI模式:通常无需用户执行指定启示或停止工作。2、状态机1)表示状态的量(枚举/字符串)2)条件结构3)移位寄存器标准设计:1、使用......