论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
2 多任务多线程机制的实现
我们设计的对象是双通道和四通道测试的某型医用检验设备。每个通道可以置入样本,设置不同的测试项目,完成测试后输出不同的测试结果和附加的计算结果。
常规的处理方法是这样的:和通道只能测试同一个项目,按统一步骤同步执行各任务的相同阶段,其处理示意如图1。为简化起见,我们用双通道进行说明。
显然,这样做不仅会失去测试的灵活性,例如不能同时测量不项目,不过随意在不同通道中测试不同版本,即使有空余通道也不能在上一样本测试过程中启动下一样本的测试;而且还牺牲效率,浪费时间,因为要等每个阶段最慢的一个处理完才能进入下一阶段。这其实是单任务的多次简单重复,设计也容易。国内很多类似产品采用了这种方案,但我们放弃了。
我们选择了安全并行的设计,即要求所有通道可以完全独立工作;任意启动和停止;彼此没有约速;时间上可以任意重叠;是几个独立的任务,如图2。
这里我们把每一个启动通道进行测试的程序叫做一个任务,把各自任务下的每一个单独的、分开处理的程序段叫做一个线程,每个线程依靠自己的标识来识别。一个通道的测试任务可分为启动、设置、加样品、预温计时、加试剂与搅拌、通道轮流采样、数据处理和作图打印等多个线程。另外,有一个温度的实时监控独立线程,它的优先级要次于通道的测试采样。
整个实现机制可以简单地概括如下:前台通过合理安排中断的响应和服务方式来对多个任务的实时线程进行处理;后台操作主要以循环方式扫描各个任务的线程标识,满足条件的线程被激活予以处理。
限于篇幅,不可能详细介绍整个设计方案,在此只能给出各测试通道工作任务的前台和后台线程划分及流程,供参考。然后,