C程序在Linux上运行时应该在空闲时间做什么?

前端之家收集整理的这篇文章主要介绍了C程序在Linux上运行时应该在空闲时间做什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经为微控制器编写了许多C程序,但从来没有一个在像 linux这样的操作系统上运行的程序. linux如何确定为我的应用程序提供多少处理时间?当我有空闲时间告诉操作系统去做其他事情并稍后再回到我身边以便其他进程也有时间运行时,我需要做些什么吗?或者OS是否只是自动执行此操作?

编辑:添加更多详细信息
我的c程序有一个任务调度程序.有些任务每100毫秒运行一些,有些任务每50毫秒运行一次,依此类推.在我的主程序循环中,我调用ProcessTasks来检查是否有任何任务准备好运行,如果没有准备就绪它会调用空闲函数.空闲功能除了它之外什么都不做,所以我可以用Ocope窥镜切换GPIO引脚并监视空闲时间…或者如果我愿意的话.所以也许我应该在这个空闲函数调用sched_yield()???

解决方法

How does linux decide how much processing time to give my application

每个调度程序都有自己的想法.有些人奖励你没有用完你的份额,有些掷骰子试图预测你会做什么等等.在我看来你可以认为它是魔术.在我们进入循环之后,调度程序神奇地决定我们的时间到了等等.

Is there something I need to do when I have idle time to tell the OS
to go do something else

你可能会打电话给sched_yield.我从来没有打电话给它,也不知道为什么会有人想要的原因.该手册确实说它可以改善性能.

Or does the OS just do that automatically

它肯定会.这就是为什么他们称之为“preemptive”多任务处理.

原文链接:https://www.f2er.com/c/111749.html

猜你在找的C&C++相关文章