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

掌控进程:深入剖析 Linux 内核调度机制

用不同的调度策略调度实时进程。普通进程支持两种调度策略标准轮流分时SCHED_NORMAL默认的调度策略调度大多数非实时、通用目的的进程。用完全公平调度器CFS为所有进程提供公平的 CPU 时间分配同时考虑进程的nice值。批处理调度SCHED_BATCH 调度普通的非实时进程针对 CPU 密集型、非交互式任务进行了优化。空闲SCHED_IDLE最低优先级的调度策略。只有系统没有其他任何可运行的进程SCHED_IDLE进程才会被调度运行。二、进程优先级限期进程的优先级比实时进程高实时进程的优先级比普通进程高。优先级层次限期进程 (SCHED_DEADLINE) 有最高的优先级根据截止时间进行调度在所有其他进程之前完成。实时进程 (SCHED_FIFO,SCHED_RR) 的优先级次之高于所有普通进程。普通进程 (SCHED_NORMAL,SCHED_BATCH) 有相对较低的优先级。空闲进程 (SCHED_IDLE) 有最低的优先级。限制进程的优先级是-1。实时进程的实时优先级是 1-99优先级数值越大表示优先级 越高。普通进程的静态优先级是 100-139优先级数值越小表示优先 级越高可通过修改 nice 值改变普通进程的优先级优先级等于 120 加上 nice 值。优先级数值限期进程优先级由截止时间决定截止时间越早逻辑优先级越高。实时进程优先级范围是 1 到 99。数值越大优先级越高。普通进程静态优先级范围是 100 到 139。数值越小优先级越高。普通进程的优先级可以修改nice值来调整。nice值的范围是 -20 到 19。静态优先级计算公式静态优先级 120 nice 值。空闲进程优先级最低内部表示为 -1。prio是调度优先级数值越小优先级越高多数情况为normal_prio。优先级限期进程普通进程实时进程prionormal_prionormal_prionormal_priostatic_prio0120 加上 nice 值数值越小优先级越高。0normal_prio-1static_prio99至rt_priorityrt_priority001至99数值越大优先级越高在 task_struct 结构体中4 个成员和优先级有关如下代码语言C自动换行AI代码解释// include/linux/sched.h int prio; int static_prio; int normal_prio; unsigned int rt_priority;int prio;进程的动态优先级也是调度器实际用的优先级。数值越小优先级越高。int static_prio;进程的静态优先级。普通进程由120 nice 值决定实时进程和限期进程为 0因为优先级由rt_priority或截止时间决定。int normal_prio;进程的正常优先级。基于static_prio或rt_priority计算得出。unsigned int rt_priority;实时进程的实时优先级范围是 1 到 99。对于非实时进程值为 0。三、公平调度 CFS 与其它调度3.1、调度类Linux 内核 sched_class 调度器有五种类型dl_sched_class限期调度类。rt_sched_class实时调度类。stop_sched_class停机调度类。idle_sched_c lass。fair_sched_class。其中每种调度类都有自己的调度策略。主要是为方便添加新的调度策略 Linux 内核抽象一 个调 度类 sched_class。其调试器类型源码如下kernel/sched/sched.h代码语言C自动换行AI代码解释extern const struct sched_class dl_sched_class extern const struct sched_class rt_sched_class extern const struct sched_class stop_sched_class extern const struct sched_class idle_sched_c lass extern const struct sched_class fair_sched_classstop_sched_class调度类可以抢占其他进程其他进程不能抢占它停机调度类是指将处理器停下来做更加紧急的工作只有迁移线程属于停机调度类每个CPU有一个迁移线程cpu_id。dl_sched_class调度类使用红黑树将进程按照绝对截至限期从小到大排序每次调度的时间选择绝对截止限期最小的进程。rt_sched_class将每个调度优先级维护一个队列通过位图bitmap能够快速查找第一个非空队列DECLARE_BITMAP(bitmap,MAX_RT_PRIO1)。调度类优先级由高到低进行排列停机调度类限期调度类 实时调度类公平调度类空闲调度类。

相关文章:

掌控进程:深入剖析 Linux 内核调度机制

用不同的调度策略调度实时进程。普通进程支持两种调度策略:标准轮流分时(SCHED_NORMAL):默认的调度策略,调度大多数非实时、通用目的的进程。用完全公平调度器(CFS),为所有进程提供公…...

深入探索Linux内存管理:初学者指南

计算机的核心部分是 CPU,RAM 是 CPU 的前端门户,进入 CPU 的所有内容都将通过 RAM。例如,如果有一个正在加载的进程,则该进程将首先加载到 RAM 中,CPU 将从 RAM 获取进程数据。但为了使其更快,CPU 具有一级…...

2026.3.15:bochs2.6.11(带debug)虚拟机安装和使用教程

