CN112068963B - 一种嵌入式系统分布式调度系统 - Google Patents

一种嵌入式系统分布式调度系统 Download PDF

Info

Publication number
CN112068963B
CN112068963B CN202010965175.1A CN202010965175A CN112068963B CN 112068963 B CN112068963 B CN 112068963B CN 202010965175 A CN202010965175 A CN 202010965175A CN 112068963 B CN112068963 B CN 112068963B
Authority
CN
China
Prior art keywords
client
task
module
information
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010965175.1A
Other languages
English (en)
Other versions
CN112068963A (zh
Inventor
朱宗卫
章博
苑福利
席兴宇
王延龄
朱骁睿
凌康志
周学海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202010965175.1A priority Critical patent/CN112068963B/zh
Publication of CN112068963A publication Critical patent/CN112068963A/zh
Application granted granted Critical
Publication of CN112068963B publication Critical patent/CN112068963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种嵌入式系统分布式调度系统,所述分布式调度系统设置于分布式嵌入式系统,所述分布式嵌入式系统包括服务端和至少1个客户端,所述服务端和客户端通过socket进行通信;该分布式调度系统的服务端包括服务端任务管理模块、服务端异常管理模块和基础服务模块,该分布式调度系统的客户端包括客户端任务处理模块、客户端异常管理模块和网络服务模块。可以基于该分布式系统进行业务端的开发,利用各个异构的嵌入式系统,共同合作完成一个计算任务;通过异常模块用于检测各个节点的状态信息和异常情况,并对出现的异常进行处理可以自动恢复,开发一个上位机,并设计一套协议和机制来传输状态信息进行可视化显示。

Description

一种嵌入式系统分布式调度系统
技术领域
本发明属于嵌入式系统技术领域,具体地涉及一种嵌入式系统分布式调度系统。
背景技术
嵌入式系统在于结合微处理机或微控制器的系统电路与其特定的软件,以达到系统运行性能成本的最高比,比如现在的移动电话、电视、冰箱等都属于嵌入式系统,但原本的嵌入式系统只负责单一的计算,不过由于系统越来越复杂,需要多个嵌入式系统共同运行,所以产生了分布式嵌入式系统。
如图1是一个分布式嵌入式系统平台架构图,硬件平台包括上注FPGA、主FPGA和4个1H8硬件开发平台(以下简称1H8)。其中主FPGA采用xilinx公司运行速率高达1.5GHz的四核
Figure BDA0002682019010000011
Cortex-A53平台以及大规模16nm FinFET+制造工艺的可编程逻辑处理器单元相结合的FPGA芯片,具有丰富的外设接口,并且拥有航空航天及国防应用需求的专门处理单元,使用灵活,可扩展性比较好。另外主FPGA分为两部分,一部分是可编程逻辑处理单元(简称PL),另一部分是包含四核ARM处理器的控制单元(简称PS)。而1H8是以寒武纪1H8智能终端处理器为核心的人工智能计算开发平台,寒武纪1H8智能终端处理器是以寒武纪1H8 IP核为核心计算单元,以ARM Cortex A7为主控单元的人工智能处理器芯片。其中还包括一些其他资源,比如网口、串口、Flash等。
分布式嵌入式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的嵌入式计算节点组成的系统。分布式嵌入式系统的出现是为了用廉价的、普通的机器完成单个嵌入式计算机无法完成的运算、存储任务,其目的是利用更多的机器,处理更多的数据。分布式嵌入式系统需要大量的机器协作,面临诸多的挑战:
1、异构的机器与网络:分布式嵌入式系统中的机器,配置不一样,比如上述举例的分布式系统,包含有FPGA、ARM、1H8等多种异构计算平台,其上运行的服务也可能由不同的语言、架构实现,因此处理能力也不一样;节点间可能通过网络、串口来连接通信,采用不同的通信方式有不同的传输速率、延时和丢包率等。怎么保证各个嵌入式设备齐头并进,共同完成目标,这是个不小的挑战。
2、普遍的节点故障:对于单个嵌入式设备单个节点出故障的概率比较低,但是节点数目达到一定的规模后,出故障的概率就变高了。分布式嵌入式系统需要保证在故障发生的时候,系统仍然是可用的,这就需要系统能够监控节点的状态、能够检测异常的发生以及异常的自动恢复处理,这是本发明的难点以及需要解决的问题。
3、可视化的显示和控制:对于分布式嵌入式系统,由于有大量分布式计算节点,有时为了能够获知每个节点的运行状态和是否异常,甚至有时需要手动控制某些节点的运行和暂停,为了满足这些需求,需要一套协议和机制来获取每个节点的状态信息和传输控制命令等,这是本发明中软件开发需要考虑的一个问题。
发明内容
针对上述存在的技术问题,本发明目的是:提供了一种嵌入式系统分布式调度系统,充分利用各个异构的嵌入式系统,共同合作完成一个计算任务,系统能够监控节点的状态、能够检测异常的发生以及异常的自动恢复处理。
本发明的技术方案是:
一种嵌入式系统分布式调度系统,所述分布式调度系统设置于分布式嵌入式系统,所述分布式嵌入式系统包括服务端和至少1个客户端,所述服务端和客户端通过socket进行通信;该分布式调度系统的服务端包括服务端任务管理模块、服务端异常管理模块和基础服务模块,该分布式调度系统的客户端包括客户端任务处理模块、客户端异常管理模块和网络服务模块;
所述服务端任务管理模块,包括:
图片接收模块,用于接收图片并放入图片缓存队列;
图片处理模块,用于对接收的图片进行处理;
任务代理管理模块,用于等待客户端任务处理模块的连接;创建任务代理线程;定期检查共享内存中客户端异常状态,若出现异常则将对应客户端任务队列中的任务标记为未完成,重新塞回待处理图片缓存队列,终止对应任务代理线程;
任务代理模块:接收客户端任务处理模块发送的任务请求,从图片缓存队列中获取图片,并创建对应任务;将任务发给客户端任务处理模块,获得处理结果后,调用图片处理模块对图片进行画框标注;Socket断开,标记任务失败,图片塞回图片缓存队列;
所述服务端异常管理模块,包括:
PS异常监测模块,检测服务端系统状态以及异常状态,在共享内存中更新服务端当前系统状态及异常信息;
PS异常处理模块,检测共享内存中的异常状态,如果存在异常进行处理;
客户端异常收集模块:收集客户端异常上报模块发送的状态及异常信息,在共享内存中更新客户端当前系统状态及异常信息;
PS异常上报模块:将服务端和客户端的异常信息和状态信息上报给上注FPGA;
所述基础服务模块包括网络服务和存储管理;
所述客户端任务管理模块,包括:
任务请求模块:客户端每次请求并处理一张图片,若空闲则向服务端任务代理模块发送任务请求,并接收任务代理模块发送的任务;将任务处理结果发送给任务代理模块;
图片处理模块:进行图片处理;
所述客户端异常管理模块,包括:
客户端异常检测模块,监测客户端系统状态及异常,在共享内存中更新客户端当前系统状态及异常信息;
客户端异常处理模块,检测共享内存中的异常状态,如果有异常进行处理;
客户端异常上报模块,将系统状态及异常信息发送给服务端的客户端的异常收集模块;在共享内存中更新客户端当前系统状态及异常信息;
所述网络服务模块,通过socket编程进行客户端与服务端之间的通信连接。
优选的技术方案中,图像数据经过可编程逻辑处理单元的图像预处理模块后发送到服务端任务管理模块,经过客户端处理后,将处理结果发送到上注FPGA,所述服务端任务管理模块采用多任务多线程的方式实现高并发处理,所述服务端任务管理模块包括解析线程、任务管理线程、返回数据管理线程。
优选的技术方案中,所述解析线程,用于接收可编程逻辑处理单元发送的图像数据包,检测数据包格式是否正确,如果有错误则重新取数据包,否则创建数据包结构体信息,解析与图片相关的数据和各个字段的值与位置,通知返回数据管理线程创建存放返回数据的空间结构并且根据类型将图片放入到对应的任务队列中。
优选的技术方案中,所述任务管理线程,用于接收客户端发送的数据或请求并且进行处理,当接收到客户端信息时,判断是否是任务请求,如果是,则判断客户端支持模型,找出对应客户端支持模型的任务队列的任务并发送到对应客户端;如果是图片检测结果信息,则将结果放入返回数据包队列进行存储。
优选的技术方案中,所述返回数据管理线程,用于从返回数据包队列中取出数据,然后进行数据排序将处理结果信息放到返回数据包中对应的位置,当一个数据包的信息都获取之后将数据包发送到上注FPGA。
优选的技术方案中,所述客户端任务管理模块,用于读取配置文件信息以获取服务端信息和相应模型信息,请求建立连接,如果不成功则循环执行,否则向服务端发送任务请求并接收图片进行处理任务,将处理结果打包发送到服务端。
优选的技术方案中,客户端任务管理模块通过管道通信的方式定时向客户端异常检测模块发送心跳信息,如果客户端异常检测模块一段时间内未接收到心跳信息,则判断客户端任务管理模块异常,重启客户端任务管理模块;如果PS异常监测模块一段时间内未接收到客户端的信息或者客户端发送的信息有重启信号,则向上注FPGA发送客户端重启信息。
优选的技术方案中,所述服务端将自身和每个1H8的状态信息以及异常信息上传给上注FPGA,服务端每次发送给上注FPGA的串口数据为纯ASCII的一行或多行,行尾为换行字符,单行传输数据格式如下:
<device>U<cpu_use>L<cpu_load>M<mem_use>D<disk_use>T<temperature>E<error>F<fault>,其中<device>描述该行是哪个设备的信息,<cpu_use>描述该设备的CPU使用率,<cpu_load>描述该设备CPU负载,<mem_use>描述该设备的内存占用,<disk_use>描述磁盘使用空间,<temperature>描述温度,<error>代表是否出现错误,<fault>代表是否出现故障。
与现有技术相比,本发明的优点是:
1、对于分布式的异构系统,通过多模块、多线程的相互合作来实现高并发和高性能处理,充分利用各个异构的嵌入式系统,共同合作完成一个计算任务,可以应对不同的任务计算场景,提高系统的吞吐率。
2、本发明通过添加异常管理模块,可以保证分布式嵌入式系统在故障发生的时候,系统仍然是可用的,系统通过监控节点的状态信息、异常信息,能够检测异常的发生以及异常的自动恢复处理,提高系统可用性和可靠性。
3、通过定义的一套传输协议和机制,配套相应的上位机程序,可以直观的显示每个嵌入式设备运行时的状态信息和异常情况。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为现有分布式嵌入式系统平台架构图;;
图2为本发明嵌入式系统分布式调度系统的框架模块图;
图3为本实施例的服务端和客户端进线程图;
图4为本实施例的业务管理模块处理流程图;
图5为本实施例的解析线程流程图;
图6为本实施例的任务管理线程流程图;
图7为本实施例的返回数据管理流程图;
图8为本实施例的客户端任务管理流程图;
图9为本实施例的状态与异常管理模块交互图;
图10为本实施例的状态与异常子模块交互图;
图11为本实施例的上位机界面。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例:
本发明公开了一种嵌入式系统分布式调度系统,该分布式调度系统设置于分布式嵌入式系统,分布式嵌入式系统包括服务端和至少1个客户端,使得在分布式嵌入式设备进行软件系统开发更加方便,主要包括业务端多模块、多线程的合作来实现高并发、高性能和高扩展性;同时添加异常处理模块,通过自动检测状态和异常信息,对于异常可以自动处理和恢复,可以提高系统可用性和可靠性;最后开发配套对应的上位机,定义一个传输协议可以实时的获取每个嵌入式设备的状态信息和异常情况。
本发明整体的框架是以C/S模型为基础,分为客户端和服务器端。此处,PS作为服务器端,1H8作为客户端,两者通过socket进行通信;另外,在PS和1H8上又分为业务逻辑和异常逻辑部分,两者协同工作。整体的设计框架如图2所示,接下来对每个模块进行详细的说明。
2.1PS端任务管理模块
PS端任务管理主要完成以下几个工作:1、图片接收:从PL接收图片并且放入线程安全的图片缓存队列。2、图片处理:图片的降采样;图片的画框标注。3、任务代理管理:等待1H8任务处理模块的连接;创建任务代理线程;定期检查共享内存中1H8异常情况,若出现严重异常则将对应1H8任务队列中的任务标记为未完成,重新塞回待处理图片队列,终止对应任务代理线程。4、任务代理:接收1H8任务处理模块发来的任务请求,从图片缓存队列中获取图片,并创建对应任务;将任务发给1H8任务处理模块,等待的处理结果,得到结果后,调用图片处理程序对图片进行画框标注;Socket断开,标记任务失败,图片塞回图片缓存队列。
2.2PS端异常管理模块
PS端异常管理主要完成以下几个工作:1、PS异常监测:检测PS端系统状态以及异常情况;在共享内存中更新PS当前系统状态及异常的信息。2、PS异常处理:检测共享内存中的异常状态,如果存在异常则进行处理。3、1H8异常收集:收集1H8异常上报模块发来的状态及异常信息;在共享内存中更新1H8当前系统状态及异常的信息。4、PS异常上报:将PS和1H8的异常信息和状态信息上报给上注FPGA。
2.3 1H8端任务处理模块
1H8端任务处理主要完成以下几个工作:1、任务请求:1H8每次请求并处理一张图片,若空闲则向PS端任务代理发送任务请求,并接收任务代理发送来的任务;将任务处理结果(成功结果、失败)发送给任务代理。2、图片处理:调用神经网络模型进行目标识别运算。
2.4 1H8端异常管理模块
1H8端异常管理主要完成以下几个工作:1、1H8异常检测:监测1H8系统状态及异常;在共享内存中更新1H8当前系统状态及异常的信息。2、1H8异常处理:检测共享内存中的异常装态,如果有异常则进行处理。3、1H8异常上报:将系统状态及异常信息发送给PS的1H8异常收集模块;在共享内存中更新1H8当前系统状态及异常的信息。
另外,还有基础服务模块,包括网络服务和存储管理。网络服务就是通过socket编程来进行客户端与服务端之间的通信连接,存储管理就是eMMC读写管理。
虽然整体架构有了,但是具体的实现还要通过进程和线程来实现,所以需要进线程设计,如图3所示。此软件开发的整体为父进程,业务端和异常端分别对应一个由父进程创建的子进程,然后业务端和异常端再根据需要创建不同的线程。
以下详细介绍该发明的每个部分的技术细节。
三、业务端模块设计
如图4所示,图像数据经过PL的图像预处理模块后发送到PS的任务管理模块,经过1H8图像识别之后,最终将识别结果发送到上注FPGA。对于PS的任务管理模块采用多任务多线程的方式实现高并发处理,PS的任务管理模块主要涉及了三个线程,分别是解析线程、任务管理线程、返回数据管理线程。
3.1解析线程设计方案
如图5所示,解析线程主要负责接收PL发送的图像数据包,检测数据包格式的正确性,如果有错误则重新取数据包,否则解析出与图片相关的数据和各个字段的值与位置,然后通知“返回数据管理线程”创建存放返回数据的空间结构并且根据类型将图片其放入到对应的任务队列中。只要PL有数据包则此解析过程就是循环进行的。
3.2任务管理线程设计方案
如图6所示,任务管理线程主要负责接收1H8发送的数据或请求并且进行处理。当接收到1H8的信息的时候需要先判断是否是任务请求,如果是则需要先找到对应1H8支持的模型,然后到对应的任务队列中取图片并发送到对应的1H8;如果是图片检测结果信息,则将结果放入返回数据包队列进行存储。
3.3返回数据管理线程设计方案
如图7所示,返回数据包管理线程负责从返回数据包队列中取出数据,然后进行数据排序将这些识别结果信息放到返回数据包中对应的位置,当一个数据包的信息都获取之后将数据包发送到上注FPGA。
3.4 1H8任务管理设计方案
如图8所示,1H8任务管理需要先读取配置文件信息以获取服务端信息和相应模型信息,然后请求建立连接,如果不成功则循环执行,否则向PS发送任务请求并接收图片进行图像识别处理,最终将识别结果打包发送到PS端。
四、异常管理模块设计
异常管理主要包括1H8状态及异常模块、PS状态及异常模块以及上注FPGA状态及异常管理模块。1H8状态及异常管理模块负责本机任务管理模块的监控,如果任务管理模块出现异常,本模块可以及时修复异常,保证任务管理模块的稳定运行。同时,1H8状态及异常模块会向PS状态及异常管理模块发送自身端状态信息和异常信息。PS状态与异常管理模块不仅负责对任务管理模块监控,还负责接受1H8状态及异常管理模块的信息,如果出现异常(心跳断开)或者接收到异常信息,则会向上注FPGA发送异常信息。上注FPGA状态及异常管理模块负责1H8和PS端的重启工作,在检测到PS模块出现异常(心跳断开)或者接收到异常信息时,会将相应的模块重启。具体的模块交互时序图如图9所示。
4.1子模块介绍
本模块有两部分,分别为1H8异常和PS异常模块,每个异常模块共分为四个子模块,分别为:异常处理子模块,心跳监控子模块,状态监测模块、交互子模块。各个子模块分别负责不同的功能。子模块之间的交互如图10所示。
其中,上级模块在1H8中为PS状态与异常管理模块,在PS中为上注FPGA状态与异常管理模块。各个模块具体功能如下所述:
异常处理子模块负责接收其他模块报告的信息并处理,其1H8和PS端的功能相同。异常处理子模块如果异常处理失败,则向会上级请求重启(1H8向PS报告,PS向上注FPGA报告)。
交互子模块负责向上级汇报自身的状态信息。1H8和PS端的功能相近,不同的是1H8向PS端定时发送自身的状态信息,PS端向上注FPGA定时发送自身的状态信息以及1H8的状态信息。
在1H8端,心跳监控子模块只负责监控业务端的心跳,业务端通过管道通信的方式定时向监控子模块发送心跳信息,如果心跳监控子模块一段时间内为接收到心跳信息,则认为业务端异常,将重启业务端。在PS端中,心跳监控子模块不仅负责监控业务端,还负责监控1H8端的信息并上报给上注FPGA,若心跳监控子模块一段时间内未接受到1H8的信息或者1H8发来的信息有重启信号,则向上注FPGA报告1H8重启的信息。
4.2检测信息定义
表1:1H8检测信息定义
Figure BDA0002682019010000091
Figure BDA0002682019010000101
表2:PS检测信息定义
类型 变量名 含义
float cpu_use CPU使用率
float cpu_load CPU负载
float memory_use 内存使用率
float temperature 温度
float EMMC_use EMMC使用率
float net_speed 网络速度
4.3技术参数定义
表3:1H8异常编号定义
Figure BDA0002682019010000102
表4:PS异常编号定义
Figure BDA0002682019010000103
五、上位机显示设计
为了能够实时获取每个模块的运行状态信息和异常情况,我们需要设计一套协议和机制将每个模块的状态信息传输到上位机。为了能够显示每个模块的信息,设计有多级上传机制,首先每个1H8将自身状态信息和异常情况传递给PS,PS将自身和每个1H8的状态信息以及异常信息上传给上注FPGA,最后统一由上注FPGA发送给上位机可视化显示。
5.1 1H8-PS输出数据定义
表4:1H8-PS传输数据定义
类型 变量名 含义
float cpu_use CPU使用率
float cpu_load CPU负载
float memory_use 内存使用率
float disk_use 磁盘使用率
float net_speed 网络速度
int state 0无异常,1需复位
bool fault 1H8永久故障标志
5.2 PS-上注FPGA传输数据定义
格式描述:PS每次发送给小FPGA的串口数据应为纯ASCII的一行或多行,行尾为\n字符(换行字符)。单行格式如下:
<device>U<cpu_use>L<cpu_load>M<mem_use>D<disk_use>T<temperature>E<error>F<fault>其中<>中的实现见表5:
表5:PS向上注FPGA发送信息格式
Figure BDA0002682019010000111
Figure BDA0002682019010000121
5.3上位机
上位机界面的设计如图11所示,可以实时显示4个1H8和PS的运行状态以及异常情况。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种嵌入式系统分布式调度系统,其特征在于,所述分布式调度系统设置于分布式嵌入式系统,所述分布式嵌入式系统包括服务端和至少1个客户端,所述服务端和客户端通过socket进行通信;该分布式调度系统的服务端包括服务端任务管理模块、服务端异常管理模块和基础服务模块,该分布式调度系统的客户端包括客户端任务处理模块、客户端异常管理模块和网络服务模块;
所述服务端任务管理模块,包括:
图片接收模块,用于接收图片并放入图片缓存队列;
图片处理模块,用于对接收的图片进行处理;
任务代理管理模块,用于等待客户端任务处理模块的连接;创建任务代理线程;定期检查共享内存中客户端异常状态,若出现异常则将对应客户端任务队列中的任务标记为未完成,重新塞回待处理图片缓存队列,终止对应任务代理线程;
任务代理模块:接收客户端任务处理模块发送的任务请求,从图片缓存队列中获取图片,并创建对应任务;将任务发给客户端任务处理模块,获得处理结果后,调用图片处理模块对图片进行画框标注;Socket断开,标记任务失败,图片塞回图片缓存队列;
所述服务端异常管理模块,包括:
PS异常监测模块,检测服务端系统状态以及异常状态,在共享内存中更新服务端当前系统状态及异常信息;
PS异常处理模块,检测共享内存中的异常状态,如果存在异常进行处理;
客户端异常收集模块:收集客户端异常上报模块发送的状态及异常信息,在共享内存中更新客户端当前系统状态及异常信息;
PS异常上报模块:将服务端和客户端的异常信息和状态信息上报给上注FPGA;
所述基础服务模块包括网络服务和存储管理;
所述客户端任务管理模块,包括:
任务请求模块:客户端每次请求并处理一张图片,若空闲则向服务端任务代理模块发送任务请求,并接收任务代理模块发送的任务;将任务处理结果发送给任务代理模块;
图片处理模块:进行图片处理;
所述客户端异常管理模块,包括:
客户端异常检测模块,监测客户端系统状态及异常,在共享内存中更新客户端当前系统状态及异常信息;
客户端异常处理模块,检测共享内存中的异常状态,如果有异常进行处理;
客户端异常上报模块,将系统状态及异常信息发送给服务端的客户端的异常收集模块;在共享内存中更新客户端当前系统状态及异常信息;
所述网络服务模块,通过socket编程进行客户端与服务端之间的通信连接。
2.根据权利要求1所述的嵌入式系统分布式调度系统,其特征在于,图像数据经过可编程逻辑处理单元的图像预处理模块后发送到服务端任务管理模块,经过客户端处理后,将处理结果发送到上注FPGA,所述服务端任务管理模块采用多任务多线程的方式实现高并发处理,所述服务端任务管理模块包括解析线程、任务管理线程、返回数据管理线程。
3.根据权利要求2所述的嵌入式系统分布式调度系统,其特征在于,所述解析线程,用于接收可编程逻辑处理单元发送的图像数据包,检测数据包格式是否正确,如果有错误则重新取数据包,否则创建数据包结构体信息,解析与图片相关的数据和各个字段的值与位置,通知返回数据管理线程创建存放返回数据的空间结构并且根据类型将图片放入到对应的任务队列中。
4.根据权利要求2所述的嵌入式系统分布式调度系统,其特征在于,所述任务管理线程,用于接收客户端发送的数据或请求并且进行处理,当接收到客户端信息时,判断是否是任务请求,如果是,则判断客户端支持模型,找出对应客户端支持模型的任务队列的任务并发送到对应客户端;如果是图片检测结果信息,则将结果放入返回数据包队列进行存储。
5.根据权利要求2所述的嵌入式系统分布式调度系统,其特征在于,所述返回数据管理线程,用于从返回数据包队列中取出数据,然后进行数据排序将处理结果信息放到返回数据包中对应的位置,当一个数据包的信息都获取之后将数据包发送到上注FPGA。
6.根据权利要求1所述的嵌入式系统分布式调度系统,其特征在于,所述客户端任务管理模块,用于读取配置文件信息以获取服务端信息和相应模型信息,请求建立连接,如果不成功则循环执行,否则向服务端发送任务请求并接收图片进行处理任务,将处理结果打包发送到服务端。
7.根据权利要求1所述的嵌入式系统分布式调度系统,其特征在于,客户端任务管理模块通过管道通信的方式定时向客户端异常检测模块发送心跳信息,如果客户端异常检测模块一段时间内未接收到心跳信息,则判断客户端任务管理模块异常,重启客户端任务管理模块;如果PS异常监测模块一段时间内未接收到客户端的信息或者客户端发送的信息有重启信号,则向上注FPGA发送客户端重启信息。
8.根据权利要求1所述的嵌入式系统分布式调度系统,其特征在于,所述服务端将自身和每个1H8的状态信息以及异常信息上传给上注FPGA,服务端每次发送给上注FPGA的串口数据为纯ASCII的一行或多行,行尾为换行字符,单行传输数据格式如下:
<device> U<cpu_use> L<cpu_load> M<mem_use> D<disk_use> T<temperature> E<error>F<fault>,其中<device>描述该行是哪个设备的信息,<cpu_use>描述该设备的CPU使用率,<cpu_load>描述该设备CPU负载,<mem_use>描述该设备的内存占用,<disk_use>描述磁盘使用空间,<temperature>描述温度,<error>代表是否出现错误,<fault>代表是否出现故障。
CN202010965175.1A 2020-09-15 2020-09-15 一种嵌入式系统分布式调度系统 Active CN112068963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010965175.1A CN112068963B (zh) 2020-09-15 2020-09-15 一种嵌入式系统分布式调度系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010965175.1A CN112068963B (zh) 2020-09-15 2020-09-15 一种嵌入式系统分布式调度系统

Publications (2)

Publication Number Publication Date
CN112068963A CN112068963A (zh) 2020-12-11
CN112068963B true CN112068963B (zh) 2022-09-13

Family

ID=73695238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010965175.1A Active CN112068963B (zh) 2020-09-15 2020-09-15 一种嵌入式系统分布式调度系统

Country Status (1)

Country Link
CN (1) CN112068963B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653768B (zh) * 2020-12-30 2023-09-29 北京知形科技有限公司 一种仿社会学服务器端架构
CN113676557B (zh) * 2021-10-21 2022-02-11 广州微林软件有限公司 一种服务器调度系统、方法及其应用

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833352A (zh) * 2012-09-17 2012-12-19 深圳中兴网信科技有限公司 分布式缓存管理系统和实现分布式缓存管理的方法
CN103618732B (zh) * 2013-12-05 2017-05-03 用友网络科技股份有限公司 一种PaaS与Erlang App应用引擎架构执行流程
US10067691B1 (en) * 2017-03-02 2018-09-04 Qualcomm Incorporated System and method for dynamic control of shared memory management resources
CN109857549B (zh) * 2019-01-04 2024-10-11 平安科技(深圳)有限公司 基于负载均衡的图像数据处理方法、系统、设备及介质
CN111507257B (zh) * 2020-04-16 2023-09-08 奇安信科技集团股份有限公司 图片处理方法、装置、系统、介质及程序

Also Published As

Publication number Publication date
CN112068963A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
US8769034B2 (en) Query performance data on parallel computer system having compute nodes
CN112068963B (zh) 一种嵌入式系统分布式调度系统
CN105677501A (zh) Linux系统中基于看门狗的精细化进程监控方法及系统
CN113067850B (zh) 一种多云场景下的集群编排系统
CN101286129A (zh) 嵌入式系统调试
US8122301B2 (en) Performing remote loads and stores over networks
CN112630557A (zh) 设备状态检测方法、装置、设备及介质
CN102457578A (zh) 一种基于事件机制的分布式网络监控方法
CN110333916A (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
CN111124801A (zh) 智能化系统资源监控方法、装置及计算机可读存储介质
CN114218004A (zh) 基于BMC的Kubernetes集群物理节点的故障处理方法和系统
CN108111578B (zh) 基于nio的配电终端数据采集平台接入终端设备的方法
CN113658351A (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN113364857A (zh) 业务数据的处理方法、装置和服务器
CN103593239B (zh) Linux系统中应用进程命令处理的方法及装置
CN106708701B (zh) 一种基于arinc659总线的中央维护装置与方法
CN102693434B (zh) 射频识别设备接口层的通信装置及方法
CN112134951B (zh) 数据传输方法、装置、电子设备及存储介质
CN111782322A (zh) 基于云桌面服务器的内外网消息通讯服务器及系统
CN115705259A (zh) 故障处理方法、相关设备及存储介质
CN109034768B (zh) 财务调拨方法、装置、计算机设备和存储介质
CN106850283B (zh) 一种基于事件驱动的云ac告警处理系统及方法
CN113779021A (zh) 数据处理方法、装置、计算机系统及可读存储介质
CN110290190B (zh) 一种采集数据的方法、被监控设备及监控服务器
CN111984523A (zh) 消息处理任务测试方法、装置、系统、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant