当前位置: 首页 > article >正文

操作系统 | 处理机调度全解析

操作系统的“外卖派单员”CPU 调度与死锁全攻略 大家好☕️想象一下你是一个拥有无限披萨CPU时间的披萨店老板而你的店里只有一个披萨烤箱处理机。门外排着长队有只想打包带走一块披萨的外卖小哥短作业有预订了十层豪华蛋糕的土豪长作业还有嚷嚷着“必须在10分钟内送到否则差评”的VIP客户实时任务。这时候你需要一个“派单员”——也就是操作系统中的处理机调度CPU Scheduling。它决定了谁先用烤箱、用多久、以及什么时候插队。今天我们就来扒一扒操作系统是如何在作业调度、进程调度和实时调度之间玩转这个复杂的“多任务处理”的。 第一章宏观调控——作业与作业调度 在进程真正干活之前它们还只是躺在外存硬盘上的“作业”Job。这就像是外卖订单还躺在手机里还没进厨房。1. 作业的“三生三世”一个作业在系统中要经历三个阶段收容阶段后备状态你提交了作业系统给它发了个“号牌”作业控制块 JCB让它在外存排队。运行阶段运行状态被调度选中进入内存摇身一变成为“进程”开始占用CPU。完成阶段结束状态干完活释放资源结果输出潇洒离场。2. 五大“派单”算法操作系统有五种经典的选人策略先来先服务 (FCFS)原理谁先来谁先做绝对公平。缺点如果前面有个“话痨”长作业占着烤箱讲一天的故事后面急着赶火车的人都要饿死。短作业优先 (SJF)⚡原理谁时间短谁先上。缺点长作业容易“饿死”。而且你怎么知道每个客人要聊多久必须预知运行时间。优先级调度原理看身份。老板的朋友系统进程肯定比路人用户进程优先。高响应比优先原理FCFS 和 SJF 的“结合体”。响应比 (等待时间 服务时间) / 服务时间。既照顾了短作业又不让长作业饿死。轮转调度原理按顺序轮流来一人一口。 第二章微观操盘——进程调度 ⚙️当作业变成了进程进入了内存真正的“肉搏战”就开始了。这是现代操作系统最核心的部分。更加详细的进程调度全解析可以看我的下一篇推文。1. 调度机制的“铁三角”排队器把所有进程排好队。分派器把选中的进程扶上CPU宝座。上下文切换器这是最烧钱算力的环节就像让正在看《甄嬛传》的人立刻去背《五年高考三年模拟》大脑需要“切换频道”保存现场和恢复现场非常耗时。2. 抢占 vs 非抢占非抢占式 进程一旦拿到CPU就死磕到底直到结束或阻塞。适合古老的批处理系统但在现在的电脑里这会导致你点个鼠标都要等上几分钟。抢占式现代主流只要有更高优先级的进程出现或者时间片用完了系统就强行把CPU抢过来给新人。这就是为什么你一边下载电影后台任务一边还能流畅打游戏前台任务的原因。3. 多级反馈队列 (MLFQ)最聪明的调度算法 这是目前很多操作系统如Unix使用的高级算法。机制设置多个就绪队列优先级从高到低。规则新进程先进入最高优先级队列时间片短响应快。如果它没做完就降到下一级队列时间片变长。这样既保证了交互型程序如你的打字响应极快又保证了计算型程序如渲染最终能跑完。⚡ 第三章生死时速——实时调度 如果你的操作系统控制的是医院的呼吸机或者火箭发射普通的调度就不够看了。这里需要实时调度必须保证截止时间。1. 基本条件系统处理能力强硬件得跟得上。抢占式调度必须能随时插队。快速切换机制中断响应要快。2. 核心算法最早截止优先 (EDF)谁的死线Deadline最近谁先做。哪怕是长任务只要快死了就得优先抢救。最低松弛度优先 (LLF)松弛度 必须完成时间 - 还需运行时间。谁剩下的余量最少最紧张谁先做。3. 坑爹的“优先级倒置”与“继承” 场景高优先级进程 A 需要等低优先级进程 B 释放锁。结果中优先级进程 C 插队把CPU抢走了。A 在等 BB 却没CPU跑A 就被卡死了。解决优先级继承。当 A 等 B 时B 临时“继承” A 的高优先级赶紧把活干完把锁还了世界就清净了。 第四章我们的终极目标 为什么要搞这么复杂因为我们要平衡这几点资源利用率别让CPU闲着。公平性不能让某个进程饿死。响应时间你点一下鼠标电脑得立刻有反应分时系统。截止时间该响的闹钟一秒都不能差实时系统。 总结一张表看懂调度层级为了方便记忆我把这三个层级整理成了一个表格调度层级别名频率核心任务高级调度长程调度低 决定谁从外存硬盘进内存厨房中级调度中程调度中 决定谁暂时挂起Swap Out腾出内存空间低级调度短程调度极高 决定谁拿到CPU烤箱频率最高 结语看完了今天的科普下次当你电脑卡顿或者看到程序在后台疯狂运行时你就知道在你看不见的深处有一个精密的“派单员”正在疯狂地切换上下文努力让每一个任务都得到它应得的那口“披萨”。祝大家周一元气满满代码永不报错✨本文基于操作系统原理整理如有雷同纯属计算机科学的巧合。

