首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SCHED_RR和SCHED_FIFO的区别

SCHED_RR和SCHED_FIFO是Linux内核中用来调度进程的两种调度策略,它们有以下几点区别: 调度方式:SCHED_RR采用轮转调度方式,而SCHED_FIFO则采用先进先出调度方式。...优先级:在SCHED_RR中,每个进程有一个时间片,当时间片用完后,进程会被放到就绪队列的末尾;而在SCHED_FIFO中,进程只有在运行结束或者被阻塞前才会被切换,因此仅当当前进程优先级低于其他进程时才会被阻塞...响应时间:SCHED_RR对于I/O密集型的进程,可以确保系统对于每个请求的响应时间都是相等的;而SCHED_FIFO对于CPU密集型的进程,可以使得它们运行较长时间,减少进程上下文切换的开销。...因此,在选择使用SCHED_RR或SCHED_FIFO时,需要根据具体的情况进行考虑。...如果要求对响应时间有严格的要求,并且进程的执行时间比较短,适合使用SCHED_RR策略;如果对于进程的响应时间要求不那么严格,更注重进程的执行顺序,则适合使用SCHED_FIFO策略。

43330

Linux 线程调度与优先级

blog.chinaunix.net/uid-20788636-id-1841334.html http://blog.chinaunix.net/uid-20788636-id-1841335.html Linux...放在队列尾保证了所有具有相同优先级的RR任务的调度公平 Linux线程优先级设置 首先,可以通过以下两个函数来获得线程可以设置的最高和最低优先级,函数中的策略即上述三种策略的宏定义:  int...下面的这个测试程序,创建了三个线程,默认创建的线程的调度策略是SCHED_OTHER,其余的两个线程的调度策略设置成SCHED_RR。我的Linux的内核版本是2.6.31。...在《深入理解Linux内核》中的第七章进程调度中,是这样描诉的,Linux采取单凭经验的方法,即选择尽可能长、同时能保持良好相应时间的一个时间片。.../prio_test The current user is root SCHED_OTHER SCHED_RR SCHED_RR 1 thread 1 thread 1 thread 1 thread

5.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 内核】进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 | 进程优先级 )

