能源控制器信号量死锁问题分析及解决方案
2021-12-17张晨宏邬科科
机电信息 2021年29期
张晨宏 邬科科


摘 要:随着我国智能电网的快速发展,传统采集设备已无法完全满足当前需求。配电台区是营销与生产的交汇点,传统模式下,营销与生产双方需要在台区侧分别安装集中器和配变终端(TTU)两种设备,但仍存在诸多问题。在此背景下,融合了Ⅰ型集中器、专变终端、二次回路巡检仪和配电终端功能的能源控制器(ECU)应运而生。但在该全新产品开发过程中,由于技术新、难点多,各类问题频出,例如液晶显示菜单无序切换问题等,究其根本,实为信号量死锁导致。基于此,提供了一套能源控制器信号量死锁的解决方案。
关键词:能源控制器;信号量;死锁
0 引言
能源控制器具备数据采集、智能费控、时钟同步、精确计量、回路状态监测、停电事件上报等多种功能[1],不同功能从软件层面被划分成了不同的App。当前能源控制器液晶显示菜单存在无序切换的问题,通过分析发现根源是硬件接口层使用的信号量在第三方容器App中失效。进一步深挖后发现,目前使用的信号量机制中,当进程在持有锁期间终止时,会造成信号量死锁,导致其他进程异常,仅能通过重启恢复。
本文通过对死锁问题的深度分析,提出一种将线程锁与进程锁组合的方式,来实现多线程和多进程下都适用的信号量,从而避免死锁问题。
1 信号量死锁问题概述
1.1 问题背景
能源控制器应用容器技术隔离运行多个App,这就对多进程间资源共享的同步措施提出了更高的要求。……
登录APP查看全文
