【操作系统复习】第3章 处理机调度与死锁 3

死锁(Deadlock):指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,这些进程都将永远不能再向前推进。

对资源不加限制地分配可能导致进程间由于竞争资源而相互制约以至于无法继续运行的局面,人们把这种局面称为死锁 (deadlock)。

可重用性资源和可消耗性资源

可重用性资源:一次只能分配给一个进程,不允许多个进程共享,遵循:

请求资源 - 使用资源 - 释放资源 (大部分资源)。

可消耗性资源:由进程动态创建和消耗 (进程间通信的消息)。

可抢占性和不可抢占性资源

可抢占性资源:某进程在获得这类资源后,该资源可以再被其他进程或系统抢占,CPU(处理机)和主存区。

不可抢占资源:当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,打印机、磁带机。

竞争不可抢占性资源引起死锁

系统中的不可抢占性资源,由于它们的数量不能满足诸进程运行的需要,会使进程在运行过程中,因争夺这些资源而陷入僵局

竞争可消耗性资源引起死锁

临时性资源,是指由一个进程产生,被另一个进程使用一短暂时间后便无用的资源,故也称之为消耗性资源,它也可能引起死锁

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

进程推进顺序合法

进程推进顺序非法

死锁:一组等待的进程,其中每一个进程都持有资源,并且等待着由这个组中其他进程所持有的资源

 

资源分配图组成

 

无死锁的资源分配图

 

有死锁的资源分配图

 

如果图没有环,那么不会有死锁

如果图有环,那么:

如果每一种资源类型只有一个实例,那么死锁发生;

如果一种资源类型有多个实例,那么可能死锁

在资源分配图中,找出一个既不阻塞又非独立的进程结点pi

p1释放资源后,便可使p2获得资源而继续运行,直到p2完成后又释放出它所占有的全部资源;

在进行一系列的简化后,若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;若不能通过任何过程使该图完全简化,则称该图是不可完全简化的

 

预防死锁

破坏死锁的四个必要条件中的一个或几个

互斥:互斥条件是共享资源必须的,不仅不能改变,还应加以保证

请求和保持:必须保证进程申请资源的时候没有占有其他资源

要求进程在执行前一次性申请全部的资源,只有没有占有资源时才可以分配资源

资源利用率低,可能出现饥饿

非抢占:

如果一个进程的申请没有实现,它要释放所有占有的资源;

先占的资源放入进程等待资源列表中;

进程在重新得到旧的资源的时候可以重新开始。

循环等待:对所有的资源类型排序进行线性排序,并赋予不同的序号,要求进程按照递增顺序申请资源。

如何规定每种资源的序号是十分重要的;

限制新类型设备的增加;

作业使用资源的顺序与系统规定的顺序不同;

限制用户简单、自主的编程。

当进程申请一个有效的资源的时候,系统必须确定分配后是安全的。

如果存在一个安全序列,则系统处于安全态。

进程序列<P1, P2, …, Pn>是安全的,如果每一个进程Pi所申请的可以被满足的资源数加上其他进程所持有的该资源数小于系统总数。

银行家算法

 

银行家算法的数据结构

n为进程的数目,m为资源类型的数目

Available: 长度为 m的向量。 如果available[j]=k,那么资源Rjk个实例有效

Max: n x m 矩阵。 如果Max[i,j]=k,那么进程Pi可以最多请求资源Rjk个实例

Allocation: n x m 矩阵。 如果Allocation[i,j]=k,那么进程Pj当前分配k个资源Rj的实例

Need: n x m 矩阵。如果Need[i,j]=k,那么进程Pj还需要k个资源Rj的实例

Need [i,j] = Max[i,j] – Allocation [i,j]

常用解除死锁的两种方法:

抢占资源。从一个或多个进程中抢占足够数量的资源给死锁进程,以解除死锁状态

终止或撤消进程。终止系统中一个或多个死锁进程,直到打破循环环路,使死锁状态消除为止。

终止所有死锁进程(最简单方法)

