news 2026/5/31 11:41:07

处理机调度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
处理机调度

目录

调度的概念、层次

进程调度的时机、方式、切换与过程

调度器、闲逛进程

调度算法的评价指标

CPU利用率:​编辑

系统吞吐量:​编辑

周转时间:​编辑

等待时间:​编辑

响应时间: ​编辑

调度算法

先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN)

时间片轮转调度算法(RR)、优先级调度算法、多级反馈队列调度算法

多级队列调度算法


调度的概念、层次

在操作系统中,调度是指操作系统按一定策略,从就绪队列中选择进程 / 线程,将 CPU 等资源分配给它,使其从就绪态转为运行态执行的过程

进程调度的时机、方式、切换与过程

调度器、闲逛进程

调度时机:进程创建、进程退出、运行进程阻塞、I/O 中断发生(可能唤醒某些阻塞进程)......

调度算法的评价指标

CPU利用率
系统吞吐量
周转时间
等待时间
响应时间:

调度算法

先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN)

FCFS 算法是每次调度的时候选择一个等待时间最长的作业(进程)为其服务。但是没有考虑到作业的运行时间,因此导致了对短作业不友好的问题。

SJF 算法是选择一个执行时间最短的作业为其服务,但是又完全不考虑各个作业的等待时间,因此导致了对长作业不友好的问题,甚至还会造成饥饿问题。

高响应比优先算法则既考虑到各个作业的等待时间,也能兼顾运行时间呢?

这几种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心响应时间,也并不区分任务的紧急程度,因此对于用户来说,交互性很差。因此这三种算法一般适合于早期的批处理系统

当然,FCFS算法也常结合其他的算法使用,在现在也扮演着很重要的角色。

时间片轮转调度算法(RR)、优先级调度算法、多级反馈队列调度算法

时间片的选择需要在响应时间上下文切换开销之间取得平衡。

时间片太大接近于先来先服务(FCFS)算法。

如果一个长任务获得时间片并长时间执行,其他就绪任务必须等待更久才能获得CPU,导致交互式任务的响应时间显著增加。
轮转调度的初衷是让多个任务在较短时间内都能得到CPU服务,提高响应性。时间片过大就退化为近似批处理模式,无法实现快速轮流的效果。

时间片太小使得进程切换极其频繁。

上下文切换开销急剧增加,每次时间片用完都会发生一次进程切换,这本身需要CPU时间。如果时间片太小,大部分CPU时间可能浪费在切换上,而不是真正执行用户任务。
因为CPU有效利用率降低,导致系统在单位时间内完成的任务数减少,吞吐量下降
对于长任务,会被频繁打断,虽然响应时间很短。其实际完成时间可能因切换开销而延长。

FCFS算法的优点是公平,SJF算法的优点是能尽快处理完短作业,平均等待/周转时间等参数优秀。

时间片轮转调度算法可以让各个进程得到及时的响应,优先级调度算法可以灵活地调整各种进程被服务的机会。

多级反馈队列调度算法则是对其他算法的折中权衡。

比起早期的批处理操作系统来说,由于计算机造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而这几种算法恰好也能较好地满足交互式系统的需求。因此这三种算法适合用于交互式系统。(比如UNIX使用的就是多级反馈队列调度算法)。

多级队列调度算法

😶‍🌫️😶‍🌫️😶‍🌫️...

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 17:04:18

做个强大的人

“当你对别人有用时,人性就是善良的。当你对别人无用时,人性就是自私的。当你触碰别人利益时,人性就是恶毒的。”“你所有的烦恼均来自于自己的无能,当你的实力足够强大了,能给别人带来利益时,你才能感受到…

作者头像 李华
网站建设 2026/5/30 8:02:52

华为昇腾CANN 2.0开发实战:手把手教你构建高性能AI应用

一、为什么CANN 2.0成为AI开发者新宠? 在AI应用爆发式增长的今天,模型部署效率和推理性能已成为开发者面临的核心挑战。根据昇腾社区最新调研数据: 78%的开发者在模型部署环节遇到性能瓶颈65%的团队因框架兼容性问题延迟产品上线仅32%的AI应…

作者头像 李华
网站建设 2026/5/31 10:07:32

Vue3 项目单元测试全指南:价值、Vitest 落地与提效方案

一、为什么必须做单元测试?核心价值拆解 单元测试是开发者针对「最小功能单元」(工具函数、单个组件、状态逻辑等)编写的自动化测试脚本,通过工具执行验证逻辑正确性,并非额外负担,而是提前规避风险、降低长…

作者头像 李华
网站建设 2026/5/30 23:39:54

Nano-vLLM 源码分析(一) - 课程大纲

Nano-vLLM 源码分析课程大纲 🚀 一个轻量级 vLLM 实现的深度源码解析 课程简介 Nano-vLLM 是一个仅用约 1200 行 Python 代码实现的轻量级 LLM 推理引擎,却能达到与 vLLM 相当的推理性能。本课程将带你深入分析每一行代码,理解现代 LLM 推理…

作者头像 李华
网站建设 2026/5/30 20:04:37

免费下载Seed-Coder-8B-Base镜像,开启本地代码生成新时代

免费下载Seed-Coder-8B-Base镜像,开启本地代码生成新时代 在今天这个AI重构软件开发流程的时代,你是否曾因使用云端编程助手而犹豫?一段正在调试的核心算法、一个尚未发布的业务逻辑——这些代码一旦上传到远程服务器,就可能面临…

作者头像 李华