2.2 (2) 调度算法

news2024/9/29 7:18:07

文章目录

  • 调度算法的评价指标
    • CPU利用率
    • 系统吞吐量
    • 周转时间
    • 等待时间
    • 响应时间
    • 总结
  • 典型的调度算法
    • 先来先服务(FCFS)
    • 短作业优先(SJF)
    • 高响应比优先(HRRN)
    • 时间片轮转调度算法
    • 优先级调度算法
    • 多级反馈列队调度算法

调度算法的评价指标

CPU利用率

CPU利用率:指CPU”忙碌“的时间占总时间的比例

利用率 = 忙碌的时间 / 总时间

系统吞吐量

系统吞吐量:单位时间内完成作业的数量

系统吞吐量 = 总共完成的作业量 / 总共花费的时间

周转时间

周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔

(作业)周转时间 = 作业完成时间 - 作业提交时间

平均周转时间 = 各作业周转时间之和 / 作业数

带权周转时间 = 作业周转时间 / 作业实际运行时间 = (作业完成时间 - 作业提交时间) / 作业实际运行时间

对于周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高
对于实际运行时间相同的两个作业,周转时间短的带权周转时间更小,用户满意度更高

带权周转时间必然 ≥ 1

带权周转时间与周转时间都是越小越好

平均带权周转时间 = 各作业带权周转时间之和 / 作业数

等待时间

等待时间:进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/0完成的期间其实进程也是在被服务的,所以不计入等待时间
对于作业来说,不仅要考虑建立进程后的等待时间还要加上作业在外存后备队列中等待的时间

一个作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/进程的等待时间

响应时间

响应时间:从用户提交请求到首次产生响应所用的时间

总结

在这里插入图片描述

典型的调度算法

先来先服务(FCFS)

先来先服务调度算法:按照到达的先后顺序调度,事实上就是等待时间越久的越优先得到服务

在这里插入图片描述

例题】各进程到达就绪队列的时间、需要的运行时间如下表所示。使用先来先服务调度算法,计算各进程的周转时间、平均周转时间、带权周转时间、平均带权周转时间、等待时间、平均等待时间

在这里插入图片描述

  • 周转时间

    周转时间 = 完成时间 - 到达时间

    P1=7-0=7;P2=11-2=9;P3=12-4=8;P4=16-5=11

  • 带权周转时间

    带权周转时间 = 周转时间 / 运行时间

    P1=7/7=1;P2=9/4=2.25;P3=8/1=8;P4=11/4=2.75

  • 等待时间

    等待时间 = 周转时间 - 运行时间

    P1=7-7=0;P2=9-4=5;P3=8-1=7;P4=11-4=7

    注意:本例中的进程都是纯计算型的进程,一个进程到达后要么在等待,要么在运行
    如果是又有计算、又有I/O操作的进程,其 等待时间 = 周转时间 - 运行时间 - I/O操作的时间

  • 平均周转时间

    平均周转时间 = 周转时间之和 / 进程数 = (7+9+8+11)/4=8.75

  • 平均带权周转时间

    平均带权周转时间 = 带权周转时间之和 / 进程数 = (1+2.25+8+2.75)/4=3.5

  • 平均等待时间

    平均等待时间 = 等待时间之和 / 进程数 = (0+5+7+7)/4=4.75

短作业优先(SJF)

在这里插入图片描述

例题1】各进程到达就绪队列的时间、需要的运行时间如下表所示。使用非抢占式的短作业(进程)优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间

在这里插入图片描述

  • 周转时间

    P1=7-0=7;P3=8-4=4;P2=12-2=10;P4=16-5=11

  • 带权周转时间

    P1=7/7=1;P3=4/1=4;P2=10/4=2.5;P4=11/4=2.75

  • 等待时间

    P1=7-7=0;P3=4-1=3;P2=10-4=6;P4=11-4=7

  • 平均周转时间

    平均周转时间 = (7+4+10+11)/4=8

  • 平均带权周转时间

    平均带权周转时间 = (1+4+2.5+2.75)/4=2.56

  • 平均等待时间

    平均等待时间 = (0+3+6+7)/4=4