逐个终止进程(稍温和方法)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE学习总结(十三)Set集合HashSet集合LinkedHashSet集合TreeSet集合比较器的使用利用Set集合实现去重

JavaSE学习总结&#xff08;十三&#xff09;Set集合/HashSet集合/LinkedHashSet集合/TreeSet集合/比较器的使用/利用Set集合实现去重 一、Set集合 Set集合是Collection集合的一个子接口&#xff0c;实际上Set就是Collection&#xff0c;只是行为略有不同&#xff1a; Set集…

VUE3项目实现动态路由demo

文章目录1、创建vue项目2、安装常用的依赖2.1 安装elementUI2.2 安装axios2.3 安装router2.4 安装vuex2.5 安装store2.6 安装mockjs3、编写登录页面以及逻辑4、编写首页以及逻辑5、配置router.js6、配置store.js7、配置menuUtils.js&#xff08;动态路由重点&#xff09;8、配置…

树的前序遍历与中序遍历构造二叉树和树的中序遍历与后序遍历构造二叉树

目录 一.树的前序遍历与中序遍历构造二叉树 1.题目描述 2.问题分析 3.代码实现 二.树的中序遍历与后序遍历构造二叉树 1.题目描述 2.问题分析 3.代码实现 三.问题思考 一.树的前序遍历与中序遍历构造二叉树 1.题目描述 给定两个整数数组 preorder 和 inorder &#xf…

【机器学习】Logistic回归---学习笔记

Logistic回归学习笔记Logistic回归学习线路预备知识&#xff1a;建议先去B站学习一下信息量&#xff0c;熵&#xff0c;BL散度&#xff0c;交叉熵的概念。Logistic回归的函数模型损失最小化架构分类函数最大概率分类函数阈值分类函数Logistic回归的优化算法梯度下降随机梯度下降…

4.5--计算机网络之基础篇--2.网址到网页解析--(复习+深入)---好好沉淀,加油呀

1.浏览器做的第一步工作是解析 URL 对 URL 进行解析&#xff0c;从而生成发送给 Web 服务器的请求信息 URL? URL 实际上是请求服务器里的文件资源 当没有路径名时&#xff0c;就代表访问根目录下事先设置的默认文件&#xff0c;也就是 /index.html 或者 /default.html 这些文件…

计算机网络复习笔记(三)物理层

文章目录一物理层的基本概念四大特性&#xff1a;两种信号&#xff1a;调制和编码传输介质三大部分二物理层的基本通信技术四种信道复用技术数据的传输方式三OSI模型一物理层的基本概念 四大特性&#xff1a; 机械特性 接口是怎么样的 电气特性 用多少伏的电 功能特性 线路上…

linux基础之计算机基础

一、计算机基础 &#xff08;1) 计算机发展&#xff1a;电子管、晶体管、集成电路、大规模集成电路 &#xff08;2) 冯诺依曼体系&#xff1a;用二进制表示数据和指令&#xff1b; 存储程序控制&#xff0c;程序和数据预先存入存储器&#xff1b; 计算机系统5大部分&#xf…

Python 高级编程(文件操作)

文件&#xff1a;存储在某种长期存储设备上的数据&#xff01;&#xff01;包括&#xff08;硬板 u 盘 移动硬盘 光盘&#xff09; 计算机中临时的数据&#xff1a; 存储在内存中&#xff0c;一旦操作结束&#xff0c;内存中的空间就会被释放 文件&#xff08;特指普通文本&am…

R语言 4.2.2安装包下载及安装教程

[软件名称]:R语言 4.2.2 [软件大小]: 75.6 MB [安装环境]: Win11/Win10/Win7 [软件安装包下载]: https://pan.quark.cn/s/b6f604930d04 R语言软件的GUI界面比较的简陋,只有一个命令行窗口,且每次创建图片都会跳出一个新的窗口,比较的繁琐,我们可以安装RStudio,来更方便的操作R(…

ChatGPT +工业机器人/自动驾驶控制器的一些尝试

