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”多任务处理.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...