2.2.2 调度的目标

当系统中“想运行”的实体多于 CPU 的数量时,调度就不可避免地要在“效率”与“公平”之间做取舍。直观地说,一类目标希望把硬件压榨到更高的利用率,让单位时间内做更多的工作;另一类目标则关心个体体验,让单个作业或交互请求更早得到处理、等待更少、响应更稳。把这些目标与度量对应起来,读者在分析不同算法时才知道“该看哪一项数据”。

2.2.2.1 通用度量与直观目标

衡量调度“好不好”,通常不会只看单一指标,而是几项度量的组合。为了建立直觉,可以先把它们对齐到常见的体验或运营诉求上,再进入正式术语。

(1)CPU 利用率:期望处理机尽量“有活可干”,空转比例越低越好。该指标体现硬件使用效率,是长周期运营视角的核心目标之一。
(2)吞吐量:单位时间内完成的作业数量越多越好。它对应“单位时间干了多少活”,常与 CPU 利用率一起考量系统整体产出。
(3)周转时间/平均周转时间:从作业提交到作业完成所经历的总时间,希望越短越好;为了兼顾不同规模作业,常配合带权周转时间讨论“公平的快慢”。
(4)等待时间:作业在就绪队列中“干等 CPU”的累计时间,希望越短越好;它直接反映调度是否让作业长时间排队。
(5)响应时间:交互或时间分片场景下,从请求发出到系统首次给出可感知反馈的时间,希望越短且越稳定。对终端用户而言,响应时间往往比“最终完成得多快”更重要。
(6)可预测性(抖动小):相同类型任务的等待与响应不应忽快忽慢。对在线业务与实时场景,稳定性与一致性本身就是目标。

这些度量彼此牵制:例如追求极致吞吐量时,个体响应可能变差;强压响应时间时,CPU 利用率与吞吐量可能下降。理解这种张力,是做出“场景化选择”的前提。

2.2.2.2 不同系统类型的侧重

并非所有系统对目标的偏好都一样。把典型环境分开放,可以更清晰地理解调度“在乎什么”。

(1)批处理系统:更关注吞吐量平均周转时间,同时力求较高的CPU 利用率。批处理负载通常无人交互,短作业不应长期被长作业压制,因此在追求整体产出时,也要兼顾等待时间与“对短作业的友好度”。
(2)交互式系统:更看重响应时间可预测性。用户希望“点一下就有反应”,哪怕最终计算稍慢也能接受。因此,调度应优先保证前台任务的及时切片与反馈,同时避免某些低优先级任务饥饿
(3)实时系统:目标从“平均更好”转为“按时完成”。硬实时强调截止期满足率与时间行为的确定性,软实时则在保证核心任务按时的前提下,追求整体资源利用率。这里“可预测性”与“优先级约束”比平均指标更重要。

把系统类型与指标偏好对齐,有助于在题目给出“工作负载背景”时迅速判断该优先哪一类目标。

2.2.2.3 公平与优先的平衡

仅有平均指标并不能说明一切。实践中还需要处理“谁更重要”与“是否被长期忽视”的问题。调度在这方面的目标主要体现在两点:一是公平性,即相近类别的作业应获得相近的处理机机会,避免因偶然因素产生极端差异;二是避免饥饿,在长期运行中不让低优先级或长作业一直得不到服务。常见的做法是通过优先级表达相对重要性,再以老化机制等手段在长期统计上恢复公平。对考研解题而言,看到“长期无响应”“低优先级作业一直排队”等描述,就要联想到“饥饿”“公平”“老化”这些目标词。

2.2.2.4 面向整体效率的协同取舍

除了单点指标,调度还要实现不同资源之间的协同:CPU、I/O 设备与内存最好都“有活干”。因此,目标上会鼓励I/O 密集型CPU 密集型任务的并行推进,以提升系统整体吞吐量和设备利用率;同时也希望上下文切换开销不过度膨胀,避免因频繁切换而把时间花在“换人不干活”上。换言之,调度既关注“选对人上场”,也关注“别老换人”。这些都是目标层面的取舍,具体如何达成留待后续实现与算法小节展开。

2.2.2.5 用目标指导算法选择的思路

