当前位置: 首页 > article >正文

【操作系统原理03】处理机调度与死锁

文章目录

  • 大纲
  • 一.处理机调度概念与层次
    • 0.大纲
    • 1.基本概念
    • 2.三个层次
    • 3.七状态模型
    • 4.三层调度都对比与联系
  • 二.进程调度的时机,切换与过程的调度方式
    • 0.大纲
    • 1.进程调度时机
    • 2.调度方式
    • 3.进程的切换与过程
  • 三.调度器和闲逛资源
    • 1.调度器/调度程序
    • 2.闲逛进程
  • 四.调度算法的评价指标
    • 0.调度算法的评价指标
    • 1.CPU利用率
    • 2.系统吞吐量
    • 3.周转时间
    • 4.等待时间
    • 5.响应时间
  • 五.调度算法1
    • 0.大纲
    • 1.先来先服务
    • 2.短作业优先
    • 3.高响应度优先算法
    • 4.总结
  • 六.调度算法2
    • 0.大纲
    • 1.时间片轮转调度算法(RR)
    • 2.优先级调度算法
    • 3.多级反馈队列调度算法
    • 4.总结
  • 柒.多级队列调度算法
  • 八.死锁
    • 0.大纲
    • 1.概念
    • 2.死锁、饥饿、死循环的区别
    • 3.四大必要条件
    • 4.何时发生死锁
    • 5.死锁处理策略
  • 九.死锁处理策略
    • 1.预防死锁
      • 1.0 大纲
      • 1.1 破坏互斥条件
      • 1.2 破坏不剥夺条件
      • 1.3 破坏请求和保持条件
      • 1.4 破坏循环等待条件
    • 2.避免死锁
      • 2.0 大纲
      • 2.1 安全序列
      • 2.2 银行家算法
    • 3.死锁的检测与解除
      • 3.0 大纲
      • 3.1 死锁的检测
      • 3.2 死锁检测算法
      • 3.3 死锁解除

大纲

image-20250404152431804


一.处理机调度概念与层次

0.大纲

image-20250406213448855


1.基本概念

image-20250406213603353

2.三个层次

(1)高级调度/作业调度

image-20250406213818537

(2)低级调度/处理机调度

image-20250406213928099

(3)中级调度/内存调度

image-20250406214049750

3.七状态模型

image-20250406214228188

4.三层调度都对比与联系

image-20250406214428062


二.进程调度的时机,切换与过程的调度方式

0.大纲

image-20250406214610221

1.进程调度时机

image-20250406215342654

image-20250406215155905

image-20250406215209118

image-20250406215250418

image-20250406215317707

2.调度方式

image-20250406215502140

3.进程的切换与过程

image-20250406215652213


三.调度器和闲逛资源

1.调度器/调度程序

image-20250406220057116

image-20250406220137522

这时内核线程成为调度的基本单位,进程成为资源分配的基本单位

2.闲逛进程

image-20250406220236271


四.调度算法的评价指标

0.调度算法的评价指标

image-20250406222452230

1.CPU利用率

image-20250406222643581

2.系统吞吐量

image-20250406222718006

3.周转时间

image-20250406222944618

image-20250406223143941

4.等待时间

image-20250406223241358

5.响应时间

image-20250406223332884


五.调度算法1

0.大纲

image-20250406223539232

1.先来先服务

image-20250406224046743

image-20250406223917333


2.短作业优先

image-20250406224935089

image-20250406224307210

image-20250406224556883

image-20250406224620490

注意

image-20250406224836128

image-20250406225028281


3.高响应度优先算法

image-20250406225414624

image-20250406225332560


4.总结

image-20250406225429696


六.调度算法2

0.大纲

image-20250406225607414

1.时间片轮转调度算法(RR)

image-20250406231130380

时间片为2时

image-20250406230321903

image-20250406230439372

image-20250406230511595

时间片为5时

image-20250406230807454

时间片影响

image-20250406230941363

image-20250406231044476

image-20250406231105242


2.优先级调度算法

image-20250406231840423

image-20250406231351735

image-20250406231546071

补充

image-20250406231814177

思考

image-20250406231906522


3.多级反馈队列调度算法

image-20250406232448235

image-20250406232326113


4.总结

image-20250406232555290