相关文章:

操作系统 | 处理机调度全解析

🍕 操作系统的“外卖派单员”:CPU 调度与死锁全攻略 🚚💨大家好!!!☕️想象一下,你是一个拥有无限披萨(CPU时间)的披萨店老板,而你的店里只有一个…...

HarmonyOS应用开发全流程深度解析:从入门到精通的20000字指南

第一章 鸿蒙生态架构与开发理念1.1 鸿蒙操作系统双版本体系 HarmonyOS与OpenHarmony构成华为"18N"全场景战略的技术底座。商业版HarmonyOS由华为维护,集成消费级设备专有功能;开源版OpenHarmony由开放原子基金会管理,适配工业、电网…...

不只是骷髅海:从《亡灵》设定看游戏设计中“死亡”主题的5种高级玩法与平衡性设计

超越骷髅海:游戏设计中死亡主题的五大高阶玩法与平衡艺术 当《魔兽争霸3》中死亡骑士高举霜之哀伤召唤食尸鬼大军时,玩家第一次体验到亡灵军团"越打越多"的独特快感。但二十年后的今天,单纯的数量压制早已无法满足硬核玩家对策略深…...

达梦数据库修改参数方法

一般用sp_set_para_value()修改新版本达梦支持alter system修改,很类似oracle的命令具体语法树尝试一下 19:42:34 SYSDBALOCALHOST:5236> alter system set dmsql_et_cnt50000 spfile; DMSQL 过程已成功完成 已用时间: 11.967(毫秒). 执行号:13217. 19:42:48 SY…...

如何用3步快速掌握ChanlunX缠论自动化分析终极方法

如何用3步快速掌握ChanlunX缠论自动化分析终极方法 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否在股票技术分析中感到困惑?面对复杂的缠论理论,手动绘制笔、段、中枢结构…...

3大架构维度解析开源直播聚合解决方案:Dart跨平台技术深度实践

3大架构维度解析开源直播聚合解决方案:Dart跨平台技术深度实践 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 当技术决策者面对多平台直播整合的复杂挑战时,最核心的痛…...

Windows 10能运行安卓应用吗?一个开源项目带来的惊喜答案

Windows 10能运行安卓应用吗?一个开源项目带来的惊喜答案 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在为Windows 10无法运行安…...

从Fastjson到Jackson:Java项目里JSON库怎么选?一份避坑与迁移指南

从Fastjson到Jackson:Java项目里JSON库的深度选型与迁移实战 在微服务架构盛行的今天,JSON作为数据交换的事实标准,其处理库的选择直接影响着系统性能、安全性和可维护性。当团队面临技术栈升级或重构时,如何在Fastjson、Jackson和…...