例题2】各进程到达就绪队列的时间、需要的运行时间如下表所示。使用抢占式的短作业优先调度算法(最短剩余时间优先算法),计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间

在这里插入图片描述

  • 周转时间

    P1=16-0=16;P2=7-2=5;P3=5-4=1;P4=11-5=6

  • 带权周转时间

    P1=16/7=2.28;P2=5/4=1.25;P3=1/1=1;P4=6/4=1.5

  • 等待时间

    P1=16-7=9;P2=5-4=1;P3=1-1=0;P4=6-4=2

  • 平均周转时间

    平均周转时间 = (16+5+1+6)/4=7

  • 平均带权周转时间

    平均带权周转时间 = (2.28+1.25+1+1.5)/4=1.50

  • 平均等待时间

    平均等待时间 = (9+1+0+2)/4=3

高响应比优先(HRRN)

在这里插入图片描述

例题】各进程到达就绪队列的时间、需要的运行时间如下表所示。使用高响应比优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间

在这里插入图片描述

*计算结果和短作业优先【例题1】一样

时间片轮转调度算法

在这里插入图片描述

例题】各进程到达就绪队列的时间、需要的运行时间如下表所示。使用时间片轮转调度算法,分析时间片大小分别是2、5时的进程运行情况(时间片轮转调度算法常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时间)

时间片大小为2时进程运行情况如下

在这里插入图片描述

分析】(注:以下括号内表示当前时刻就绪队列中的进程、进程的剩余运行时间)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

时间片大小为5时进程运行情况如下

在这里插入图片描述

分析

在这里插入图片描述

结论

  • 如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法并且会增大进程响应时间,因此时间片不能太大
  • 进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少,可见时间片也不能太小(一般来说,设计时间片时要让切换进程的开销占比不超过 1%)

优先级调度算法

在这里插入图片描述

例题1】各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用非抢占式的优先级调度算法,分析进程运行情况(注:优先数越大,优先级越高)

在这里插入图片描述

例题2】各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用抢占式的优先级调度算法,分析进程运行情况(注:优先数越大,优先级越高)

在这里插入图片描述

多级反馈列队调度算法

在这里插入图片描述

多级反馈列队调度算法的过程比较复杂,建议看 《王道计算机考研 操作系统》 课程视频 P24 的动画演示


【计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频

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

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

相关文章

动态规划:打家劫舍系列

目录 1. 打家劫舍1(线性数组)(LeetCode198) 解法1:动态规划(二维dp数组) 解法2:动态规划(一维dp数组) 解法3:动态规划(一维dp数组优化) 2. 打家劫舍2(环形数组)…

信号处理——自相关和互相关分析

1.概括 在信号处理中,自相关和互相关是相关分析非常重要的概念,它们能分析一个信号或两个信号在时间维度的相似性,在振动测试分析、雷达测距和声发射探伤得到了广泛的应用。自相关分析的研究对象为一个信号,互相关分析的研究对象…

spring原理(第八天)

aop的实现原理 AOP 底层实现方式之一是代理,由代理结合通知和目标,提供增强功能 除此以外,aspectj 提供了两种另外的 AOP 底层实现: 第一种是通过 ajc 编译器在编译 class 类文件时,就把通知的增强功能,织…

Linux之文件系统

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 C进阶 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.磁盘 二.对磁盘进行管理 三.通过inode找到文件…

Netty的几种IO模式的实现与切换

写在文章开头 今天我们就基于Netty来简单聊聊开发中几种常见的IO模式以及Netty对于这几种IO模式的实现,希望对你有帮助。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项…

如何在RabbitMQ中防止消息丢失

如何在RabbitMQ中防止消息丢失 在分布式系统中,消息的可靠传递是至关重要的。RabbitMQ作为一个强大的消息队列系统,提供了多种机制来确保消息不会丢失。本文将介绍在RabbitMQ中防止消息丢失的几种方法。 消息确认机制 消息发布确认 在RabbitMQ中&…

pdf转换器哪个好?不要错过这4款转换工具