文章目录 一、Linux 内核调度策略 1、SCHED_FIFO 调度策略 2、SCHED_RR 调度策略 二、进程优先级 一、Linux 内核调度策略 ---- Linux 内核调度策略 : SCHED_OTHER...分时调度策略 ; SCHED_FIFO : 实时调度策略 , 先到先服务 ; 进程 一旦 占有 CPU , 就一直运行 , 直到 有更高优先级的进程到达 时才放弃 CPU , 或者 进程自己放弃 CPU ; SCHED_RR...策略 每个 优先级相同的进程 , 都可以执行一个时间片 ; 特别注意 : 进程的优先级计算出的 调度权重 是可以修改的 , 由开发者确定 ; 参考 【Linux 内核】调度器 ⑨ ( Linux 内核调度策略...在没有高优先级进程的前提下 , 只能 等待其它进程主动释放 CPU 资源 ; SCHED_FIFO 调度策略中 , 被 调度器 调度运行后的 进程 , 其运行时长不受限制 , 可以运行任意长的时间 ; 2、SCHED_RR...调度策略 SCHED_RR 是 " 实时进程调度策略 " , 使用的是 时间片轮转 机制 , 对应的 时间值 在 运行时会 减少 ; 进程 使用完 CPU 时间片 后 , 会加入到 与 进程优先级

4.6K20

操作系统 | 源码分析

操作系统实验之源码分析 1.1 实验目的 通过阅读源代码,分析研究linux的进程调度策略和算法 1.2 实验内容 完成操作系统的源码分析 1.3 实验步骤 实验步骤: 1.在网站下载linux-2.4.22...Source Insight 4.0打开查看sched.h的调度函数schedule(),并将全部代码导入如图6-2. 3.进程调度队列的组织如图6-3. 4.三种调度类型(SCHED_FIFO、SCHED_RR...它与优先级的关系如图6-9. 7.对实时进程和多CPU的支持如图6-10. 8.评价linux的调度策略,提出改进意见如图6-11. 1.4 实验过程 ​​ 图6-1 ​​ 图6-2 ​​ 图6...​​ 图6-4 ​​ 图6-5 ​​ 图6-6 ​​ 图6-7 ​​ 图6-8 ​​ 图6-9 ​​ 图6-10 ​​ 图6-11 1.5 心得体会 通过此次实验,我将近花了一周的时间去弄懂操作系统linux...用到了时间片外,其余两种调度并未直接使用时间片,所以对此可以将该判断专门放入SCHED_RR调度,对于SCHED_FIFO和SCHED_OTHER就无需操作此步,程序得以加快速度。

10310

Linux 内核】进程优先级与调度策略 ② ( 获取调度策略对应的进程优先级函数 | sched_get_priority_max 函数 | sched_get_priority_min 函数 )

文章目录 一、获取进程优先级函数 二、调度策略参数 三、进程优先级说明 在上一篇博客 【Linux 内核】进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 |...、调度策略参数 ---- 上述两个函数 , 传入的调度策略参数 , 在 Linux 内核源码中的 linux-5.6.18\include\uapi\linux\sched.h 头文件中定义 ; /*...* Scheduling policies */ #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define...、进程优先级说明 ---- SCHED_OTHER 进程调度策略 不支持进程优先级机制 ; SCHED_FIFO 和 SCHED_RR 进程调度策略 , 支持 进程优先级机制 , 进程优先级取值 1...~ 99 , 优先级数值越大 , 优先级越高 ; SCHED_FIFO 、SCHED_RR 实时调度策略 , 进程优先级最大值为 99 SCHED_NORMAL、SCHED_BATCH、SCHED_IDLE

1.1K40

linux 系统调度器(四) -- 利用 chrt 命令查询与修改进程调度器

引言 上一篇文章中,我们介绍了 linux 调度器的演进: linux 进程调度器(下) -- 调度器演进 在上一篇文章中,我们知道,到 Linux 2.6.23 版本后,linux 实际上维护了一组调度器来实现不同的调度需要...,它们被分为了四层: DL 调度器:采用 sched_deadline 策略; RT 调度器:采用 sched_rr 和 sched_fifo 策略; CFS 调度器:采用 sched_normal 和...那就需要使用 linux 提供的十分有用的工具 -- chrt 来实现了,本文我们就来介绍一下这个命令的使用。...:使用 RT 调度器的 sched_rr 策略,采用轮询机制实现调度算法; SCHED_OTHER:使用 CFS 调度器的 sched_other 策略,使用默认的 time_sharing 计划算法;...通过 chrt -m 命令,可以查看 chrt 不同的调度策略下,用户可选的优先级范围: priority 就是能够在一定程度上影响调度优先级的 nice 值,尽管只有 SCHED_FIFO 和 SCHED_RR

3.5K30

Linux 内核】线程调度示例一 ④ ( pthread_attr_init 初始化线程属性对象 | 完整代码示例 )

文章目录 一、pthread_attr_init 初始化线程属性对象 二、完整代码示例 一、pthread_attr_init 初始化线程属性对象 ---- 在之前的博客 【Linux 内核】线程调度示例一...① ( 获取线程调度策略 | 断言 assert | 代码示例 ) 【Linux 内核】线程调度示例一 ② ( 获取指定调度策略的最大和最小优先级 | 代码示例 ) 【Linux 内核】线程调度示例一...:\n"); set_thread_policy(&p_attr, SCHED_RR); // 销毁 线程属性 结构体 ret = pthread_attr_destroy(...: printf("SCHED_RR 类型调度策略\n"); break; case SCHED_OTHER: printf("SCHED_OTHER...:\n"); set_thread_policy(&p_attr, SCHED_RR); // 销毁 线程属性 结构体 ret = pthread_attr_destroy(

55830

Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )

文章目录 一、进程分类 ( 实时进程 | 普通进程 ) 二、Linux 内核调度策略 1、SCHED_FIFO 调度策略 2、SCHED_RR 调度策略 三、实时调度实体 sched_rt_entity...| 进程分类 | 实时进程 | 普通进程 | 进程优先级数值 | 0 ~ 99 实时进程 ) 博客 ; 二、Linux 内核调度策略 ---- 在 【Linux 内核】调度器 ⑨ ( Linux 内核调度策略...在没有高优先级进程的前提下 , 只能 等待其它进程主动释放 CPU 资源 ; SCHED_FIFO 调度策略中 , 被 调度器 调度运行后的 进程 , 其运行时长不受限制 , 可以运行任意长的时间 ; 2、SCHED_RR...调度策略 SCHED_RR 是 " 实时进程调度策略 " , 使用的是 时间片轮转 机制 , 对应的 时间值 在 运行时会 减少 ; 进程 使用完 CPU 时间片 后 , 会加入到 与 进程优先级...内核源码中通过 sched_rt_entity 结构体 表现 , sched_rt_entity 结构体 , 定义在 Linux 内核源码的 linux-5.6.18\include\linux\sched.h

1.1K20

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

文章目录 一、Linux 内核调度策略源码 二、SCHED_NORMAL 策略 三、SCHED_FIFO 策略 四、SCHED_NORMAL 策略 五、SCHED_BATCH 策略 六、SCHED_IDLE...策略 七、SCHED_DEADLINE 策略 一、Linux 内核调度策略源码 ---- " Linux 应用进程 " 可以根据 " Linux 内核 " 提供的 " 调度策略 " 选择 " 调度器..." ; Linux 内核 " 调度策略 " 源码在 linux-5.6.18\include\uapi\linux\sched.h 头文件中 , /* * Scheduling policies *.../ #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 /* SCHED_ISO...调度策略 ; 该策略 不涉及 CPU 时间片机制 ( 分时复用机制 ) , 在没有高优先级进程的前提下 , 只能 等待其它进程主动释放 CPU 资源 ; 四、SCHED_NORMAL 策略 ---- SCHED_RR

1.4K20

linux线程调度策略

目录 linux线程调度策略 linux线程调度策略 这是一篇非常好的关于线程调度的资料,翻译自shed 从Linux 2.6.23开始,默认的调度器为CFS,即"完全公平调度器"(Completely...SCHED_RR: Round-robin scheduling(轮询调度) SCHED_RR对SCHED_FIFO做了简单增强。...除每个线程仅允许运行在一个最大时间段下外,SCHED_FIFO中的所有规则都适用于SCHED_RR。如果一个SCHED_RR线程已经运行了等于或大于该最大时间段时,该线程会被放置到其优先级列表的末尾。...从Linux 2.6.12开始,RLIMIT_RTPRIO(可以使用ulimit -e设置)资源限制定义了非特权线程设置SCHED_RR 和SCHED_FIFIO策略的静态优先级的上限。...从Linux 2.6.25开始,引进了其他技术手段来处理实时(SCHED_FIFO,SCHED_RR)和deadline(SCHED_DEADLINE)进程。

4.6K30

CPU进程优先级

二.NICE值 nice值应该是熟悉Linux/UNIX的人很了解的概念了,我们都知它是反应一个进程“优先级”状态的值,其取值范围是40-20至19-0,一共40个级别。...在原来使用O1调度的Linux上,我们还会把nice值叫做静态优先级,这也基本符合nice值的特点,就是nice值设定好了之后,除非我们用renice去改它,否则它是不变的。...但是这里并没有说明的是,这五种调度策略是分别给两种进程用的,对于实时进程可以用的调度策略是:SCHED_FIFO、SCHED_RR,而对于非实时进程则是:SCHED_OTHER、SCHED_OTHER、...实时进程可以指定的优先级范围为1-99,将一个要执行的程序以实时方式执行的方法为: 刚才说过,SCHED_RR和SCHED_FIFO都是实时调度策略,只能给实时进程设置。...SCHED_RR:以时间片轮转的方式对相同优先级的多个进程进行处理。时间片长度为100ms。

2.9K30

图解Linux进程调度(二)

想一想,进程调度其实是一个非常复杂的问题,想使用一种算法来实现良好的进程调度是不可能的,Linux内核实现了好几种调度算法。...内核提供了以下几种调度策略policy 表示该进程采用哪种调度策略,内核提供了以下几种调度策略: #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR...2 #define SCHED_BATCH 3 #define SCHED_IDLE 5 #define SCHED_DEADLINE 6 Linux内核的进程大概可分为两类,一类是普通进程...,一类是实时进程 其中属于实时进程的调度策略是: SCHED_FIFO SCHED_RR SCHED_DEADLINE 属于普通进程的调度策略是: SCHED_NORMAL SCHED_BATCH SCHED_IDLE...如果进程采用 SCHED_FIFO 或者 SCHED_RR 调度策略,那么优先级就等于 99 - rt_priority,rt_priority 的范围是0~99。

1.5K10

Linux进程调度_linux进程的查看和调度

Linux 系统为了提升响应的速度,倾向于优先调度 I/O 消耗型。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程的优先级越小 任何实时进程的优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总的调度结构...SCHED_RR : 与 SCHED_FIFO 大致相同,只是 SCHED_RR 级的进程在耗尽其时间后,不能再执行,需要接受 CPU 的调度。...当 SCHED_RR 耗尽时间后,同一优先级的其他实时进程被轮流调度。 上述两种实时算法都是静态的优先级。...Linux 调度时机 ---- 一、进程切换 从进程的角度看,CPU是共享资源,由所有的进程按特定的策略轮番使用。

20.5K10

Linux进程调度学习!

Linux 系统为了提升响应的速度,倾向于优先调度 I/O 消耗型。...Linux 调度算法: Linux 中有一个总的调度结构,称之为 调度器类(scheduler class),它允许不同的可动态添加的调度算法并存,总调度器根据调度器类的优先顺序,依次去进行调度器类的中的进程进行调度...SCHED_RR :与 SCHED_FIFO 大致相同,只是 SCHED_RR 级的进程在耗尽其时间后,不能再执行,需要接受 CPU 的调度。...当 SCHED_RR 耗尽时间后,同一优先级的其他实时进程被轮流调度。 上述两种实时算法都是静态的优先级。...Linux 调度时机: 1、进程切换: 从进程的角度看,CPU是共享资源,由所有的进程按特定的策略轮番使用。

1.8K30
领券