ShawzinBot深度解析:3个技巧让Warframe音乐演奏从新手变大师

ShawzinBot深度解析:3个技巧让Warframe音乐演奏从新手变大师 【免费下载链接】ShawzinBot Convert a MIDI input to a series of key presses for the Shawzin 项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBot 你是否曾经想在Warframe中演奏自己喜欢…...

StreamingVLM:实时视频流理解框架的技术解析与应用

1. 项目概述:当视频流遇上实时理解去年在给某智能安防系统做技术咨询时,客户指着监控墙上不断刷新的画面问我:"这些摄像头7x24小时工作,但真正需要人工介入的异常事件可能一天就两三起,有没有可能让AI像人一样持续…...

终极解决方案:高效实现Android手机USB网络共享到Mac的完整指南

终极解决方案:高效实现Android手机USB网络共享到Mac的完整指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS 你是否曾经在Mac上尝试连接Android手机的网络共享,却遇…...

告别VMware!在Win11上用WSL2秒开openEuler,还能无缝用VSCode开发

告别VMware!在Win11上用WSL2秒开openEuler,还能无缝用VSCode开发 如果你是一名习惯在Windows环境下开发的程序员,同时又需要频繁使用Linux环境,那么传统虚拟机(如VMware或VirtualBox)可能已经让你感到疲惫不…...

TypingMind静态自托管部署指南:构建私有AI聊天前端工作台

1. 项目概述:为什么我们需要一个更好的AI聊天前端?如果你和我一样,已经深度使用过ChatGPT、Claude、Gemini这些主流AI模型,你可能会发现一个痛点:官方网页界面虽然能用,但总感觉差点意思。功能分散、对话管…...

Emacs AI编程接口:统一多模型后端,实现工程化开发工作流

1. 项目概述:一个为Emacs设计的统一AI编程接口 如果你和我一样,是个在Emacs里泡了多年的老用户,同时又对各种新兴的AI编程助手(比如Claude Code、GitHub Copilot CLI、OpenAI Codex)感到好奇,那你一定也经…...

天守:AI智能体团队可视化指挥中心的设计、部署与实战

1. 项目概述:天守——为AI智能体团队打造的沉浸式指挥中心如果你正在运行一个基于OpenClaw的AI智能体团队,那么你很可能已经体会过那种“黑盒”般的焦虑:我的智能体们现在在干什么?它们之间的协作顺畅吗?实验的结果趋势…...

Hugo博客自动化发布:从脚本到CI/CD的完整实践指南

1. 项目概述:一个为Hugo博客量身打造的自动化发布引擎如果你和我一样,是个喜欢用Hugo写博客,但又对每次写完文章后那一系列繁琐的发布流程感到头疼的人,那么“tanteng/hugo-blog-publisher”这个项目,很可能就是你一直…...

AISMM不是培训,是能力操作系统:奇点大会首发《AISMM实施成熟度评估矩阵》(含6维度22项量化指标)

更多请点击: https://intelliparadigm.com 第一章:AISMM不是培训,是能力操作系统 AISMM(AI-Savvy Maturity Model)并非传统意义的技能速成课程或知识灌输式培训,而是一套可部署、可度量、可迭代的工程化能…...

抠图公章怎么制作?2026年最全教程+工具推荐

最近在处理各种文档时,我才意识到一个问题——怎样快速、干净地抠出公章图片,成了很多人的痛点。特别是做设计、排版、证件处理的朋友,经常需要用到透明背景的公章素材。今天我就把自己的实战经验和踩过的坑分享给大家,手把手教你…...

终极串口调试工具指南:如何用SerialPortAssistant快速解决嵌入式通信难题

终极串口调试工具指南:如何用SerialPortAssistant快速解决嵌入式通信难题 【免费下载链接】SerialPortAssistant This project is a cross-platform serial port assistant. It can run on WINDOWS, linux、android、macos system. 项目地址: https://gitcode.co…...

