linux如何查看实时优先级,Linux进程优先级系统——设置实时进程优先级
前言
最近研发的产品出了点小bug,最后查到根本原因是,其中一个进程A使用基于FIFO的实时进程优先级,而另一个进程B是使用普通调度的进程优先级,而A和B两个进程是互相通信的,进程B会被饿死,而进程A也不能正常工作。分析问题过程中查找了一些资料,以下记录一些特别注意的点。
Linux进程调度的三种策略
(1)SCHED_OTHER,分时调度策略
(2)SCHED_FIFO,实时调度策略,先到先服务
(3)SCHED_RR,实时调度策略,时间片轮转
由于相关内容比较多,本人也末必比别人讲得更清楚,关于进程调度更详细的内容建议读《深入理解Linux内核》,网上的很多内容都是从此而来,也不一定比这本书讲得好。另可参考此链接
https://blog.csdn.net/maximuszhou/article/details/42042161
前面遇到bug的进程A就是使用SCHED_FIFO调度策略的,而进程B没有经过设置,默认是SCHED_OTHER。
如何设置为实时进程
查找资料的时候发现有个链接问,为什么设置FIFO策略,但和预想的不一致。链接在此 http://ask.csdn.net/questions/254095
从代码看是因为设置的方法不对,直接上代码,可以设置进程和线程的调度策略
1 #include
2 #include
3 #include
4 #include
5
6
7 pid_t pid =getpid();8 structsched_param param;9 param.sched_priority = sched_get_priority_max(SCHED_FIFO); //也可用SCHED_RR
10 sched_setscheduler(pid, SCHED_RR, ¶m); //设置当前进程
11 pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶m); //设置当前线程
可以通过top命令查看进程是否成功,如果为"rt"表示是实时进程了。如果不成功,可能是权限问题,需要roo权限。
调整进程优先级
如果不调整调度策略,也可以提升进程优先级,使得进程得到更多的CPU,特别是交互式程序,用户体检更好。代码很简单,只需要调用nice(int n)函数即可。n的有效范围是-20~19,数值越小表示优先级越高。具体内容不在此复制粘贴,还是看《深入理解Linux内核》比较靠谱。
linux如何查看实时优先级,Linux进程优先级系统——设置实时进程优先级相关推荐
- Linux命令查看子进程命令,Linux基础命令——查看进程命令
linux是一个 多进程 多用户的操作系统 ps(显示当前进程的状态) ps -ef 查看当前linux 进程 ps -ef | grep 'mysqld' 过滤mysql的进程 (grep ...
- Linux端口查看及常见Linux端口说明
Linux端口查看及常见Linux端口说明 现在各行业对服务器安全管理特别严格,不管是内网服务还是公网对外开放端口,都要经过严格的安全扫描. 常见linux服务器端口启用查询命令: 该命令可列出系统正 ...
- linux 进程优先级 之设置实时进程 (另一种方式是设置nice值)【转】
转自:https://www.cnblogs.com/jkred369/p/6731353.html Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIF ...
- linux mysql查看所有表_Linux之系统操作命令
------·今天距2020年34天·------ 这是ITester软件测试小栈第84次推文 Linux登录与登出 登录系统 login 登出系统 logout 注销当前用户 exit 清屏命令 c ...
- linux命令查看cpu序列号,Linux下用命令查看CPU ID以及厂家等信息
Linux下用命令查看CPU ID // 获得CPU ID dmidecode -t 4 | grep ID |sort -u |awk -F': ' '{print $2}' // 获得磁盘ID f ...
- linux ps查看完整时间,Linux ps 命令查看进程启动及运行时间
引言 同事问我怎样看一个进程的启动时间和运行时间,我第一反应当然是说用 ps 命令啦. ps aux或ps -ef不就可以看时间吗? ps aux选项及输出说明 我们来重新复习下ps aux的选项,这 ...
- linux下查看bios命令,Linux/centos/ubuntu下查看主板BIOS信息
第一步.要安装dmidecode这个包才能查询主板信息.Centos如下: [root@localhost ~]# yum install dmidecode Loaded plugins: fast ...
- linux命令查看内存数据,Linux 查看内存条数据和大小命令
查看内存条数据和大小命令: sudo dmidecode | grep -A16 "Memory Device$" 需要root 权限.. [life@localhost mp3b ...
- linux 一直查看当前时间,Linux 查看当前时间
一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ...
最新文章
- live联系人导出到CSV乱码
- undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
- QT的QMultiSampleAntiAliasing类的使用
- linux /dev
- Matplotlib 中文用户指南 7.1 交互式导航
- 荣耀折叠屏手机发布日期曝光?将主打年轻用户
- 【Java】用随机数打印hello world
- 美国联邦政府2020财年网络安全预算分析:174亿美元如何分配?
- 李沐 动手学深度学习 第二版
- EMNLP-21-Exploring Task Difficulty for Few-Shot Relation Extraction
- python正弦函数_Python之正弦曲线实现方法分析
- conda 设置清华镜像源_conda使用清华镜像源问题
- 那个单位用计算机系统冷却,消防知识100题
- 计算机视觉最新进展概览2021年10月31日到2021年11月6日
- Linux-CentOS 安装yasm
- 【Day2.2】茶卡盐湖
- MyStack<T>
- Word 同时设置中文字体和英文字体
- 航顺HK HK32F103CBT6 MCU
- 钦州学院计算机视频,(钦州学院数学与计算机科学学院.doc