面对具体场景,读者可以按“负载特征—系统类型—关键目标”的顺序筛选算法侧重:若题干强调“用户交互卡顿”,优先关注响应时间/可预测性;若强调“批量作业堆积”,优先关注吞吐量/平均周转时间;若出现“截止期”“定时任务”,自然转向按时完成与确定性。在此基础上,再考虑公平与避免饥饿的长期约束。记住:调度算法的“好坏”不是抽象的,而是相对于这一节明确的目标而言的。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 8

封装一个学生的类&#xff0c;定义一个学生这样类的vector容器, 里面存放学生对象&#xff08;至少3个&#xff09;再把该容器中的对象&#xff0c;保存到文件中。再把这些学生从文件中读取出来&#xff0c;放入另一个容器中并且遍历输出该容器里的学生。#include <iostream…

短视频矩阵系统源码开发搭建技术指南--支持OEM

短视频矩阵系统架构设计短视频矩阵系统通常采用分布式架构&#xff0c;包含内容管理、用户管理、推荐算法、存储分发等模块。主流技术栈包括微服务框架&#xff08;Spring Cloud/Dubbo&#xff09;、消息队列&#xff08;Kafka/RabbitMQ&#xff09;、数据库&#xff08;MySQL/…

不连续页分配器补充

vmalloc流程 1. 背景&#xff1a;vmalloc() 要解决的问题 kmalloc() 要求 虚拟地址连续&#xff0c;物理页也连续。大块内存分配可能失败。vmalloc() 只保证 虚拟地址连续&#xff0c;物理内存可以由很多不连续的页拼接。 实现的关键就是&#xff1a; 在 vmalloc 区域 找一块空…

bug | 事务粒度不能太大,含demo

刷到一个说法&#xff0c;建议不要使用transaction注解。这个说法不太准确&#xff0c;注解可以用&#xff0c;但标注的事务粒度不能太大&#xff0c;这样可能会引起数据库阻塞问题。以下介绍注解事务和编程式事务的两种用法。 关键字&#xff1a;声明式事务&#xff0c;编程式…

别再看人形机器人了!真正干活的机器人还有这些!

每次提起“机器人”&#xff0c;你脑海中是不是立刻浮现出双足行走、拟人微笑、还能陪你聊天的那种“人形机器人”&#xff1f;但真相是&#xff1a;人形机器人并非更实用&#xff0c;只是满足了我们对“人类替代品”的幻想。事实上&#xff0c;机器人的世界远比我们想象的更丰…

垃圾回收,几种GC算法及GC机制

1.什么是垃圾回收&#xff1f;如何触发垃圾回收&#xff1f; 垃圾回收(GC)是自动管理内存的一种机制&#xff0c;它负责自动释放不再被程序引用的对象所占用的内存&#xff0c;这种机制减少内存泄漏和内存管理错误的可能性。可以通过多种方式触发&#xff1a;内存不足时&#x…

更智能的零售终端设备管理:合规、安全与高效

目录 引言&#xff1a;为什么零售连锁和自助终端需要更智能的设备管理&#xff1f; 典型应用场景 1. 便利店连锁 2. 大型超市 3. 加油站 4. 自助终端 核心功能&#xff0c;驱动高效与安全 1. 批量配置 2. 定时策略同步 3. 设备状态监控 4. Kiosk 模式&#xff0c;保…

Elasticsearch:向量搜索过滤 - 保持相关性

作者&#xff1a;来自 Elastic Carlos Delgado 仅执行向量搜索以找到与查询最相似的结果是不够的。通常需要过滤来缩小搜索结果。本文解释了在 Elasticsearch 和 Apache Lucene 中向量搜索的过滤是如何工作的。 Elasticsearch 拥有丰富的新功能&#xff0c;帮助你为自己的用例构…

Linux 性能调优之 OOM Killer 的认知与观测

写在前面 博文内容涉及到OOM Killer机制,以及利用 Cgroup/dmesg/BPF 观测 OOM Killer 事件,包括云原生环境下的 OOM Killer 机制的简单介绍 这是内存调优的最后一篇,之后会分享一些网络调优相关内容 理解不足小伙伴帮忙指正 😃,生活加油 我不再将这个世界与我所期待的,塑…

webrtc之高通滤波——HighPassFilter源码及原理分析

文章目录前言一、导读二、高通滤波过程1.HighPassFilter的创建1&#xff09;HighPassFilter的作用2&#xff09;开启条件3&#xff09;开启配置2.高通滤波整体过程1&#xff09;触发时机2&#xff09;滤波器创建3&#xff09;高通滤波过程三、算法实现1.原理1&#xff09;滤波器…

