Linux进程的调度策略

Linux进程的调度策略分为以下几种:

 

#define SCHED_OTHER 0

#define SCHED_FIFO 1

#define SCHED_RR 2

#define SCHED_BATCH 3

#define SCHED_IDLE 5

 

可以把它们分为两大类:

实时进程

- SCHED_FIFOSCHED_RR

非实时进程

- SCHED_OTHERSCHED_BATCHSCHED_IDLE

SCHED_OTHER又叫交互式进程,主要处理I/O任务,例如鼠标键盘操作

SCHED_BATCHSCHED_IDLE又叫批处理进程,主要处理优先级不高的任务,例如文本编辑程序和图形应用批处理程序

SCHED_FIFOSCHED_RR主要处理对实时性要求很高的的任务,例如程序语言的编译程序, 数据库搜索引擎以及科学计算实时进程

 

- 进程创建时,默认是SCHED_ OTHER

- 常用的是前三种

- 对于实时进程linux采用FIFO或者Round Robin调度策略,由实时优先级(0-99 99最高)决定调度权值

- Linux分不清SCHED_OTHER、SCHED_BATCH和SCHED_IDLE,把它们统一归类为非实时进程,传统的linux调度器会提高交互式进程-的优先级,最新的CFS和RSDL等新的调度器则是完全公平的策略。

- FIFO进程运行前,实时优先级更高的先执行,FIFO进程开始执行后除非有优先级更高的实时进程就绪、或者当前FIFO进程主动休眠、或- 者FIFO进程执行完毕,否则该进程将会一直占用cpu

- RR进程运行前,实时优先级最高的先执行,执行的时间片由RR进程的nice值(-20 – 19 -20最高 默认为0)决定,RR进程开始执行后时间片到0了则执行下一个RR进程。所有RR进程可以自行休眠或者被更高优先级的实时进程锁抢占。

- 所有的实时进程都可以随时抢占非实时进程。

 

相关函数:

pthread_attr_setschedpolicy()设置进程调度策略

pthread_attr_setschedparam()设置进程优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值