FreeRTOS,Linux系统,的调度原理,与区别,以及Linux不同场景,调度方式选择(一)

一、FreeRTOS,与Linux的调度区别

freertos是个微型内核,Linux是个复杂的内核。rtos抢占调度原理图
在这里插入图片描述

抢占式(Preemptive)调度与时间片轮询(Time-Slicing)是相关但不同的概念,
二者共同构成了现代操作系统调度机制的重要部分,但核心目标和作用场景有显著区别。

1、抢占式调度的核心:强制剥夺 CPU 使用权

抢占式调度的核心是:当更高优先级的任务就绪时,操作系统可以强制暂停当前正在运行的任务(无论其是否自愿放弃 CPU),
将 CPU 使用权分配给高优先级任务。

触发条件:主要是 “优先级抢占”—— 高优先级任务就绪时,立即打断低优先级任务(即使低优先级任务仍在执行,且未用完时间片)。

核心目的:保证高优先级任务的响应速度,避免低优先级任务长时间占用 CPU 导致高优先级任务延迟。

示例:实时系统中,紧急任务(如火灾报警处理)就绪时,无论当前任务(如文件备份)是否执行完毕,都会被强制暂停,让紧急任务先运行

2、时间片轮询的核心:公平分配 CPU 时间

时间片轮询是针对同优先级任务的调度策略:每个任务被分配一段固定的 CPU 时间(时间片),
当时间片用完后,操作系统会暂停该任务,切换到下一个同优先级任务运行。

触发条件:时间片耗尽,或任务主动放弃 CPU(如等待 I/O)。

核心目的:保证同优先级任务之间的公平性,避免单个任务长时间独占 CPU,适合多用户、多任务的通用场景(如桌面、服务器)。

示例:桌面系统中,浏览器和音乐播放器优先级相同,每个任务轮流获得 10ms 的 CPU 时间,用户会感觉两者 “同时运行”。

**3、二者的关系:互补而非等同 **

抢占式调度可以包含时间片轮询:
在抢占式系统中,对于同优先级任务,通常会用时间片轮询保证公平性;
而对于不同优先级任务,则通过优先级抢占保证高优先级任务优先执行。

例如:Linux 的 CFS 调度器(完全公平调度器)是抢占式的,既支持不同优先级任务的抢占(高优先级打断低优先级),
也通过动态时间片(根据优先级调整时间片长度)实现同优先级任务的公平调度。

时间片轮询不一定是抢占式的:
在早期的非抢占式系统(如某些老式嵌入式系统)中,也可能存在时间片轮询,
但只有当任务主动放弃 CPU 或时间片用完时才会切换,不支持高优先级任务强制打断。
例如,任务 A(低优先级)正在执行,即使高优先级任务 B 就绪,也必须等 A 的时间片用完或 A 主动让出 CPU,B 才能运行 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值