吐血整理!操作系统【处理机调度】

2024-02-16 12:04

本文主要是介绍吐血整理!操作系统【处理机调度】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在这里插入图片描述

🌈个人主页:godspeed_lucip
🔥 系列专栏:OS从基础到进阶


  • 1 基本概念
    • 1.1 总览
    • 1.2 什么是调度
      • 1.2.1 调度
      • 1.2.2 处理机调度
    • 1.3 调度的三个层次
      • 1.3.1 高级调度
      • 1.3.2 中级调度(内存调度)
      • 1.3.3 低级调度(进程调度)
    • 1.4 七状态模型
    • 1.5 三层调度的联系与对比
    • 1.6 总结
  • 2 方式与过程
    • 2.1 总览
    • 2.2 进程调度的时机
      • 2.2.1 需要进行调度的情况
      • 2.2.2 不能进行调度的情况
    • 2.3 临界区
      • 2.3.1 临界资源
      • 2.3.2 临界区
      • 2.3.3 分类
    • 2.4 进程调度的方式
      • 2.4.1 分类
      • 2.4.2 方式
    • 2.5 总结
  • 3 处理机调度算法(非抢占式)
    • 3.1 总览
    • 3.2 调度算法的评价指标
      • 3.2.1 CPU利用率
      • 3.2.2 系统吞吐量
      • 3.2.3 周转时间
      • 3.2.4 带权周转时间
      • 3.2.5 等待时间
      • 3.2.6 响应时间
    • 3.3 调度算法的学习思路
    • 3.4 调度算法
      • 3.4.1 先来先服务(FCFS,First Come first Serve)
      • 3.4.2 短作业优先(SJF,Shortest Job First)
      • 3.4.3 高响应比优先(HRRN,Highest Response Ratio Next)
    • 3.5 总结
  • 4 处理机调度算法(抢占式)
    • 4.1 总览
    • 4.2 各算法
      • 4.2.1 时间片轮转(RR,Round-Robin)
      • 4.2.2 优先级调度算法
      • 4.2.3 多级反馈队列算法
    • 4.3 总结
  • 5 总结


1 基本概念

1.1 总览

image1

1.2 什么是调度

1.2.1 调度

image2

1.2.2 处理机调度

image3

1.3 调度的三个层次

1.3.1 高级调度

(1)是针对作业的调度,传统批处理机系统中作业是必须全部执行完才可以结束的
(2)概念
image4

1.3.2 中级调度(内存调度)

(1)操作系统会将暂时不可以运行的进程调至外存等待(虚拟存储技术),知道进程重新具备了运行条件或内存有空闲时再重新调入内存。这样做可以提高内存利用率、系统吞吐量。此时的进程所处的状态为挂起状态。
(2)PCB不会一起调到外存,依然在内存中,操作系统将被挂起的PCB放入挂起队列中
(3)解释
image5

1.3.3 低级调度(进程调度)

image6

1.4 七状态模型

image7

1.5 三层调度的联系与对比

image8

1.6 总结

image9

2 方式与过程

2.1 总览

image1

2.2 进程调度的时机

2.2.1 需要进行调度的情况

image2

2.2.2 不能进行调度的情况

image3

2.3 临界区

2.3.1 临界资源

一个时间段内只允许一个进程使用的资源。各进程需要互斥的访问临界资源

2.3.2 临界区

访问临界资源的那段代码

2.3.3 分类

(1)内核程序临界区
① 一般用于访问某种数据结构,比如由各就绪进程的PCB组成的就绪队列。
② 在访问内核程序临界区期间不可以进行调度与切换,否则容易造成系统的错误。
image4
(2)普通临界区:
① 可以在访问普通临界区时进行调度与切换。
②比如,当一个进程占用了打印机这种速度很慢的I/O设备,假如此时不进行调度,则进程在等待IO处理完成的期间CPU会一直处于空闲状态,
image5

2.4 进程调度的方式

2.4.1 分类

image6

2.4.2 方式

image7

2.5 总结

image8

3 处理机调度算法(非抢占式)

3.1 总览

image1
image2

3.2 调度算法的评价指标

3.2.1 CPU利用率

image3

3.2.2 系统吞吐量

image4

3.2.3 周转时间

image5

3.2.4 带权周转时间

image6

3.2.5 等待时间

image7

3.2.6 响应时间

image8

3.3 调度算法的学习思路

image9

3.4 调度算法

3.4.1 先来先服务(FCFS,First Come first Serve)

image10

3.4.2 短作业优先(SJF,Shortest Job First)

(1)短作业优先调度
image11

(2)最短剩余时间优先算法
image12

(3)注意几个小细节
image13

(4)短作业优先
image14

3.4.3 高响应比优先(HRRN,Highest Response Ratio Next)

(1)概述

image15
(2)总结
image16

4. 注意
image17

3.5 总结

image18

image19

4 处理机调度算法(抢占式)

4.1 总览

image1

4.2 各算法

4.2.1 时间片轮转(RR,Round-Robin)

image2
(1)调度过程详解
以下表为例:
image3
①假设时间片大小为2
image4
image5
image6
最终结果
image7

②假设时间片大小为5
image8
最终结果:
image9
(2)注意
image10

4.2.2 优先级调度算法

image11
(1)非抢占式的优先级调度算法例题
image12
(2)抢占式的优先级调度算法例题
image13

(3)补充
image14
(4)如何合理的设置进程的优先级?
image15
①为什么要偏好I/O型进程呢?
image16

(5)对于动态优先级,什么时候该去调整呢
image17

4.2.3 多级反馈队列算法

image18
(1)算法步骤
image19

4.3 总结

image20

5 总结

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍

在这里插入图片描述

在这里插入图片描述

这篇关于吐血整理!操作系统【处理机调度】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714477

相关文章

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3