首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展Linux延迟

扩展Linux延迟
EN

Stack Overflow用户
提问于 2014-01-20 23:49:57
回答 1查看 100关注 0票数 0

你认为在Linux系统中延迟50毫秒是正常的吗?

我有一个有很多线程的程序,一个线程用马达和光电池控制物体的运动。

我做了很多事情,以获得最小的延迟,但总是得到50毫秒,这会导致一个位置错误的对象。

我所做的事情:-不错的功能到-20 -线程优先级的光电控制线程: SCHED FIFO,99 -内核配置: CONFING_PREEMPT=y - mlockall (MCL_CURRENT \ MCL_FUTURE);

很多时候,我失去了50毫秒等待一个光电池。我认为问题不是我的另一个线程,而是内核中的进程。

可定位是否减少了这个延迟?知道谁能得到这50毫秒的额外信息吗?

控制光电池的线程产生许多“读取”功能。这会产生问题吗?

/**********/

现在的情况是:只有一个线程运行一个无限空的循环,只在循环结束时寻找开始的时间。没有对磁盘的访问,没有对GPIO的访问,没有串口,什么都没有。这个循环花了50毫秒的时间。

我没有设置cpuaffinity,我的处理器只有一个核。

EN

回答 1

Stack Overflow用户

发布于 2014-01-22 11:47:42

我一直在我的程序中做测试。这是主函数中的代码,在程序显示线程之前,这会导致de50mseg延迟:

代码语言:javascript
复制
struct sched_param lsPrio;

lsPrio.sched_priority = 1;
if (sched_setscheduler (0, SCHED_FIFO, &lsPrio) != 0)
    printf ("FALLO sched_set\n");

如果我注释这一行,延迟将减少约1 mseg。

为什么这一行会导致延迟?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21246497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档