柒.多级队列调度算法

image-20250406233024751


八.死锁

0.大纲

image-20250412162400801

1.概念

image-20250412163045523

image-20250412163225502

死锁就是在并发环境下,各进程因竞争资源而造成的一种互相等待对方手中的资源,导致各进程都阻塞,都无法向前推进的现象,就是死锁。发生死锁后若无外力干涉,这些进程都将无法向前推进。


2.死锁、饥饿、死循环的区别

image-20250412163733884


3.四大必要条件

产生死锁必须同时满足以下四个条件,只要其中任意条件不成立,死锁就不会发生

  1. 互斥条件

    只有对必须互斥使用的资源的争抢才会导致死锁(如哲学家的筷子、打印机设备)像内存、扬声器这样可以同时让多个进程使用的资源是不会导致死锁的(因为进程不用阻塞等待这种资源)

  2. 不剥夺条件

    进程所获得的组员在未使用完之前,不能由其他进程强行夺走,只能主动释放

  3. 请求和保持条件

    进程已经保持了至少一个资源,但是又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放

  4. 循环等待条件

    存在一种进程资源的循环等待链,链中的每一个进程已获得的资源同时被下一个进程锁请求

    image-20250412164646790

注意:发生死锁时一定有循环等待,但循环等待未必死锁

image-20250412164752652

image-20250412164805861


4.何时发生死锁

image-20250412164911652


5.死锁处理策略

image-20250412164938449


九.死锁处理策略

1.预防死锁

1.0 大纲

image-20250412165103437

1.1 破坏互斥条件

image-20250412165314972

1.2 破坏不剥夺条件

image-20250412165458587

1.3 破坏请求和保持条件

image-20250412165801552

1.4 破坏循环等待条件

image-20250412170052825


2.避免死锁

2.0 大纲

image-20250412171034852


2.1 安全序列

image-20250412171154444

image-20250412171247858

image-20250412171327787

image-20250412171433285

2.2 银行家算法

image-20250412171632206

image-20250412171731827

image-20250412171805359

image-20250412171839919

image-20250412171911989


image-20250412172150453

image-20250412172217338

image-20250412172243520

image-20250412172341447


3.死锁的检测与解除

3.0 大纲

image-20250412172505214

image-20250412175957288


3.1 死锁的检测

image-20250412180202568

image-20250412180501594

3.2 死锁检测算法

image-20250412180631064

3.3 死锁解除

image-20250412180815999


相关文章:

【操作系统原理03】处理机调度与死锁

文章目录 大纲一.处理机调度概念与层次0.大纲1.基本概念2.三个层次3.七状态模型4.三层调度都对比与联系 二.进程调度的时机,切换与过程的调度方式0.大纲1.进程调度时机2.调度方式3.进程的切换与过程 三.调度器和闲逛资源1.调度器/调度程序2.闲逛进程 四.调度算法的评…...

Quipus,LightRag的Go版本的实现

1 项目简介 奇谱系统当前版本以知识库为核心,基于知识库可以快构建自己的问答系统。知识库的Rag模块的构建算法是参考了LightRag的算法流程的Go版本优化实现,它可以帮助你快速、准确地构建自己的知识库,搭建属于自己的AI智能助手。与当前LLM…...

使用 Vite 快速搭建现代化 React 开发环境

1.检查环境 说明:检测环境,node版本为18.20.6。 2.创建命令 说明:创建命令,选择对应的选项。 npm create vitelatest 3.安装依赖 说明:安装相关依赖。 npm i...

关于UE5的抗锯齿和TAA

关于闪烁和不稳定现象的详细解释 当您关闭抗锯齿技术时,场景中会出现严重的闪烁和不稳定现象,尤其在有细节纹理和小物体的场景中。这种现象的技术原因如下: 像素采样问题 在3D渲染中,每个像素只能表示一个颜色值,但…...

PG数据库推进医疗AI向量搜索优化路径研究(2025年3月修订版)

PG数据库推进医疗AI向量搜索优化路径研究 一、医疗 AI 向量搜索的发展现状与挑战 1.1 医疗数据特征与检索需求 医疗数据作为推动医疗领域进步与创新的关键要素,具有鲜明且复杂的特征。从多模态角度看,医疗数据涵盖了结构化数据,如患者基本信息、检验检查报告中的数值结果;…...