透明底色的图片怎么做?2026年最实用的免费抠图工具推荐

最近有很多粉丝问我,"透明底色的图片怎么做啊?"其实这个问题问得特别好,因为在日常工作和生活中,我们确实经常需要处理这类图片——无论是制作证件照、电商商品图,还是设计海报,透明背景的图片都…...

如何实现高效AI图像生成:SD-PPP Photoshop插件的3大架构优势

如何实现高效AI图像生成:SD-PPP Photoshop插件的3大架构优势 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp SD-PPP是一款创新的Photoshop AI插件,通过无缝集成ComfyUI和多种AI模型&#xf…...

TokenGuard:零配置LLM API代理,为AI Agent成本控制装上安全阀

1. 项目概述:为你的AI Agent钱包装上“安全阀”如果你正在使用OpenClaw、Nanobot这类AI Agent框架,或者任何基于大语言模型API的应用,那么下面这个场景你一定不陌生:你启动了一个复杂的任务,然后转身去泡了杯咖啡&…...

多模态视频理解:跨模态联合推理与评估体系构建

1. 项目背景与核心价值最近在整理视频理解领域的实验数据时,发现现有benchmark存在一个明显缺陷——大多数数据集要么侧重单模态检索,要么只做浅层语义匹配,缺乏对多模态联合推理能力的系统评估。这促使我着手构建一个新的评估体系&#xff0…...

2026届毕业生推荐的六大AI论文方案实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在着手撰写开题报告这个阶段的时候,人工去做的话效率提升会比较有限&#xff0c…...

使用Taotoken聚合API为初创团队统一管理多模型调用成本

使用Taotoken聚合API为初创团队统一管理多模型调用成本 1. 初创团队的多模型管理痛点 小型技术团队在同时使用多个大语言模型时,通常会面临三个典型问题。首先是密钥分散管理带来的安全隐患,每个开发者可能单独保管不同厂商的API Key,增加了…...

ESP32 SPI模式读写SD卡,从硬件连接到文件操作完整流程(附代码避坑点)

ESP32 SPI模式读写SD卡实战指南:从硬件连接到文件系统操作 在嵌入式开发中,数据存储是一个永恒的话题。当ESP32遇上SD卡,这对组合能为物联网设备带来灵活的数据存储解决方案。不同于复杂的SDIO接口,SPI模式以其简洁的硬件连接和稳…...

创业公司如何借助聚合平台低成本试错并找到最适合的AI模型

创业公司如何借助聚合平台低成本试错并找到最适合的AI模型 对于资源有限的创业团队而言,在AI应用开发初期,模型选型是一个既关键又充满挑战的决策。直接接入单一厂商的API,意味着团队需要投入大量精力进行技术适配,并且一旦发现模…...

【限时解密】AISMM模型未公开的第4层隐变量——它正悄悄改写你对“满意”的定义

更多请点击: https://intelliparadigm.com 第一章:AISMM模型与客户满意度的理论渊源 AISMM(Adaptive Intelligent Service Maturity Model)是一种面向服务演进的动态成熟度评估框架,其核心并非静态指标堆砌&#xff0…...

【SITS2026高机密洞察】:AISMM评估不是“打分游戏”,而是重构安全投资回报率的7维评估引擎

更多请点击: https://intelliparadigm.com 第一章:【SITS2026高机密洞察】:AISMM评估不是“打分游戏”,而是重构安全投资回报率的7维评估引擎 AISMM(Adaptive Intelligence Security Maturity Model)在SI…...

OBS Browser插件深度解析:如何用JavaScript控制直播场景

OBS Browser插件深度解析:如何用JavaScript控制直播场景 【免费下载链接】obs-browser CEF-based OBS Studio browser plugin 项目地址: https://gitcode.com/gh_mirrors/ob/obs-browser OBS Browser是一个基于Chromium Embedded Framework的浏览器源插件&am…...