在多进程系统中,多个进程“同时”运行,这里并不是真正意义上的同时运行,而是多个进程在时间片上面交换运行(每个进程运行一个时间片,然后切换到下一个时间片运行)。

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;

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