Linux进程时间片的分配(调度策略和参数)
时间:2019-05-28 15:28 来源:linux.it.net.cn 作者:IT
在多进程系统中,多个进程“同时”运行,这里并不是真正意义上的同时运行,而是多个进程在时间片上面交换运行(每个进程运行一个时间片,然后切换到下一个时间片运行)。
1.调度策略和参数
在Linux系统中,对于每个进程,需要设定一个相应的调度策略和参数,在系统中,处理多进程的方式为“抢占”式的(一个进程使用CPU直至系统抢占CPU给另一个进程使用)
设定和获取进程的调度策略和参数调用如下函数:
#incldude<sched.h>
int sched_setscheduler(pid_t pid,int policy,const struct sched_param *param);
int sched_getscheduler(pid_t pid);
sched_setscheduler 设置进程调度策略和参数
sched_getscheduler 获取进程调度策略和参数
pid 设置的进程ID
policy 所设置的调度策略
SCHED_OTHER 默认的调度策略,按通常方法分配时间片
SCHED_FIFO 对应于先进先出的规则,实时分配时间片
SCHED_RR 轮换规则,实时分配时间片,也可以抢占使用SCHED_OTHER的进程
param 是sched_param的指针,用于保存进程的调度参数
sched_setscheduler调用成功时,返回值为0;失败时,返回值为-1;
sched_getscheduler调用成功时,返回值为一个非负数;失败时,返回值为-1;
(责任编辑:IT)
在多进程系统中,多个进程“同时”运行,这里并不是真正意义上的同时运行,而是多个进程在时间片上面交换运行(每个进程运行一个时间片,然后切换到下一个时间片运行)。 1.调度策略和参数 在Linux系统中,对于每个进程,需要设定一个相应的调度策略和参数,在系统中,处理多进程的方式为“抢占”式的(一个进程使用CPU直至系统抢占CPU给另一个进程使用) 设定和获取进程的调度策略和参数调用如下函数: #incldude<sched.h> int sched_setscheduler(pid_t pid,int policy,const struct sched_param *param); int sched_getscheduler(pid_t pid); sched_setscheduler 设置进程调度策略和参数 sched_getscheduler 获取进程调度策略和参数 pid 设置的进程ID policy 所设置的调度策略 SCHED_OTHER 默认的调度策略,按通常方法分配时间片 SCHED_FIFO 对应于先进先出的规则,实时分配时间片 SCHED_RR 轮换规则,实时分配时间片,也可以抢占使用SCHED_OTHER的进程 param 是sched_param的指针,用于保存进程的调度参数 sched_setscheduler调用成功时,返回值为0;失败时,返回值为-1; sched_getscheduler调用成功时,返回值为一个非负数;失败时,返回值为-1; (责任编辑:IT) |