ChatGPT 的功能目前已扩展到机器人领域&#xff0c;可以用语言直观控制如机械臂、无人机、家庭辅助机器人等的多个平台。这会改变人机交互的未来形式吗&#xff1f; 你可曾想过用自己的话告诉机器人该做什么&#xff0c;就像对人说话那样&#xff1f; 比如说&#xff0c;只要告…

多个硬盘挂载到同一个目录

同一目录无法重复挂载&#xff0c;后挂载的会覆盖之前挂载的磁盘。但是现在需要将4块磁盘并行挂载&#xff0c;该如何操作呢&#xff1f; 将2块磁盘合并到一个逻辑卷 进行挂载。 基本知识 基本概念PV(Physical Volume)- 物理卷物理卷在逻辑卷管理中处于最底层&#xff0c;它可…

新能源锂电池行业除杂工艺介绍

近年来新能源汽车快速发展对锂电池的需求引发了人们对锂资源的高度关注。由于锂需求不断上升&#xff0c;全球锂资源越来越紧缺&#xff0c;而在生产含锂产品中会有大量废水、废渣。这些废水废渣含有丰富的锂&#xff0c;对其进行回收提锂具有极高的经济利益。在氟化锂生产中会…

文件操作介绍及C语言实现通讯录管理系统3.0最终版(文件操作版本)

文章目录1. 前言2. 文件操作2.1 什么是文件2.2 文件缓冲区2.3 文件指针2.4 文件的打开与关闭2.5 文件的顺序读写3. 优化通讯录3.1 保存通讯录3.2 加载通讯录4. 结尾1. 前言 上一篇文章我们学习了动态内存开辟的相关知识点&#xff0c;并用动态内存函数优化了我们的通讯录&…

【数据库连接,线程,ThreadLocal三者之间的关系】

一、数据库连接与线程的关系 在实际项目中&#xff0c;数据库连接是很宝贵的资源&#xff0c;以MySQL为例&#xff0c;一台MySQL服务器最大连接数默认是100, 最大可以达到16384。但现实中最多是到200&#xff0c;再多MySQL服务器就承受不住了。因为mysql连接用的是tcp协议&…

JAVA:常用API

一.什么是API&#xff1f; API&#xff08;Application Programming Interface&#xff09;&#xff1a;应用程序编程接口。 简单的来说&#xff1a;就是Java帮我们已经写好的方法&#xff0c;我们可以直接使用。 二.有哪些常用的API&#xff1f; Object、Objects、StringB…

二战华为成功上岸,准备了小半年,要个27k应该也算不上很高吧~

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;华为的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

二,八,十,十六进制等常用进制详解

总目录 文章目录总目录一、常用进制1、进制基本信息2、各进制的表示形式二、进制转换原理1、其他进制转为十进制计算原理2、十进制转为其他进制计算原理3、二进制&#xff0c;八进制&#xff0c;十六进制之间的转换结语一、常用进制 1、进制基本信息 基数数码名称描述20 和 1…

【C++】| C/C++内存管理

前言&#xff1a; 在上期&#xff0c;我们已经对类和对象的全部知识进行了总结和梳理。在类和对象学习完之后&#xff0c;今天我将给大家呈现的是关于——C/C内存管理的基本知识。 本文目录 1. C/C内存分布 2. C语言中动态内存管理方式 &#xff08;1&#xff09;C语言跟内…

php科研项目申报审批系统

目 录 1 绪论 4 1.1 开发背景 4 1.2 开发意义 4 1.3 相关知识介绍 4 1.3.1 Apache 4 1.3.2 MySQL 5 1.3.3 PHP 6 1.3.4 Dreamweaver CS3 7 1.4 本文所做的工作及组织结构 7 2 系统分析 7 2.1 需求分析 7 2.2 可行性分析 7 2.3 系统界面…

CSDN博客专家证书发放名单(2023年3月已更新)

目录 证书发放频次 6月&#xff08;第一批&#xff09;证书发放名单&#xff08;80位&#xff09; 7月&#xff08;第二批&#xff09;证书发放名单&#xff08;50位&#xff09; 8月&#xff08;第三批&#xff09;证书发放名单&#xff08;54位&#xff09; 9月&#xf…