如何避免任务耗时处理?

时间:2016-02-10 09:11:29

标签: c linux multithreading sockets software-design

我有一个旧的嵌入式系统模型,有linux线程 - 1个进程。每个线程或任务通过发布事件相互通信。发布事件后,线程将从sockbuffer中读取数据。有时,这些数据可能太多了。因此,任务将忙于处理读取sockbuffer。此外,还有一项特殊任务 - 将整个用户输入历史记录记录到RAM磁盘文件中。但是,只有一个用户单击“保存”按钮才会进入操作。

条件 - 我们无法控制要处理的数据量。这可能很小或太大。其次,这是一个嵌入式系统,因此我们通过检查任务是否能够对看门狗进行检查来不断检查健康状况。

观察 -

  1. 如果数据太多,那么sock缓冲区读取将需要一些时间。因此,它可能导致其他任务挨饿,因此会导致崩溃。

  2. 如果用户历史记录太多,那么即使在ram磁盘上写入整个历史记录(最大值)也会消耗时间。因此,所有这些将导致其他任务挨饿,即无法拍摄wd。因此,它将导致崩溃。

  3. 问题 - 我不能重新设计这个软件,因为它已经很久了。只是,我可以做一些手术或智能代码来避免这些问题。解决这些设计问题的最佳方法是什么?

    - >我正在使用C,Linux。

0 个答案:

没有答案