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

news2025/5/9 17:12:33

文章目录

  • 大纲
  • 一.处理机调度概念与层次
    • 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


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

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

相关文章

Quipus,LightRag的Go版本的实现

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

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

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

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

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

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

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

详解与HTTP服务器相关操作

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

Moldflow模流分析教程

Moldflow模流分析教程:

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

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

单片机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…

阿里云集群开启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 不同集…

Unity之如何实现RenderStreaming视频推流

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

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

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

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

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

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

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

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) 来生成最优前缀编码,使得高频字符用短编码,低频字符用长编码,从而实现高效…

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

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

C++游戏服务器开发之⑦redis的使用

目录 1.当前进度 2.守护进程 3.进程监控 4.玩家姓名添加文件 5.文件删除玩家姓名 6.redis安装 7.redis存取命令 8.redis链表存取 9.redis程序结构 10.hiredisAPI使用 11.基于redis查找玩家姓名 12.MAKEFILE编写 13.游戏业务实现总结 1.当前进度 2.守护进程 3.进程监…