前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】调度器 ⑨ ( Linux 内核调度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 )

【Linux 内核】调度器 ⑨ ( Linux 内核调度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 )

作者头像
韩曙亮
发布2023-03-30 13:57:49
1.5K0
发布2023-03-30 13:57:49
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、Linux 内核调度策略源码


" Linux 应用进程 " 可以根据 " Linux 内核 " 提供的 " 调度策略 " 选择 " 调度器 " ;

Linux 内核 " 调度策略 " 源码在 linux-5.6.18\include\uapi\linux\sched.h 头文件中 ,

代码语言:javascript
复制
/*
 * Scheduling policies
 */
#define SCHED_NORMAL		0
#define SCHED_FIFO		1
#define SCHED_RR		2
#define SCHED_BATCH		3
/* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE		5
#define SCHED_DEADLINE		6

/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */
#define SCHED_RESET_ON_FORK     0x40000000
在这里插入图片描述
在这里插入图片描述

注意 : 停机调度器 和 限期调度器 只能在内核中使用 , 应用进程无法使用这两个调度器 ;

二、SCHED_NORMAL 策略


SCHED_NORMAL 是 " 普通进程调度策略 " , " 进程 " 选择 " CFS 调度器 " 进行调度运行 ;

三、SCHED_FIFO 策略


SCHED_FIFO 是 " 实时进程调度策略 " , 这是一种 先进先出 ( First In First Out ) 调度策略 ;

该策略 不涉及 CPU 时间片机制 ( 分时复用机制 ) , 在没有高优先级进程的前提下 , 只能 等待其它进程主动释放 CPU 资源 ;

四、SCHED_NORMAL 策略


SCHED_RR 是 " 实时进程调度策略 " , 使用的是 时间片轮转 机制 ;

进程 使用完 CPU 时间片 后 , 会加入到 与 进程优先级 相应的 执行队列 的 末尾 ;

同时 , 释放 CPU 资源 , CPU 时间片会被轮转给 相同进程优先级 的 其它进程 ;

五、SCHED_BATCH 策略


SCHED_BATCH 是 " 普通进程调度策略 " , 该策略 可以进行 批量处理 , 令 " 进程 " 选择 CFS 调度器 进行 进程调度 ;

六、SCHED_IDLE 策略


SCHED_IDLE 是 " 普通进程调度策略 " , 令 " 进程 " 以 最低优先级 选择 CFS 调度器 进行 进程调度 ; 完全公平调度器 ;

七、SCHED_DEADLINE 策略


SCHED_DEADLINE 是 " 限期进程调度策略 " , 令 " 进程 " 选择 Deadline 调度器 进行 进程调度 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Linux 内核调度策略源码
  • 二、SCHED_NORMAL 策略
  • 三、SCHED_FIFO 策略
  • 四、SCHED_NORMAL 策略
  • 五、SCHED_BATCH 策略
  • 六、SCHED_IDLE 策略
  • 七、SCHED_DEADLINE 策略
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档