在linux中如何根据nice值设置任务时间片

在linux中如何根据nice值设置任务时间片,第1张

Linux内核的三种调度方法:

1、SCHED_OTHER 分时调度策略。

2、SCHED_FIFO实时调度策略,先到先服务。

3、SCHED_RR实时调度策略,时间片轮转。

实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。

所有任务都采用linux分时调度策略时即nice时,采用以下方式设置任务时间片。

1,创建任务指定采用分时调度策略,并指定优先级nice值(-20~19)。

2,将根据每个任务的nice值确定在cpu上的执行时间(counter)。

3,如果没有等待资源,则将该任务加入到就绪队列中。

4, 调度程序遍历就绪队列中的任务,通过对每个任务动态优先级的计算(counter+20-nice)结果,选择计算结果最大的一个去运行,当这 个时间片用完后(counter减至0)或者主动放弃cpu时,该任务将被放在就绪队列末尾(时间片用完)或等待队列(因等待资源而放弃cpu)中。

5,此时调度程序重复上面计算过程,转到第4步。

6,当调度程序发现所有就绪任务计算所得的权值都为不大于0时,重复第2步。

通信方式主要有:文件加共享内存,管道,SOCKET。一般都用SOCKET,可移植性强。

调度方式:时间片,优先级,还有就是时间片加优先级混合,默认是第三种。

线程优先级是1~99,值越大优先级越高。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8555247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存