CPU調度——調度的目標

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…