CN108984267B - 工业服务器的微内核架构控制系统及工业服务器 - Google Patents

工业服务器的微内核架构控制系统及工业服务器 Download PDF

Info

Publication number
CN108984267B
CN108984267B CN201810745322.7A CN201810745322A CN108984267B CN 108984267 B CN108984267 B CN 108984267B CN 201810745322 A CN201810745322 A CN 201810745322A CN 108984267 B CN108984267 B CN 108984267B
Authority
CN
China
Prior art keywords
kernel
control
physical
control program
industrial
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
CN201810745322.7A
Other languages
English (en)
Other versions
CN108984267A (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.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology Co Ltd
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 Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN201810745322.7A priority Critical patent/CN108984267B/zh
Publication of CN108984267A publication Critical patent/CN108984267A/zh
Priority to JP2019001678A priority patent/JP7101127B2/ja
Priority to US16/243,438 priority patent/US10977070B2/en
Priority to EP19151214.4A priority patent/EP3594809A1/en
Application granted granted Critical
Publication of CN108984267B publication Critical patent/CN108984267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种工业服务器的微内核架构控制系统及工业服务器,涉及工业服务器技术领域。针对传统工业现场一个硬件平台仅运行一套PLC控制系统,造成功能固定和不可更改,而一旦涉及多套控制系统(PLC/DCS/Motion/CNC)时,又带来管理维护难度大和效率低的问题。本方案基于包含工控中间件和实时操作系统的微内核及虚拟机监控器的架构,在系统启动前自定义配置调度配置信息,实现工业服务器微内核控制在工业现场层的实时控制和自由组合,简化硬件设备,降低建设和维护成本,实现软件定义工业流程。

Description

工业服务器的微内核架构控制系统及工业服务器
技术领域
本发明实施例涉及工业服务器技术,尤其涉及一种工业服务器的微内核架构控制系统及工业服务器。
背景技术
基于工业服务器硬件的虚拟操作系统,以i7为例,可以支持4个物理内核,每个内核上运行一个虚拟机,即微控制内核,微控制内核内包括PLC(Programmable LogicController,可编程逻辑控制器)。
但是,一个内核上只能运行一个PLC,资源浪费,可以执行功能也很有限。另外,多核PLC的调度方式包括应用于实时性较高的业务场景的优先级调度算法和应用于对实时性要求不高的业务场景的时间表调度算法,任一种调度算法在业务需求较为复杂的场景下,很难满足用户的业务需求,造成CPU资源的利用率低的问题。传统工业现场一个硬件平台仅运行一套PLC控制系统,造成功能固定和不可更改,而一旦涉及多套控制系统(PLC/DCS/Motion/CNC)时,又带来管理维护难度大和效率低。
发明内容
本发明实施例提供一种工业服务器的微内核架构控制系统及工业服务器,以实现工业服务器微内核控制在工业现场层的实时控制和自由组合,简化硬件设备,降低建设和维护成本,实现软件定义工业流程。
第一方面,本发明实施例提供了一种工业服务器的微内核架构控制系统,所述工业服务器中基于工业服务器硬件的操作系统内核支持多个物理内核,所述系统包括:微内核和虚拟机监控器;
每个物理内核上运行多个微内核,每个微内核均包括工控中间件和实时操作系统;
所述工控中间件,用于解析工控应用的需求,以运行工控应用;
所述实时操作系统,用于通过所述虚拟机监控器对工控应用运行过程中的控制程序进行调度控制;
所述虚拟机监控器,用于在系统启动前,根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重生成调度配置信息;根据所述调度配置信息对所述操作系统内核上运行的控制程序进行配置;以及启动配置后的控制程序;其中,所述调度配置信息包括每个物理内核上运行的控制程序数量,每个物理内核上运行的控制程序的调度算法,以及每个控制程序运行在多个物理内核上。
可选的,所述微内核还包括:IO通信模块,用于在运行所述工控应用的过程中,基于所述实时操作系统中的通信驱动及所述工控中间件中的通讯协议,与所述工业服务器控制的终端进行通信。
可选的,所述虚拟机监控器具体用于:
根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重计算控制程序的相关性;
根据所述相关性生成所述调度配置信息。
可选的,所述虚拟机监控器具体用于:
根据所述内核任务类型、任务优先级和运行时长的权重计算所述相关性;或,
根据所述内核任务类型和任务优先级的权重计算所述相关性;或,
根据所述内核任务类型和运行时长的权重计算所述相关性。
可选的,所述虚拟机监控器具体用于:
通过虚拟机监控程序对硬件进行虚拟化处理,根据所述调度配置信息在一个物理内核上配置多个控制程序;和/或,
根据所述调度配置信息对每个物理内核上运行的控制程序的调度算法进行配置,所述调度算法包括基于时间表的调度算法或基于优先级的调度算法;和/或,
将多个物理内核进行虚拟化,根据所述调度配置信息将一个控制程序对应得到的多个控制程序分别配置到所述多个物理内核上。
可选的,所述虚拟机监控器具体用于:
采用粗粒度加锁调度方法,每个物理内核对应一个锁,基于时间表的调度算法或基于优先级的调度算法从单个物理内核上的多个控制程序中确定一个控制程序得到所述物理内核对应的锁,获取所述物理内核对应的锁的控制程序独占所述物理内核执行内核态操作,根据所述控制程序的内核任务类型、优先级和/或运行时长生成所述调度配置信息;或者,
采用细粒度加锁调度方法,每个物理内核对应一个锁,按照控制程序所需计算资源将控制程序对应得到多个控制程序,根据所述多个控制程序之间的相关性将所述多个控制程序分配在不同的物理内核上,所述多个控制程序分别得到所属物理内核对应的锁,获取锁的所述多个控制程序通过多个物理内核同时执行内核态操作并发执行,根据所述控制程序的内核任务类型、优先级和/或运行时长生成所述调度配置信息。
可选的,所述基于时间表的调度算法包括:
设定多个定时器,其中,第一定时器的时长为主帧时间,第二定时器按照所述主帧时间内的多个时间窗的前后顺序逐次启动,并且所述第二定时器的时长逐次与各时间窗的时长相同;
以所述主帧时间为周期,启动所述第一定时器和所述第二定时器的同时,根据时间表的设定调度控制程序,一旦所述第二定时器的定时到达,调度下一个控制程序,且一旦所述第一定时器的定时到达,启动下一个周期,所述时间表包括所述多个时间窗的起止时间和各时间窗对应的控制程序。
可选的,所述基于优先级的调度算法包括:
遍历优先级主索引号位图确定最高优先级对应的主索引号;
遍历所述主索引号对应的优先级次索引号位图确定最高优先级对应的次索引号;
根据所述主索引号和所述次索引号计算当前的最高优先级,并确定所述最高优先级对应的控制程序。
可选的,物理内核上运行的控制程序包括运行周期相同或运行周期不同的控制程序。
第二方面,本发明实施例还提供了一种工业服务器,包括:工业服务器硬件及基于所述工业服务器硬件的操作系统内核,所述操作系统内核支持多个物理内核,所述工业服务器还包括:本发明任意实施例所述的工业服务器的微内核架构控制系统。
本发明实施例针对传统工业现场一个硬件平台仅运行一套PLC控制系统,造成功能固定和不可更改,而一旦涉及多套控制系统(PLC/DCS/Motion/CNC)时,又带来管理维护难度大和效率低的问题,基于包含工控中间件和实时操作系统的微内核以及虚拟机监控器的架构,虚拟机监控器在系统启动前自定义配置每个物理内核上运行的控制程序数量、调度算法、以及每个控制程序运行在多个物理内核上,自定义配置方案不限于单个物理内核对多个微内核时间片进行控制,以及单个微内核占用计算资源跨物理内核调配,从而实现工业服务器微内核控制在工业现场层的实时控制和自由组合,简化硬件设备,降低建设和维护成本,实现软件定义工业流程。
附图说明
图1是本发明实施例一提供的工业服务器的微内核架构控制系统的结构示意图;
图2是本发明实施例一提供的工业服务器的结构示意图;
图3是本发明实施例一提供的工业服务器的另一结构示意图;
图4是本发明实施例一提供的粗粒度加锁调度的示意图;
图5是本发明实施例一提供的细粒度加锁调度的示意图;
图6是本发明实施例一提供的工业服务器的微内核架构控制系统的另一结构示意图;
图7是本发明实施例二提供的时间表的示意图;
图8是本发明实施例三提供的优先级索引号位图的示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
针对传统工业现场一个硬件平台仅运行一套PLC控制系统,造成功能固定和不可更改,而一旦涉及多套控制系统(PLC/DCS/Motion/CNC)时,又带来管理维护难度大和效率低的问题。本发明实施例基于包含工控中间件和实时操作系统的微内核及虚拟机监控器的架构,在系统启动前自定义配置调度配置信息,实现工业服务器微内核控制在工业现场层的实时控制和自由组合,简化硬件设备,降低建设和维护成本,实现软件定义工业流程。
实施例一
图1是本发明实施例一提供的工业服务器的微内核架构控制系统的结构示意图,该系统设置于工业服务器中,图2是本发明实施例一提供的工业服务器的结构示意图,工业服务器包括:工业服务器硬件,基于工业服务器硬件的操作系统内核以及操作系统内核支持的多个物理内核,每个物理内核上可以运行多个虚拟机,每个虚拟机对应一个微内核,控制程序运行于微内核上,即每个物理内核上可以运行多个控制程序。示例性的,一共有3个物理内核a、b和c,物理内核a上运行3个控制程序a1,a2和a3,物理内核b上运行3个控制程序b1,b2和b3,物理内核c上运行3个控制程序c1,c2和c3。
本实施例中把内核各个服务的部分内容移到内核之外,就是微内核(MicroKernel)。微内核的操作系统只在内核里提供最基本、必不可少的服务,比如进程间通信(IPC)、内存管理、任务调度。而其它的包括驱动、文件系统、网络这样的服务,都放在用户态来实现。各个服务组件之间不会共享地址空间,都在各自独立的地址空间运行。大多数微内核操作系统通过服务模块间的消息传递来处理请求。例如,一个模块发出了一个需要更多内存的请求,会通过内核把请求传递给处理请求的服务。处理完成后,再把结果通过内核传递回去。
如图1所示,工业服务器的微内核架构控制系统包括:微内核100和虚拟机监控器200。每个物理内核上可运行多个微内核100,每个微内核100均包括工控中间件101和实时操作系统102。虚拟机监控器200运行于操作系统内核上。
工控中间件101,用于解析工控应用的需求,以运行工控应用。其中,工控中间件处于微内核的操作系统与工控应用的中间,为处于自己上层的应用软件提供运行与开发的环境。具体的,工控中间件通过对工控应用程序的解析,可以运行工控应用。工业服务器通过运行工控应用可以控制相应的终端。
实时操作系统102,用于通过虚拟机监控器200对工控应用运行过程中的控制程序进行调度控制。
虚拟机监控器200,用于在系统启动前,根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重生成调度配置信息;根据所述调度配置信息对所述操作系统内核上运行的控制程序进行配置;以及启动配置后的控制程序;其中,所述调度配置信息包括每个物理内核上运行的控制程序数量,每个物理内核上运行的控制程序的调度算法,以及每个控制程序运行在多个物理内核上。
本实施例中,每个物理内核可以运行多个控制程序,包括运行周期相同或运行周期不同的控制程序。示例性的,参照图3,物理内核a,b和c分别运行3个控制程序,物理内核a上运行3个控制程序a1,a2和a3,物理内核b上运行3个控制程序b1,b2和b3,物理内核c上运行3个控制程序c1,c2和c3。其中,a1,a2和a3可以是具备相同运行周期的控制程序,b1,b2和b3可以是具备不同运行周期的控制程序,c1和c2运行周期相同而和c3的运行周期不同。每个物理内核上运行的控制程序可以通过配置的调度算法进行调度,该调度算法包括基于时间表的调度算法或基于优先级的调度算法,不同的物理内核可以配置不同的调度算法。一个控制程序可以运行在一个或多个物理内核上。可见一个物理内核上可以运行多个控制程序,这多个控制程序可以是一个完整功能的控制程序,也可以是一个控制程序的部分功能的控制程序;一个控制程序被配置到多个物理内核上运行时,在各物理内核上是独立运行的,即参与到所在物理内核的调度中;不同的物理内核可以配置不同的调度算法,彼此之间互不影响。
虚拟机监控器根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重计算控制程序的相关性,再根据相关性生成调度配置信息。其中,相关性的计算包括根据内核任务类型、任务优先级和运行时长的权重计算相关性;或,根据内核任务类型和任务优先级的权重计算相关性;或,根据内核任务类型和运行时长的权重计算相关性。
如上所述,每个物理内核可以运行多个控制程序,包括运行周期相同或运行周期不同的控制程序。即多个控制程序共享一个物理内核,其中某个控制程序需要执行内核态操作,物理内核就为该控制程序服务。为了互斥使用物理内核,任何需要执行内核态操作的控制程序都需要申请获取一个锁(lock),只有得到了锁的控制程序才可以使用物理内核执行内核态操作。按照控制程序所需计算资源的粒度大小分为粗粒度加锁调度方法和细粒度加锁调度方法。
图4是本发明实施例一提供的粗粒度加锁调度的示意图,粗粒度加锁调度指的是一个物理内核对应一个锁,获取锁的控制程序可以独占整个物理内核。因此,同一时间内只能有一个控制程序使用物理内核执行内核态操作,其他需要执行内核态操作的控制程序只能等待被调度之后获取到锁。采用粗粒度加锁调度方法,单个物理内核上的多个控制程序的调度算法包括基于时间表的调度算法或基于优先级的调度算法。示例性的,参照图3,一共有3个物理内核a、b和c,每个物理内核对应一个锁,粗粒度表示物理内核内的调度是以一个完整的控制程序为单位进行的。物理内核a上运行3个控制程序a1,a2和a3,同一时间内只能有一个控制程序使用物理内核执行内核态操作,这里可以基于时间表的调度算法或基于优先级的调度算法在控制程序a1,a2和a3之间进行调度,确定出由哪个控制程序获得物理内核a的锁。同理,物理内核b上运行的3个控制程序b1,b2和b3,物理内核c上运行的3个控制程序c1,c2和c3都可以采用前述方法进行调度取得其所在物理内核对应的锁的使用权,进而使用物理内核执行内核态操作。
图5是本发明实施例一提供的细粒度加锁调度的示意图,当控制程序需要的内核服务的计算资源较大时,可以让多个物理内核共同执行该控制程序的内核态操作。通过对单个控制程序不同的控制程序的粒度进行分割,将多个控制程序分配在不同的物理内核上,多个物理内核同时执行内核态操作可以使得多个控制程序并发执行。控制程序可以按照各微内核任务类型将控制程序划分为多个类型,包括进程间通信(IPC)、内存管理、任务调度等。本实施例采用一种双层裁剪算法对控制程序进行裁剪分类。其中,第一层裁剪算法将多个控制程序按运行时长裁剪成尽可能少的可调度的几个周期控制程序集合,以减少控制程序调度的系统开销。第二层裁剪算法则是针对第一层控制程序裁剪结果,再裁剪成几个不同优先级等级的控制程序集合,以便让控制程序在一个更可靠、更实时的环境下运行。最后通过计算多个控制程序的相关性,该计算过程可以结合内核任务类型的权重以及任务优先级和/或运行时长的权重。将相关性高的控制程序进行组合,配置于同一个物理内核上,将相关性较低的控制程序配置于不同的物理内核上,多个物理内核共同执行内核态操作,完成控制程序。
本实施例提出的裁剪算法不限于双层裁剪算法,还可以包括以下算法:针对控制程序对应得到多个控制程序,将其裁剪成几个不同优先级等级的控制程序,以便让控制程序在一个更可靠、更实时的环境下运行。最后通过计算多个控制程序的相关性,该计算过程可以结合内核任务类型的权重以及任务优先级和/或运行时长的权重。将相关性高的控制程序进行组合,配置于同一个物理内核上,将相关性较低的控制程序配置于不同的物理内核上,多个物理内核共同执行内核态操作,完成控制程序。
示例性的,参照图3,一共有3个物理内核a、b和c,每个物理内核对应一个锁,细粒度表示一个完整的控制程序对应得到多个控制程序,然后根据控制程序之间的相关性将多个控制程序分配在不同的物理内核上,而各物理内核将控制程序和其他控制程序一起进行调度。物理内核b上运行b1,b2和b3,物理内核c上运行c1,c2和c3,其中,b1,b2和c1,c2来自同一个控制程序,如上所述,该控制程序可以采用双层裁剪算法或其他算法进行拆分,并且根据相关性对控制程序所在的物理内核进行分配,即b1,b2的相关性较高,因此被分在同一个物理内核b上,而c1,c2的相关性较高,因此被分在同一个物理内核c上。这样基于控制程序力度的分配后,同一个控制程序被分配在两个物理内核上。每个物理内核内可以基于时间表的调度算法或基于优先级的调度算法调度控制程序,获取锁的使用权的控制程序将使用物理内核执行内核态操作。
可选的,还可以针对控制程序对应的多个控制程序,将其裁剪成几个不同运行时长的控制程序,以便让控制程序在一个更可靠、更实时的环境下运行。最后通过计算多个控制程序的相关性,该计算过程可以结合内核任务类型的权重以及任务优先级和/或运行时长的权重。将相关性高的控制程序进行组合,配置于同一个物理内核上,将相关性较低的控制程序配置于不同的物理内核上,多个物理内核共同执行内核态操作,完成控制程序。
一般而言,工业现场层涉及执行的控制程序包括但不限于:温度测控、湿度测控以及流程控制等。而本发明中所谓的相关性,是指上述控制程序在微内核上实现时,能够确定基于微内核完成上述控制程序对应的多个控制程序。实际上,通过预设算法获得的微控制流程可能是符合工业现场的工业控制流程,也可能是用户自定义的工业控制流程。
所谓预设算法,比如,对内核任务类型、控制程序运行时长、优先级分别设置不同权重,将权重加和值在一定范围内的认为是对应同一个控制程序。通过预设算法计算相关性,将相关性高的控制程序进行组合,确定每个物理内核上运行的控制程序数量以及每个控制程序运行在多个物理内核上。
调度配置信息包括每个物理内核上运行的控制程序数量,每个物理内核上运行的控制程序的调度算法,以及每个控制程序运行在多个物理内核上。本实施例中,根据上述方法确定了哪些控制程序分配在哪些物理内核上后,生成调度配置信息。示例性的,参照图3,物理内核a,b和c分别运行3个控制程序,物理内核a上运行3个控制程序a1,a2和a3,物理内核b上运行3个控制程序b1,b2和b3,物理内核c上运行3个控制程序c1,c2和c3。物理内核a采用基于时间表的调度算法从3个控制程序a1,a2和a3中确定当前由谁执行内核态操作,物理内核b采用基于优先级的调度算法从3个控制程序b1,b2和b3中确定当前由谁执行内核态操作,物理内核c采用基于优先级的调度算法从3个控制程序c1,c2和c3中确定当前由谁执行内核态操作。由一个控制程序对应得到的控制程序b1,b2,c1,c2运行在两个物理内核b和c上。
虚拟机监控器200根据调度配置信息对操作系统内核上运行的控制程序进行配置,具体可以是:虚拟机监控器通过虚拟机监控程序对硬件进行虚拟化处理,根据调度配置信息在一个物理内核上配置多个控制程序;和/或,根据调度配置信息对每个物理内核上运行的控制程序的调度算法进行配置,调度算法包括基于时间表的调度算法或基于优先级的调度算法;和/或,将多个物理内核进行虚拟化,根据调度配置信息将一个控制程序对应得到的多个控制程序分别配置到多个物理内核上。
虚拟机监控器即可根据调度配置信息对操作系统内核上运行的控制程序进行实际配置。示例性的,参照图3,物理内核a,b和c分别运行3个控制程序,物理内核a上运行3个控制程序a1,a2和a3,物理内核b上运行3个控制程序b1,b2和b3,物理内核c上运行3个控制程序c1,c2和c3。物理内核a采用基于时间表的调度算法从3个控制程序a1,a2和a3中确定当前由谁执行内核态操作,物理内核b采用基于优先级的调度算法从3个控制程序b1,b2和b3中确定当前由谁执行内核态操作,物理内核c采用基于优先级的调度算法从3个控制程序c1,c2和c3中确定当前由谁执行内核态操作。由一个控制程序对应得到的控制程序b1,b2,c1,c2运行在两个物理内核b和c上。
经过上述配置后,虚拟机监控器启动配置后的控制程序,示例性的,9个控制程序参照图3被配置到3个物理内核中,且按照相应的调度算法被调度。
在上述技术方案的基础上,如图6所示,微内核100还可以包括:IO通信模块103,用于在运行所述工控应用的过程中,基于实时操作系统102中的通信驱动及工控中间件101中的通讯协议,与所述工业服务器控制的终端进行通信。通过实时操作系统102中的通信驱动及工控中间件101中的通讯协议这两部分的配合使用,即可基于微内核实现工业服务器与终端的通信。
本实施例可以在一个物理核上运行多个控制程序,提高物理核资源利用率,而且不同周期的控制程序可以运行在同一个物理核上,实现多内核上的控制程序的自由组合,实现多业务软件定义的自由调度,不同物理内核可以自由配置不同的控制程序调度算法,提高控制程序调度的灵活性和多样性。
本实施例的技术方案,基于包含工控中间件和实时操作系统的微内核以及虚拟机监控器的架构,虚拟机监控器在系统启动前根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重生成调度配置信息,并根据调度配置信息配置每个物理内核上运行的控制程序数量、调度算法、以及每个控制程序运行在多个物理内核上,自定义配置方案不限于单个物理内核对多个微内核时间片进行控制,以及单个微内核占用计算资源跨物理内核调配,从而实现工业服务器微内核控制在工业现场层的实时控制和自由组合,简化硬件设备,降低建设和维护成本,实现软件定义工业流程。
实施例二
在上述技术方案的基础上,本实施例对基于时间表的调度算法进行说明,该基于时间表的调度算法包括:设定多个定时器,其中,第一定时器的时长为主帧时间,第二定时器按照主帧时间内的多个时间窗的前后顺序逐次启动,并且第二定时器的时长逐次与各时间窗的时长相同;以主帧时间为周期,启动第一定时器和第二定时器的同时,根据时间表的设定调度控制程序,一旦第二定时器的定时到达,调度下一个控制程序,且一旦第一定时器的定时到达,启动下一个周期,时间表包括多个时间窗的起止时间和各时间窗对应的控制程序。
本实施例中,一个物理内核上运行的控制程序根据配置好的时间表进行调度,时间表可以根据需求预先配置,调度时以主帧时间为周期,在主帧时间内有多个时间窗。时间表包括多个时间窗的起止时间和各时间窗对应的控制程序,时间窗可分为非空闲时间窗和空闲时间窗,其中,非空闲时间窗对应一个控制程序的运行时间,空闲时间窗时不运行控制程序。在调度控制程序时,重复执行主帧时间,也即每执行完一次时间表,重新转至第一个时间窗继续执行。图7是本发明实施例二提供的时间表的示意图,该时间表中第一个非空闲时间窗是控制程序1的运行时间,第二个非空闲时间窗是控制程序2的运行时间,第三个非空闲时间窗是控制程序3的运行时间,第四个非空闲时间窗又是控制程序1的运行时间。主帧时间是图中6个时间窗的总时长。用户可以根据实际需求配置每个时间窗的时长及运行的控制程序,各时间窗的时长可以配置为相同,也可以配置为不同。
但是考虑到基于时间表的调度算法采用系统时钟,可能会出现每隔较小的时间间隔就发生一次中断的现象,如果频繁中断可能导致时间表的时间窗产生延迟。例如,假设时间表的主帧时间为500ms,控制程序1对应的非空闲时间窗为100ms,并且假定中断处理时间为1ms,若在控制程序1运行过程中产生了10次中断,那么就会造成10ms的延迟,也就是说控制程序1运行了110ms才切换至控制程序2。那么相应地,当主帧时间500ms到达时,实际还处于时间表的最后一个时间窗,需等到510ms时才会重新切换至时间表的第一个时间窗,导致主帧切换产生了10ms的延迟。为了避免控制程序切换和主帧切换的延迟,本实施例中设定多个定时器,通过第一定时器对主帧时间进行定时,以控制主帧时间的切换,通过第二定时器对时间窗进行定时,以控制时间窗口的切换。参照图7,一个主帧开始的同时启动第一定时器和第二定时器,并调度时间表中第一个时间窗对应的控制程序1,此时第二定时器的时长与第一个时间窗的时长相同;当第二定时器的定时到达时,将时间表中第一时间窗切换为相邻的第二个时间窗,调度第二个时间窗对应的控制程序2,此时第二定时器的时长与第二个时间窗的时长相同,以此类推。当第一定时器的定时到达时,启动下一个主帧周期,即重新调度时间表中第一个时间窗对应的控制程序1,此时无论当前处于哪个时间窗,均切换为时间表的第一个时间窗,从头计时,从而实现主帧时间的同步。
实施例三
在上述技术方案的基础上,本实施例对基于优先级的调度算法进行说明。本实施例中,获取一个或多个物理内核上运行的控制程序的优先级,并将优先级采用8位二进制的方式表示,其中,高3位为主索引号,低5位为次索引号,根据主索引号将优先级主索引号位图中对应位做标识,根据次索引号将优先级次索引号位图中对应位做标识。
本实施例中可以给每个控制程序配置优先级,优先级的范围可设置为0-255,其中0对应最高级,255对应最低级。各控制程序的状态可以为就绪、等待、挂等、挂起或者休眠,只有处于就绪状态的控制程序可以被调度,其余状态的控制程序不列入调度对象。每个优先级采用8位二进制的方式表示,其中,高3位为主索引号,低5位为次索引号。例如,优先级为42的控制程序处于就绪状态,用二进制表示是00101010,其高3位是001(1),低5位是01010(10),那么42对应的主索引号就是1,次索引号就是10。图8是本发明实施例三提供的优先级索引号位图的示意图,其中,优先级主索引号位图是1×8的一维位图,其编号为0-7,优先级次索引号位图是8×32的二维位图,纵向编号为0-7,横向编号为0-31,根据42对应的主索引号1和次索引号10分别在优先级主索引号位图的编号1和优先级次索引号位图上纵向编号1横向编号10做标识(标记为1)。
在上述技术方案的基础上,基于优先级的调度算法包括:遍历优先级主索引号位图确定最高优先级对应的主索引号;遍历主索引号对应的优先级次索引号位图确定最高优先级对应的次索引号;根据主索引号和次索引号计算当前的最高优先级,并确定最高优先级对应的控制程序。
参照图8,首先按照0-7的顺序遍历优先级主索引号位图,查找到第一个标记为1的位置编号为1,然后在优先级次索引号位图上按照0-31的顺序遍历纵向编号为1的横向位图查找到第1个标记为1的编号为10。根据优先级的组成方式计算得到此时优先级最高的是42级的控制程序。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。

Claims (10)

1.一种工业服务器的微内核架构控制系统,所述工业服务器中基于工业服务器硬件的操作系统内核支持多个物理内核,其特征在于,所述系统包括:微内核和虚拟机监控器;
每个物理内核上运行多个微内核,每个微内核均包括工控中间件和实时操作系统;
所述工控中间件,用于解析工控应用的需求,以运行工控应用;
所述实时操作系统,用于通过所述虚拟机监控器对工控应用运行过程中的控制程序进行调度控制;
所述虚拟机监控器,用于在所述实时操作系统启动前,根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重生成调度配置信息;根据所述调度配置信息对所述操作系统内核上运行的控制程序进行配置;以及启动配置后的控制程序;其中,所述调度配置信息包括每个物理内核上运行的控制程序数量,每个物理内核上运行的控制程序的调度算法,以及每个控制程序运行在多个物理内核上。
2.根据权利要求1所述的系统,其特征在于,所述微内核还包括:IO通信模块,用于在运行所述工控应用的过程中,基于所述实时操作系统中的通信驱动及所述工控中间件中的通讯协议,与所述工业服务器控制的终端进行通信。
3.根据权利要求1所述的系统,其特征在于,所述虚拟机监控器具体用于:
根据控制程序对应的内核任务类型的权重以及任务优先级和/或运行时长的权重计算控制程序的相关性;
根据所述相关性生成所述调度配置信息。
4.根据权利要求3所述的系统,其特征在于,所述虚拟机监控器具体用于:
根据所述内核任务类型、任务优先级和运行时长的权重计算所述相关性;或,
根据所述内核任务类型和任务优先级的权重计算所述相关性;或,
根据所述内核任务类型和运行时长的权重计算所述相关性。
5.根据权利要求1所述的系统,其特征在于,所述虚拟机监控器具体用于:
通过虚拟机监控程序对硬件进行虚拟化处理,根据所述调度配置信息在一个物理内核上配置多个控制程序;和/或,
根据所述调度配置信息对每个物理内核上运行的控制程序的调度算法进行配置,所述调度算法包括基于时间表的调度算法或基于优先级的调度算法;和/或,
将多个物理内核进行虚拟化,根据所述调度配置信息将一个控制程序对应得到的多个控制程序分别配置到所述多个物理内核上。
6.根据权利要求1所述的系统,其特征在于,所述虚拟机监控器具体用于:
采用粗粒度加锁调度方法,每个物理内核对应一个锁,基于时间表的调度算法或基于优先级的调度算法从单个物理内核上的多个控制程序中确定一个控制程序得到所述物理内核对应的锁,获取所述物理内核对应的锁的控制程序独占所述物理内核执行内核态操作,根据所述控制程序的内核任务类型、优先级和/或运行时长生成所述调度配置信息;或者,
采用细粒度加锁调度方法,每个物理内核对应一个锁,按照控制程序所需计算资源将控制程序对应得到多个控制程序,根据所述多个控制程序之间的相关性将所述多个控制程序分配在不同的物理内核上,所述多个控制程序分别得到所属物理内核对应的锁,获取锁的所述多个控制程序通过多个物理内核同时执行内核态操作并发执行,根据所述控制程序的内核任务类型、优先级和/或运行时长生成所述调度配置信息。
7.根据权利要求5所述的系统,其特征在于,所述基于时间表的调度算法包括:
设定多个定时器,其中,第一定时器的时长为主帧时间,第二定时器按照所述主帧时间内的多个时间窗的前后顺序逐次启动,并且所述第二定时器的时长逐次与各时间窗的时长相同;
以所述主帧时间为周期,启动所述第一定时器和所述第二定时器的同时,根据时间表的设定调度控制程序,一旦所述第二定时器的定时到达,调度下一个控制程序,且一旦所述第一定时器的定时到达,启动下一个周期,所述时间表包括所述多个时间窗的起止时间和各时间窗对应的控制程序。
8.根据权利要求5所述的系统,其特征在于,所述基于优先级的调度算法包括:
遍历优先级主索引号位图确定最高优先级对应的主索引号;
遍历所述主索引号对应的优先级次索引号位图确定最高优先级对应的次索引号;
根据所述主索引号和所述次索引号计算当前的最高优先级,并确定所述最高优先级对应的控制程序。
9.根据权利要求1-8中任一所述的系统,其特征在于,物理内核上运行的控制程序包括运行周期相同或运行周期不同的控制程序。
10.一种工业服务器,包括:工业服务器硬件及基于所述工业服务器硬件的操作系统内核,所述操作系统内核支持多个物理内核,其特征在于,所述工业服务器还包括:权利要求1-9中任一所述的工业服务器的微内核架构控制系统。
CN201810745322.7A 2018-07-09 2018-07-09 工业服务器的微内核架构控制系统及工业服务器 Active CN108984267B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810745322.7A CN108984267B (zh) 2018-07-09 2018-07-09 工业服务器的微内核架构控制系统及工业服务器
JP2019001678A JP7101127B2 (ja) 2018-07-09 2019-01-09 産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバ
US16/243,438 US10977070B2 (en) 2018-07-09 2019-01-09 Control system for microkernel architecture of industrial server and industrial server comprising the same
EP19151214.4A EP3594809A1 (en) 2018-07-09 2019-01-10 Control system for microkernel architecture of industrial server and industrial server comprising the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810745322.7A CN108984267B (zh) 2018-07-09 2018-07-09 工业服务器的微内核架构控制系统及工业服务器

Publications (2)

Publication Number Publication Date
CN108984267A CN108984267A (zh) 2018-12-11
CN108984267B true CN108984267B (zh) 2020-11-13

Family

ID=64536458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810745322.7A Active CN108984267B (zh) 2018-07-09 2018-07-09 工业服务器的微内核架构控制系统及工业服务器

Country Status (4)

Country Link
US (1) US10977070B2 (zh)
EP (1) EP3594809A1 (zh)
JP (1) JP7101127B2 (zh)
CN (1) CN108984267B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110120940B (zh) * 2019-04-12 2020-07-07 华中科技大学 一种面向Docker容器的文件系统资源隔离方法
CN112416052A (zh) * 2020-12-10 2021-02-26 王志平 一种内核时间片超频的实现方法
US20220404787A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Systems and methods for hierarchical organization of software defined process control systems for industrial process plants
US11789428B2 (en) * 2021-06-16 2023-10-17 Fisher-Rosemount Systems, Inc. I/O server services for selecting and utilizing active controller outputs from containerized controller services in a process control environment
US20220404807A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Systems and Methods for Associating Modules in a Software Defined Control System for Industrial Process Plants
US20220404808A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc Systems and methods for associating modules in a software defined control system for industrial process plants
EP4224260A1 (en) * 2022-02-03 2023-08-09 Abb Schweiz Ag Method for providing a service-based control application for an industrial plant
CN114879593B (zh) * 2022-05-07 2023-03-14 科东(广州)软件科技有限公司 实时系统运行plc控制器的方法、装置、设备及存储介质
CN114911538A (zh) * 2022-05-17 2022-08-16 武汉深之度科技有限公司 一种运行系统的启动方法及计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015146104A1 (ja) * 2014-03-27 2015-10-01 日本電気株式会社 仮想マシンシステムおよびその制御方法およびその制御プログラム記録媒体
CN107102894A (zh) * 2017-04-07 2017-08-29 百度在线网络技术(北京)有限公司 任务调度方法、装置和系统
CN107506234A (zh) * 2017-07-03 2017-12-22 北京东土科技股份有限公司 一种虚拟机调度方法及装置
CN107624181A (zh) * 2015-06-17 2018-01-23 英特尔公司 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
JP4871948B2 (ja) 2008-12-02 2012-02-08 株式会社日立製作所 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
US8776088B2 (en) * 2009-03-30 2014-07-08 Microsoft Corporation Operating system distributed over heterogeneous platforms
KR101658035B1 (ko) * 2010-03-12 2016-10-04 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
US9727377B2 (en) * 2011-07-14 2017-08-08 Siemens Aktiengesellschaft Reducing the scan cycle time of control applications through multi-core execution of user programs
US10579274B2 (en) * 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015146104A1 (ja) * 2014-03-27 2015-10-01 日本電気株式会社 仮想マシンシステムおよびその制御方法およびその制御プログラム記録媒体
CN107624181A (zh) * 2015-06-17 2018-01-23 英特尔公司 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备
CN107102894A (zh) * 2017-04-07 2017-08-29 百度在线网络技术(北京)有限公司 任务调度方法、装置和系统
CN107506234A (zh) * 2017-07-03 2017-12-22 北京东土科技股份有限公司 一种虚拟机调度方法及装置
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统

Also Published As

Publication number Publication date
US20200012507A1 (en) 2020-01-09
CN108984267A (zh) 2018-12-11
JP7101127B2 (ja) 2022-07-14
EP3594809A1 (en) 2020-01-15
JP2020009403A (ja) 2020-01-16
US10977070B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
CN108984267B (zh) 工业服务器的微内核架构控制系统及工业服务器
US10754706B1 (en) Task scheduling for multiprocessor systems
CN107291547B (zh) 一种任务调度处理方法、装置及系统
Tan et al. Coupling task progress for mapreduce resource-aware scheduling
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US20090037926A1 (en) Methods and systems for time-sharing parallel applications with performance isolation and control through performance-targeted feedback-controlled real-time scheduling
US9582325B2 (en) Method for scheduling with deadline constraints, in particular in Linux, carried out in user space
CN111767134A (zh) 一种多任务动态资源调度方法
JP5458998B2 (ja) 仮想マシンシステムおよび仮想マシン管理方法
WO2014055961A2 (en) Real-time scheduling and task organization based on response time order of magnitude
CN104915253A (zh) 一种作业调度的方法及作业处理器
CN108170417B (zh) 一种在mesos集群中集成高性能的作业调度框架的方法和装置
Lettieri et al. A study of I/O performance of virtual machines
JP5726006B2 (ja) タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置
Li et al. Co-Scheduler: A coflow-aware data-parallel job scheduler in hybrid electrical/optical datacenter networks
Marau et al. Performing flexible control on low-cost microcontrollers using a minimal real-time kernel
CN109445847B (zh) 工业服务器微内核架构实现方法
CN115562846A (zh) 一种资源调度的方法、装置及计算节点
Teng et al. Scheduling real-time workflow on MapReduce-based cloud
Yan et al. Mixed time-triggered and event-triggered industrial controller in IoT environment
EP2637096B1 (en) A system for schedule and executing best-effort, real-time and high-performance computing (HPC) processes
CN109857539B (zh) 资源调度方法和终端
CN110109743B (zh) 一种实时进程调度方法
Xu et al. Mitigating service variability in mapreduce clusters via task cloning: A competitive analysis
Li et al. H-pfsp: Efficient hybrid parallel pfsp protected scheduling for mapreduce system

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181211

Assignee: Beijing Shuili Intelligent Building Technology Co.,Ltd.

Assignor: KYLAND TECHNOLOGY Co.,Ltd.

Contract record no.: X2022990000047

Denomination of invention: Micro kernel architecture control system and industrial server of industrial server

Granted publication date: 20201113

License type: Common License

Record date: 20220121