bochs2.6.11(带debug)虚拟机安装教程 bochs 安装bochs...

分析常见占用空间的文件类型:系统临时文件

理解C盘空间占用原因 分析常见占用空间的文件类型:系统临时文件、软件缓存、日志文件、休眠文件等。区分必要系统文件与可清理内容,避免误删关键数据。 使用Windows内置工具清理 介绍磁盘清理工具的使用方法:右键C盘属性→磁盘清理→勾选临时…...

上位机知识篇---显示框卡顿原因分析与分辨率优化方案

一、显示框卡顿的根本原因分析1.1 计算资源瓶颈1.2 详细原因分解瓶颈类型具体原因影响程度优化难度计算密集型YOLOv8模型推理需要大量矩阵运算★★★★★★★★☆☆内存密集型多尺度特征图占用大量显存★★★★☆★★☆☆☆数据传输CPU-GPU间频繁数据拷贝★★★☆☆★★★☆☆图…...

嵌入式知识篇---IMU(惯性测量单元)

一、IMU是什么?(核心定义) IMU 是一个电子装置,它通过测量物体在三维空间中的角速度和加速度,来感知物体自身的运动状态和姿态。可以把它想象成“身体里的前庭系统”——即使闭着眼睛,你也能感觉到自己在转…...

太阳能板清洁机器人3D图纸 STEP格式

太阳能板清洁机器人的3D图纸(STEP格式)是光伏设备维护领域的重要学习资料,其核心作用在于为清洁系统的设计、优化与调试提供标准化模型支持。STEP格式作为国际通用的三维数据交换标准,能够完整保留机器人各部件的几何特征、装配关…...

2025年爬取上市公司高管、董事和监事简历、持股情况、任职情况变动数据(历年)

上市公司的高管数据是公司治理、金融、会计、管理等领域学术研究的核心基础数据,具有极高的研究价值。其在学术论文中的主要研究方向包括:公司治理与内部控制研究、企业战略与绩效研究、资本市场反应与信息传递研究、企业社会责任与可持续发展研究等。 …...

SourceTree 交互式变基(rebase) 合并压缩提交

目录零. 前置条件0.1 💥超级注意事项💥0.2 开启强制推送一. 代码已提交,未推送,交互式变基1.1 通过SourceTree操作1.2 通过Git命令行操作1.2.1 进入命令行终端,指定交互变基版本1.2.2 指定需要处理的提交1.2.3 指定提交…...

2000-2025年区县级数字治理DID

“数字治理指标”是一个基于准自然实验的多期双重差分虚拟变量,旨在精准识别政府数字化转型的政策冲击效应。本数据集以2016年国务院发布的《关于加快推进“互联网政务服务”工作的指导意见》为政策依据,将首批80个“互联网政务服务”试点城市作为处理组…...

Agent的核心技能:工具调用——让AI从“纸上谈兵”到“动手实践”

最近在跟同行交流时,经常被问到一个问题:现在的AI Agent(智能体)到底比传统的聊天机器人强在哪?为什么大家都说Agent是AI的未来?答案其实很简单:Agent学会了使用工具。就像人类从学会使用石头、…...

2059年的地球,我用Python预言给你看!附完整实验结果和可视化界面详解

引言:当代码遇见地球1850年,工业革命的烟囱第一次在英国上空冒起黑烟。那时的人们不会想到,这些烟雾将在地球上空累积成改变气候的“被子”。2026年3月15日,凌晨2点23分,我盯着电脑屏幕上的模拟结果,久久说…...

密码学中的 GPU 加速 AES 算法探索

X00139-密码学利用gpu加速aes算法 源码文件: 测试gpu: test_your_gpu.cu 编译后运行即可 测试计时函数:test_time.cu 编译后运行时需要输入要测试的函数(数字1-5,具体见源码) 生成测试用例:generate_input.…...

OpenClaw“小龙虾”被部分院校禁用,开源AI项目在组织内落地到底难在哪?

先说结论OpenClaw的轻量自托管特性虽吸引个人开发者,但在组织环境中易引发未经审计的数据流动和API暴露风险。院校禁令的核心并非否定AI价值,而是缺乏可控的部署框架和明确的责任边界,导致安全管控失效。个人开发者若想在企业或团队推广类似工…...

ECU CCP协议上位机测试与标定:C#源码的奇妙之旅

ECU ccp协议上位机测试与标定源码,C#源码上位机ECU标定与测量程序。 - ASAM MCD -1MC的 ccp 标定与测量上位机软件,短上传和DAQ功能,支持一维二维等测量和标定,显示控件丰富,具有仪表盘,进度条,…...

【超全】OpenClaw(Clawdbot)小白7分钟云上搭建及使用喂奶级教程

【超全】OpenClaw(Clawdbot)小白7分钟云上搭建及使用喂奶级教程。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为个…...