可穿戴经颅多通道直流电刺激产品测试总结

一 概念原理 tDCS 是一种非侵入性的神经调节技术,利用恒定、低强度直流电(通常为 0 - 2mA)通过电极作用于特定的大脑区域。其工作原理是通过调节神经元的膜电位,来增加或降低神经元兴奋性的特定区域,从而改变大脑运作。…...

什么是 Stream

Stream 是对集合对象功能的增强,它不是集合,也不存储数据,而是从集合中抽象出一条数据通道,让你可以用链式方式一步步处理数据。 🔧 常见操作分类 类型方法举例创建stream(), Stream.of(), Arrays.stream()中间操作fi…...

详解与HTTP服务器相关操作

HTTP 服务器是一种遵循超文本传输协议(HTTP)的服务器,用于在网络上传输和处理网页及其他相关资源。以下是关于它的详细介绍: 工作原理 HTTP 服务器监听指定端口(通常是 80 端口用于 HTTP,443 端口用于 HT…...

-XX:+HeapDumpOnOutOfMemoryError 会打印哪些oom错误

-XX:HeapDumpOnOutOfMemoryError 参数会在 JVM 发生以下 ‌OutOfMemoryError(OOM)‌ 错误时自动生成堆转储文件(Heap Dump),便于后续分析内存溢出原因: 一、触发转储的 OOM 错误类型 Java 堆溢出&#xf…...

Moldflow模流分析教程

Moldflow模流分析教程:...

计算机网络 3-4 数据链路层(局域网)

4.1 局域网LAN 特点 1.覆盖较小的地理范围 2.较低的时延和误码率 3.局域网内的各节点之间 4.支持单播、广播、多播 分类 关注三要素 (出题点) ①拓扑结构 ②传输介质 ③介质访问控制方式 硬件架构 4.2 以太网 4.2.1 层次划分 4.2.2 物理层标准…...

加密与解密完全指南,使用Java实现

文章目录 1. 加密基础知识1.1 什么是加密?1.2 加密的历史简介1.2.1 古典加密1.2.2 现代加密的起源1.3 加密的基本概念1.3.1 密码学中的关键术语1.3.2 加密的基本原则1.4 加密的分类1.4.1 对称加密(Symmetric Encryption)1.4.2 非对称加密(Asymmetric Encryption)1.4.3 哈希…...

单片机AIN0、AIN1引脚功能

目录 1. 模拟-数字转换器(ADC) 2. 交流电源(AC) 总结 这两部分有什么区别? 在这个电路图中,两个部分分别是模拟-数字转换器(ADC)和交流电源(AC)。以下是这…...

如何增加 Elasticsearch 中的 primary shard 数量

作者:来自 Elastic Kofi Bartlett 探索增加 Elasticsearch 中 primary shard 数量的方法。 更多阅读: Elasticsearch:Split index API - 把一个大的索引分拆成更多分片 Elasticsearch:通过 shrink API 减少 shard 数量来缩小 El…...

Java 并发性能优化:线程池的最佳实践

Java 并发性能优化:线程池的最佳实践 在 Java 并发编程的世界里,线程池堪称提高应用性能与稳定性的神器。恰如其分地运用线程池,能让我们在多线程任务调度时游刃有余,既能避免线程频繁创建销毁带来的开销,又能合理管控…...

【综述】一文读懂卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。本文旨在介绍CN…...

Python爬虫实战:获取网易新闻数据

一、引言 随着互联网的飞速发展,网络上蕴含着海量的信息资源。新闻数据作为其中的重要组成部分,对于舆情分析、市场研究、信息传播等多个领域具有重要价值。网易新闻作为国内知名的新闻平台,拥有丰富多样的新闻内容。使用 Python 的 Scrapy 框架进行网易新闻数据的爬取,可…...

YOLO学习笔记 | 基于COCO Stuff数据集与YOLOv11的多类别物体检测与分割

基于COCO Stuff数据集与YOLOv11的多类别物体检测与分割技术解析 一、技术背景与YOLOv11核心改进 YOLOv11是Ultralytics推出的新一代目标检测与分割模型,在YOLOv8的基础上进一步优化了架构设计与训练流程。其核心改进包括: 自适应特征增强(AFE)模块:通过空间上下文模块(…...

ICS丨Chapter 1 Introduction to Computer System

Chapter 1 Introduction to Computer System Courses About Systems: DBMSDistributed SystemsCompilersArchitectureOperating Systemse.t.c. 1. Brief Introduction 1.1. What’s about CSAPP?1.2. Power of Abstraction1.3. Importance of understanding HOW things wor…...

阿里云集群开启debug

1、安装 kubectl Macos brew install kubectl Windows: https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/ 下载后,放到任意目录 2、配置连接信息 mac 将以下内容复制到计算机 $HOME/.kube/config 文件下: windows 不同集…...

Flink Hive Catalog最佳实践

Flink Hive Catalog 最佳实践 一、配置与初始化 依赖管理 Hive Connector 版本对齐:需确保 flink-sql-connector-hive 版本与 Hive 版本严格匹配(如 Hive 3.1.3 对应 flink-sql-connector-hive-3.1.3_2.12),同时添加 Hadoop 遮蔽…...

Unity之如何实现RenderStreaming视频推流

文章目录 前言引入 UnityRenderStreaming 的好处教程步骤 1:设置环境步骤 2: 创建项目步骤 3:安装软件包步骤 5:下载示例步骤 6:检查配置环境步骤 7:打开推流场景步骤 8: 准备用于流式传输的WebServer应用程序步骤 9: 运行 示例场景步骤 10:检查视频是否在浏览器中显示…...

【java实现+4种变体完整例子】排序算法中【桶排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格

以下是桶排序的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格: 一、桶排序基础实现 原理 将数据分到有限数量的桶中,每个桶内部使用其他排序算法(如插入排序或快速排序)&#xf…...

计算机三级:信息安全基础技术与原理(2.1密码技术简单梳理)

以下是密码学发展历程的表格归纳: ​发展阶段​时间范围​关键节点与标志性技术​技术突破与核心贡献​古典密码时期古代至19世纪• 公元前17世纪 克里特岛Phaistos圆盘(未知符号加密) • 中国西周“阴符”、北宋五言诗密码 • 1466年 艾伯蒂多表代替密码 • 1883年 克尔克霍…...

基于CNN与VGG16的图像识别快速实现指南

基于CNN与VGG16的图像识别快速实现指南 以下是从零实现代码到原理剖析的完整流程,包含TensorFlow/Keras框架的代码示例与关键优化技巧,满足快速实验需求。 一、核心原理对比 特性CNN(基础模型)VGG16结构深度5-10层(如…...

【内置函数】84个Python内置函数全整理

Python 内置函数全集(完整分类 参数详解 示例) 文章目录 Python 内置函数全集(完整分类 参数详解 示例)一、数值与数学函数abs(x)divmod(a, b)pow(x, y, modNone)round(number[, ndigits])sum(iterable, /, start0)hash(obj) …...

【每天一个知识点】模式识别

“模式识别”是一种从数据中识别出规律、结构或趋势的技术,它广泛应用于人工智能、机器学习、图像处理、语音识别、自然语言处理等领域。简单来说,就是让计算机学会“看出”数据中的规律,比如: 从图像中识别人脸(人脸识…...

Codeforces Educational Round 177 Div. 2 【B题,C待补

B 二分 题意 样例 5 3 10 3 4 2 1 512 找最右边的L下标即可 思路 二分最靠右的L端点,R端点取最右端(n*k处),找到后,答案就是L的位置(pos),(因为如果pos满足,则pos左边的所有下标都满足 代码 const in…...

哈夫曼编码和哈夫曼树

哈夫曼编码(Huffman Coding) 是一种基于字符出现频率的无损数据压缩算法,通过构建哈夫曼树(Huffman Tree) 来生成最优前缀编码,使得高频字符用短编码,低频字符用长编码,从而实现高效…...

中西面点实训室虚拟仿真操作平台

在餐饮行业蓬勃发展的当下,中西面点作为其中极具特色与市场需求的重要分支,对于专业人才的渴望愈发强烈。一个功能完备、设施先进的中西面点实训室,已然成为培养高素质面点专业人才的关键阵地。凯禾瑞华——实训室建设 一、中西面点实训室建设…...