免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2122 | 回复: 7

[CPU及多核] 实时调度优先级设置到最高后,系统不响应其他操作 [复制链接]

论坛徽章:
0
发表于 2014-10-18 09:40 |显示全部楼层
测试程序为
#define _GNU_SOURCE
#include <sched.h>
int main()
{
    int prio = 99;
    sched_setscheduler(0, SCHED_FIFO, (struct sched_param*)&prio);
    while(1);
    return 0;
}
(环境:ubuntu ,kernel 3.5.0-17-generic,Intel Core2 双核)启动后系统不响应其他操作,关闭程序都关不掉。如果prio = 50,其他操作就能正常响应。
想请问一下这是什么原因?

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
发表于 2014-10-18 18:46 |显示全部楼层
除了stop class和deadline class的进程没有可以抢占他的,你的“其他操作”应该不会触发这两类的进程。

论坛徽章:
0
发表于 2014-10-18 22:20 |显示全部楼层
回复 2# embeddedlwp

中断也不能中止?其他操作不能中止,那在界面上看到的状况跟死机了一样,这是为什么啊?程序只在一个cpu上运行,还剩下一个cpu,按我的理解其他的程序应该有资源能够运行啊。这个地方不是很了解,谢谢了。

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
发表于 2014-10-19 01:34 |显示全部楼层
“关掉程序”是怎么操作的?

论坛徽章:
0
发表于 2014-10-19 08:43 |显示全部楼层
回复 4# smalloc


   用CTRL+C关闭的,关闭不掉。想通过kill关闭,但是shell没有反应。最后通过把计算机断电关闭的。

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
发表于 2014-10-19 09:54 |显示全部楼层
回复 5# jhl19880722


SCHED_FIFO会一直在运行,除非自己让出CPU,这样检查signal pending的点就都走不到。
你这里设置的是最高优先级的rt,除了stop class, deadline class的进程,其他也抢占不了。


   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2014-10-20 14:13 |显示全部楼层
回复 1# jhl19880722
FIFO的进程,需要自己sleep释放CPU

   

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-10-21 09:12 |显示全部楼层
jhl19880722 发表于 2014-10-18 22:20
回复 2# embeddedlwp

中断也不能中止?其他操作不能中止,那在界面上看到的状况跟死机了一样,这是为什 ...

这个时候应该还能响应中断的,可以使用sysrq组合键打印下各个核上的堆栈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP