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

如题所述

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步。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-13
nice值是优先级针对用户进程的另一种表示法,nice的取值范围是-20到+19,-20优先级最高,+19最低。
当该进程刚被其父进程fork出来时,是平分其父进程的剩余时间片的。这个时间片执行完后,就会根据它的初始优先级来重新分配时间片,优先级为+19时最低,只分配最小时间片5ms,优先级为0时是100ms,优先级是-20时是最大时间片800ms。本回答被网友采纳

linux进程\/线程调度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)_百度知 ...
所有任务采用分时调度策略(SCHED_OTHER)时,创建任务时指定采用此策略,并设置nice值(范围为-20到19)。系统根据每个任务的nice值确定其在CPU上的执行时间,并将任务加入就绪队列。调度程序遍历就绪队列,通过计算counter+20-nice结果,选择权值最大的任务执行。当时间片用完或主动放弃CPU时,任务将重新...

linux线程怎样调整nice值
Linux内核的三种调度方法: 1、SCHED_OTHER 分时调度策略。 2、SCHED_FIFO实时调度策略,先到先服务。 3、SCHED_RR实时调度策略,时间片轮转。 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定...

Linux系统中的进程调度介绍
1,创建任务时指定调度参数为RR,并设置任务的实时优先级和nice值(nice值将会转换为该任务的时间片的长度)。2,如果没有等待资源,则将该任务加入到就绪队列中。3,调度程序遍历就绪队列,根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的任务使用cpu。4,如果就绪队列中的RR任务时间片为0,则会根据nice值...

如何通过nice和renice命令来设置进程的优先级
既然您已经了解可以更改进程的优先级,您可能需要按照指定的优先级执行命令。为此,请使用 nice 命令。此时,您需要把您要运行的命令作为 nice 的一个参数。而其另一个参数 -n 可用来设置优先级别。默认情况下 nice 将设置优先级为 10。比如,您想要创建一张 Mandrakelinux 安装 CD-ROM 的 ISO 映像...

linux进程的查看和调度
调度器,如同CPU的调度大师,其任务是决定进程何时以及如何在多核心环境中运行,如何在I\/O消耗型(如键盘输入)和CPU消耗型(如Matlab计算)任务间切换,以实现最佳性能。Linux巧妙地采用nice值和实时优先级区分进程优先级:普通进程通过nice值(范围-20至19,数值越小优先级越高)来控制,而实时进程则...

有一个具有两道作业的批处理系统,作业调度采用短作业优先调度算法,进程...
a先到达先运行,运行20分钟后B到达,且优先级高于a,b即抢占cpu,运行过程中c,d到达,但是他们的优先级低于b,所以b一直运行完,此时所有的作业都在等待,现在是短作业优先,即是a先运行,然后是d,最后是c a 进入时间 10::50 结束:11:10 b 进入时间 10::20 结束:10:50 c ...

linux的cfs调度策略中,后启动的程序的线程实际运行时间小,
默认目标延迟设定为20毫秒,每个任务得到的运行时间片为目标延迟的1\/N,这里的N是当前竞争处理器任务的数量。例如,若N为4,每个任务将获得5毫秒的运行时间。时间片的动态性在于它随N变化而变化。N的值是动态的,因为系统中运行的任务数量会随时间变化。进程可以终止、新进程生成、任务被阻塞或解阻塞,...

linux的nice命令的问题
那么这个时候你就会不想要他占用那么资源, 或者说是你想要让别的程序先执行, 那么久需要修改 nice 这个值, 他主要的作用就是修改cpu在该程序上切换的次数 你可以这样想一下,cpu在你的身上切换一次的时候,但是在我nice值小的地方运作10次或者1000次,你说哪个要跑得快一点,这就是nice的作用 ...

Linux 进程调度
SCHED_NORMAL使用完全公平调度算法(CFS),之前的算法直接将nice值对应时间片的长度,而在CFS中,nice值只作为进程获取处理器运行比的权重,每个进程都有一个权重,nice优先级越高,权重越大,表示应该运行更长的时间。Linux的实现中,每个进程都有一个vruntime字段,vruntime是经过量化的进程运行时间,...

linux内核执行进程调度的时机有哪些
时机1,进程要调用sleep()或exit()等函数进行状态转换,这些函数会主动调用调度程序进行进程调度。时机2,由于进程的时间片是由时钟中断来更新的,因此,这种情况和时机4是一样的。时机3,当设备驱动程序执行长而重复的任务时,直接调用调度程序。在每次反复循环中,驱动程序都检查need_resched的值,...

相似回答