我有一个有一些软实时要求的项目。我有两个进程(我编写的程序)做一些数据采集。在任何一种情况下,我都需要不断地读取即将进入的数据并对其进行处理。
第一个程序是严重线程化的,第二个程序使用一个应该线程化的库,但是我不知道引擎盖下面发生了什么。每个程序都由用户执行,(默认情况下)我看到每个程序的优先级为20,值很好,为0。每个程序使用大约30%的CPU。
就目前情况而言,这两个进程都必须与一些后台进程进行竞争,我想尽可能地让我的两个程序在CPU上得到最好的尝试。我的主要问题是,我有一个与我交谈的设备,它有一个64字节的硬件缓冲区,如果我不能及时读取,就会出现溢出。我注意到这种情况每2-3个小时运行一次.
根据我的研究(http://oreilly.com/catalog/linuxkernel/chapter/ch10.html),似乎有三种方式来玩弄优先级:
我遇到了以下障碍:
很抱歉提出这个冗长的问题,但我觉得需要一些背景信息。提前谢谢你的帮助。
发布于 2014-02-19 04:02:44
(1) 塞普海
(2)新创建的线程继承其创建线程的调度和优先级,除非在调用赛特赛德帕拉姆 /集调度策略时指示线程属性(例如pthread_create /pthread_create)。
(3)既然你现在不知道是什么原因造成的,任何人都很难有把握地说出来。
https://stackoverflow.com/questions/21870318
复制相似问题