《sklearn机器学习——聚类性能指数》同质性,完整性和 V-measure

函数&#xff1a;homogeneity_score 参数&#xff1a; labels_true: array-like, shape [n_samples] 样本的真实标签。 labels_pred: array-like, shape [n_samples] 样本的预测标签。返回值&#xff1a; h: float 同质性得分&#xff0c;在0到1之间&#xff0c;值越大表示聚…

HarmonyOS 应用开发新范式:深入剖析 Stage 模型与 ArkTS 状态管理

好的&#xff0c;请看这篇关于 HarmonyOS 应用开发中 Stage 模型与 ArkTS 状态管理的技术文章。 HarmonyOS 应用开发新范式&#xff1a;深入剖析 Stage 模型与 ArkTS 状态管理 引言 随着 HarmonyOS 4、5 的发布以及 API 12 的迭代&#xff0c;HarmonyOS 的应用开发范式已经全面…

一个Java的main方法在JVM中的执行流程

一个Java的main方法在JVM中的执行流程可以分为​​四大阶段​​&#xff1a;​​加载 -> 链接 -> 初始化 -> 执行​​。// HelloWorld.java public class HelloWorld {public static void main(String[] args) {String message "Hello, JVM!";System.out.p…

聚焦诊断管理(DM)的传输层设计、诊断服务器实现、事件与通信管理、生命周期与报告五大核心模块

聚焦诊断管理(DM)的传输层设计、诊断服务器实现、事件与通信管理、生命周期与报告五大核心模块,明确 UDS(ISO 14229-1)与 SOVD(ASAM 服务化诊断)的功能逻辑、交互流程及规范性要求(SWS_DM 系列)。 1 UDS 传输层(UDS Transport Layer) 作为 DM 与诊断客户端的 UDS …

关于npm的钩子函数

一、npm scripts 的生命周期钩子&#xff08;Lifecycle Scripts&#xff09; npm 提供了一些 ​​特殊的 script 名称​​&#xff0c;它们是 ​​生命周期钩子​​&#xff0c;会在特定时机 ​​自动执行​​。这些钩子包括&#xff1a; 1.prepublishOnly(在 npm publish之前执…

167.在Vue3中使用OpenLayers模仿共享单车,判断点是否放在规划的电子围栏内

一、前言大家好&#xff0c;这里分享一个 Vue3 OpenLayers 的小案例&#xff1a; 模仿共享单车的电子围栏功能&#xff0c;用户在地图上绘制停泊点时&#xff0c;系统会自动判断该点是否在规划好的电子围栏内&#xff08;多边形或圆形&#xff09;。这个功能在实际项目中有很大…

键盘上面有F3,四,R,F,V,按下没有反应,维修记录

打开游戏&#xff0c;按了好几遍F&#xff0c;结果都没反应&#xff0c;但是左右上下行走是没问题的。一脸懵逼&#xff1f;&#xff1f;&#xff1f;打开键盘测试网页&#xff0c;发现有一列没反应&#xff0c;F1不是&#xff0c;F1我定义了一个快捷键&#xff0c;跟测试冲突了…

8051单片机-成为点灯大师

第三章 成为点灯大师 1. 硬件设计 上一章说到&#xff0c;怎么点亮LED灯&#xff0c;很简单啊&#xff0c;就是把P2口设置成低电平就行了。接下来让我们更进一步&#xff0c;完成LED闪烁、流水灯实验2. 软件设计 2.1 LED闪烁实验 为了使LED闪烁&#xff0c;我们自然而然的想到要…

Rust 日志库完全指南:从入门到精通

GitHub 仓库: https://github.com/zhouByte-hub/rust-study ⭐ 如果这个项目对您有帮助&#xff0c;请给我一个 star&#xff01; 在 Rust 生态系统中&#xff0c;日志处理是一个至关重要的环节。无论是开发小型应用还是大型系统&#xff0c;良好的日志记录都能帮助我们追踪问题…

【科研绘图系列】R语言绘制论文合集图

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍 数据准备与过滤 统计分析 可视化绘图 抗药性分析 系统发育分析 加载R包 数据下载 Supp figure 1 Fig 1a Fig 1c Fig 1d Fig 1e Fig 1f Supp figure 3 Supp figure 4 Supp figure 5…