告别异步等待!UniApp uni.getSystemInfoSync:即时获取设备信息的效率利器

还在为UniApp中设备信息获取的异步回调烦恼?uni.getSystemInfoSync为你带来同步即时解决方案!本文揭示其如何简化初始化流程、优化条件判断,并提供高效的错误处理与缓存策略,让你的跨端开发更加顺畅,快速响应用户设备需…...

DeepSeek App登顶应用商店,背后是产品力的降维打击

在2025年初,全球应用商店的下载榜单迎来了一位“黑马”——DeepSeek App。这款由中国杭州深度求索人工智能基础技术研究有限公司开发的AI应用,不仅在中国区苹果App Store免费榜登顶,更在美国地区超越了ChatGPT、Meta旗下社交媒体平台Threads、…...

YOLO26改进90:全网首发--c3k2模块添加LFEM模块:

论文介绍 摘要 遥感目标检测(RSOD)在复杂视觉环境中面临严峻挑战。航空与卫星图像固有地存在多种局限性,包括低空间分辨率、传感器噪声、目标模糊、低光退化以及部分遮挡。这些退化因素共同削弱了检测模型的特征可区分性,导致三个关键问题:(1)降低对比度,阻碍前景-背景…...

pythonnodejs基于微信小程序的校园兼职报名系统

目录需求分析技术选型系统架构设计核心功能实现数据库设计开发与测试部署与运维代码示例(Node.jsMySQL)注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析 明确校…...

OpenClaw解决飞书 duplicate plugin id detected 问题

1.查看日志 飞书运行过程中产生警告: $ openclaw gateway --port 18789 --verbose Config warnings:\n- plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/home/ubuntu/.openclaw/extensions/feishu/index.…...

EBSD数据转有限元inp格式文件:一场数据格式转换的奇妙之旅

EBSD数据转有限元inp格式文件在材料科学与工程的研究领域中,我们常常会面临将不同类型的数据转换为适合有限元分析的格式,以便更好地模拟材料的行为。今天就来聊聊如何将EBSD(电子背散射衍射)数据转换为有限元inp格式文件。 一、背…...

JAVA 八股

1.1JAVA基础面试1.2JAVA 集合面试1.2.1 HashMap 和 Hashtable:区别、联系与实战解析共同点:底层数据结构(核心):二者底层都基于「数组 链表」(JDK 1.8 后 HashMap 新增红黑树优化)实现哈希表。…...

排序算法通关攻略:比较排序篇(从青铜到王者)

📝 写在前面 排序算法是算法的"Hello World",但很多人学完就忘。今天我用最易懂的方式帮你把冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序这六大比较排序刻进脑子里。 阅读指南:每个算法都包含👇 生活…...

现在最好用的降论文AI率工具是哪个?2026最新9大降AI率工具实测测评!

现在最好用的降论文AI率工具是哪个?2026最新9大降AI率工具实测测评! 写论文的宝子们,是不是快被知网、Turnitin的AI率检测逼疯了?辛辛苦苦写的论文,一查全是“AI疑似”;用普通工具降重,结果AI率…...

分布式架构之CAP与数据库分片架构

CAP定理CAP的特点:CP:强一致性说明AP: 高可用总结: CAP 理论中的 C 在实践中是不可能完美实现的,在数据复制的过程中,节点N1 和节点 N2 的数据并不一致(强一致性)。即使无法做到强一致性&#x…...

本地搜索(@vuepress/plugin-slimsearch替换vuepress-plugin-search-pro)

要实现全局搜索标签(Tag),你需要使用 slimsearch 插件的 customFields 配置项。这个功能允许你将页面中的自定义数据(比如标签、分类、作者等)添加到搜索索引中。 {"vuepress/plugin-slimsearch": "2.0…...

OpenClaw革新制造业:打造工业4.0时代的智能工厂

OpenClaw革新制造业:打造工业4.0时代的智能工厂在制造业转型升级、工业4.0深入推进的背景下,如何实现生产智能化、管理数字化成为制造企业面临的核心课题。OpenClaw 作为领先的 AI 自动化平台,为制造业带来了全新的智能化解决方案。一、生产调…...

YOLO26改进93:全网首发--c3k2模块添加DBlock模块

论文介绍 夜间或暗光环境下的摄影通常因光线昏暗及长时间曝光的常见使用方式而面临噪点、光线不足和模糊等问题。尽管在此类条件下,去模糊与低光照图像增强(LLIE)具有相关性,但现有图像修复方法大多将这两项任务分开处理。 本文提出一种高效且鲁棒的多任务低光照图像修复神…...

JavaSE基础04-基本运算符

运算符详解运算符是Java语言中用于执行数据操作的符号。Java提供了丰富的运算符,按照功能可以分为以下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、三元运算符等。理解每种运算符的用法、注意事项及优先级是编写正确表达式的基础。…...