linux 调度/实时

 

SCHED_FIFO/SCHED_RR/SCHED_OTHERS

实时进程

 /proc/sys/kernel # cat sched_rt_period_us
1000000
/proc/sys/kernel # cat sched_rt_runtime_us
950000

 

sched_rt_runtime_us 表示所有实时进程一次能占有CPU的最长时间,缺省是1秒,当这个时间被用完,他们必须等待下面参数sched_rt_period_us 表示的时间(缺省是0.95s)才能被重新调度。
sched_rt_period_us 表示下一次调度实时进程的时间。
看来这两个参数是在调度实时进程和非实时进程之间做调整和平衡。

介绍一下linux系统中的两个proc文件:/proc/sys/kernel/sched_rt_period_us和/proc/sys/kernel/sched_rt_runtime_us。这两个文件规定了,在以sched_rt_period_us为一个周期的时间内,所有实时进程的运行时间之和不超过sched_rt_runtime_us。这两个文件的默认值是1s和0.95s,表示每秒种为一个周期,在这个周期中,所有实时进程运行的总时间不超过0.95秒,剩下的至少0.05秒会留给普通进程。也就是说,实时进程占有不超过95%的CPU。而在这两个文件出现之前,实时进程的运行时间是没有限制的(就像《linux进程调度浅析》里面描述的那样),如果一直有处于TASK_RUNNING状态的实时进程,则普通进程会一直不能得到运行。相当于sched_rt_runtime_us等于sched_rt_period_us。

 

查看线程/进程优先级操作命令:
修改线程/进程优先级操作命令:

 

你可能感兴趣的:(linux)