pdf转换器哪个好?选择一款高效的PDF转换器,无疑能极大地便利我们的日常工作与学习。它不仅能够轻松实现PDF文件与Word、Excel、图片等多种格式之间的互转,还支持批量处理,显著提高工作效率。无论是编辑修改、格式调整还是分享传阅…

深入浅出消息队列----【RocketMQ 和 Kafka 消息存储差异对比】

深入浅出消息队列----【RocketMQ 和 Kafka 消息存储差异对比】 RocketMQ 的消息存储Kafka 的消息存储对比 RocketMQ 与 Kafka 本文仅是文章笔记,整理了原文章中重要的知识点、记录了个人的看法 文章来源:编程导航-鱼皮【yes哥深入浅出消息队列专栏】 Roc…

指南!网上卖药品需要什么资质?

随着互联网技术的飞速发展,医药电商已经成为药品和医疗器械销售的重要渠道。处方药的网络销售政策逐步放宽,医药电商行业迎来了快速发展的春天。在这一领域,主要的参与者包括药品销售公司和电商平台。 为了吸引流量和满足处方药审方的需求&a…

第18课 Scratch入门篇:时钟-当前时间

时钟 故事背景: 在一个遥远的科技星球上,时间对于居民们来说无比珍贵。这个星球上的居民们都是技术高手,他们使用先进的编程技术来管理自己的生活。然而,星球上的时间系统最近出现了故障,导致时间的流逝变得不稳定。为…

【终极指南】大模型二次开发:从零基础到高手之路

随着人工智能技术的发展,预训练的大模型(例如GPT系列、BERT等)已成为自然语言处理领域的关键技术之一。对于开发者来说,掌握如何基于这些大模型进行二次开发,不仅可以提升自身的技术实力,还能为企业带来更多…

Flink 如何处理背压

文章目录 目录 前言 一、什么是背压? 二、处理背压的步骤 1.模拟背压机制 2.为什么要关心背压问题? 总结 前言 初次接触Flink的同学会对背压有很多的疑问。本文就是我学习的一些心得和体会,以及借鉴一些文章的感想。 Flink 如何处理背压效应…

使用snap的安装docker配置阿里云镜像加速

使用snap安装docker非常的简单,一条命令即可 snap install docker 但是通过这个命令安装的docker, 配置阿里云镜像跟常规安装的配置起来不太一样, 下面讲一下配置流程 修改docker配置文件/var/snap/docker/current/config/daemon.json 这个文件应该是已经创建好…

重磅!LangChain 官方发布 Agent IDE!!

1 LangChain 开发现状 LangChain 从应用开发框架出发,提供了一套代码级工具集,旨在降低 LLM 的开发难度,在过去一年中吸引了众多开发者,助力他们迅速打造 AI 大模型应用。然而,还有一群用户,他们希望门槛…

NC 最长无重复子数组

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 给定一个长度…

idea连接oracle

配置 注意: SID指的是实例名称

C语言宠物系统3

在前面的基础上,加上了修改功能和排序功能,可以选择姓名排序,年龄排序,价格排序。 test.c源文件 #include "Pet.h"void menu() {printf("------------------------\n");printf("- 欢迎来到宠物商店 …

实践出真知:Agents 领域“一年打怪升级”的经验分享

编者按:在你构建 AI Agents 时,是否曾遇到这些困扰:总是在简单任务上出错,从而让你有时会怀疑自己的技术水平?面对客户的需求,AI Agent 表现得像个“笨蛋”,无法准确理解和执行指令?…

不同网络上的计算机怎么通信

从 一个网络上计算机的通信 ,我们知道,在一个网络里,多台主机通过交换机连接起来,每台主机的网卡有全球唯一的 MAC 地址,一个网络上的主机通过 MAC 地址通信。 那么,多个网络之间如何互联和通信&#xff1…

【轨物方案】智慧供热物联网整体解决方案

目前城市供暖系统当中,供暖设备一直得不到更新和升级,没有合理的监控设备,导致对供暖的合理调控不理想,供暖严重失调而浑然不知,进而出现冷热不均的问题,极易造成资源严重浪费。缺乏成熟的管理系统&#xf…