博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程优先级和调度
阅读量:6339 次
发布时间:2019-06-22

本文共 1788 字,大约阅读时间需要 5 分钟。

nice的值范围-20~19(数字越小,优先级越高)

//获取和修改优先级#include
//which参数确定who参数如何被解释,该值取值如下PRIO_PROCESS 操作进程id为who的进程,如果who为0,使用调用者的进程idPRIO_PGRP 操作进程组id为who的进程组的所有成员,如果who为0,那么使用调用者的进程组PRIO_USER 操作所有真实有胡id为who的进程,如果who为0,使用调用者的真实用户idint getpriority(int which,id_t who); //可能在成功返回时返回-1,所以调用之前将errno设置为0,接着检查调用后返回值为-1并且errno不为0才能确认调用成功int setpriority(int which,id_t who ,int pro); //pro如果超出nice返回,直接设置nice为边界值//SCHED_RR策略//优先级相同的进程以循环时间分享的方式执行,进程每次使用cpu的时间是一个固定长度的时间片//高优先级进程总是优先于低优先级进程//SCHED_FIFO策略//先进先出,不存在时间片,一旦一个SCHED_FIFO进程获取cpu控制权之后,她就会一直执行,直到自动放弃cpu或者终止或者被一个优先级更高的进程抢占了//实现优先级范围,返回一个调度策略的优先级取值范围#include
int sched_get_priority_min(int policy);int sched_get_priority_max(int policy);//policy指定需获取哪种调度策略的信息,这个参数一般是SCHED_RR或者SCHED_FIFO//修改调度策略和优先级int sched_setscheduler(pid_t pid,int policy,const struct sched_param *param);//如果pid为0,那么将修改调用进程的特性struct sched_param{//指定调度策略,对于SCHED_RR和SCHED_FIFO来说,这两个字段取值必须位于sched_get_priority_min()和sched_get_priority_max()规定的范围内//对于其它策略来讲,优先级必须为0int sched_priority; };//修改一个进程的调度策略优先级int sched_setparam(pid_t pid,const struct sched_param *param);//获取进程的调度策略和优先级int sched_getscheduler(pid_t pid);int sched_getparam(pid_t pid,struct sched_param *param);//释放cpu//如果存在与调用进程的优先级相同的其他排队的可运行进程,那么调用进程会被放在队列的队尾,队列中队头的进程将会被调度使用cpuint sched_yield(void);//找出SCHED_RR进程在每次被授权使用cpu时分配到的时间片的长度int sched_rr_get_interval(pid_t pid,struct timespec *tp);//设置pid制定的进程的cpu亲和力,如果pid为0,那么调用进程的cpu亲和力就会被改变int sched_setaffinity(pid_t pid,size_t len,cpu_set_t *set);

这里写图片描述

cpu_set_t set;CPU_ZERO(&set);CPU_SET(1,&set);CPU_SET(2,&set);CPU_SET(3,&set);sched_setaffinity(pid,CPU_SETSIZE,&set);//获取pid指定的进程的cpu亲和力掩码,如果pid为0,那么就返回调用进程的cpu亲和力掩码int sched_getaffinity(pid_t pid,size_t len,cpu_set_t *set);

转载于:https://www.cnblogs.com/biaopei/p/7730605.html

你可能感兴趣的文章
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
字符串与整数之间的转换
查看>>
断点传输HTTP和URL协议
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
mysql服务器的主从配置
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>
js作用域链
查看>>
java中如何选择Collection Class--java线程(第3版)
查看>>
为运维人员插上腾飞更远的翅膀!
查看>>
Word 2003中编辑标记与格式标记大讨论
查看>>
从国内向海外转移域名经验谈
查看>>
浅谈apache与tomact的整合
查看>>