CN109709905A - 通信处理装置、存储介质和通信处理方法 - Google Patents
通信处理装置、存储介质和通信处理方法 Download PDFInfo
- Publication number
- CN109709905A CN109709905A CN201811249170.8A CN201811249170A CN109709905A CN 109709905 A CN109709905 A CN 109709905A CN 201811249170 A CN201811249170 A CN 201811249170A CN 109709905 A CN109709905 A CN 109709905A
- Authority
- CN
- China
- Prior art keywords
- real time
- request
- unit
- time communication
- communication
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了通信处理装置、存储介质和通信处理方法,所述通信处理方法包括:在从应用软件接收到并被配置为至少临时存储在请求缓冲器中的通信请求是数据的传输请求的情况下,从所述请求缓冲器提取所述传输请求;基于所述传输请求执行传输处理;检测与实时通信有关的诊断指标;在所述诊断指标在预定范围内的情况下,发送所述实时通信的状态的通知;以及当发送了所述通知时,调整用于从所述请求缓冲器提取所述传输请求的时间间隔。
Description
技术领域
本发明涉及通信处理装置、存储介质和通信处理方法。
背景技术
在过程控制系统等中,特别需要通信的实时性能。已经构建了使用被称为以太网和IP(因特网协议)并在其上执行实时通信的标准通信技术的机制作为现有领域的技术。
在非专利文献1(Koji Demachi及其他三人,“实时工厂网络系统Vnet/IP”(“Real-Time Plant Network System Vnet/IP”),横河电机技术报告,2005年第49卷第2期)中公开的技术中,为了实现实时性能,已经设计了向发射机站分配时隙等以防止分组丢失。此外,根据非专利文献1中公开的技术,能够使用开放标准协议来配置具有多供应商设备的网络(参见非专利文献1的图4等)。
要求利用更通用的产品实施构成用于工厂控制等目的的网络系统的网络的设备。在确保实时性能的同时将通用产品结合到这种设备中的情况下,可以期望降低设备成本和稳定设备供应。其中一个元素是OS(操作系统)。例如,可以考虑使用计算机作为通信处理装置来进行实时通信,并使用通用OS来控制在该计算机上执行的功能(程序)。这里,在系统中,实时性能是能够在设定时间内完成预定处理等的性能,并且是确保在设定时间内完成相应处理等的性能。更具体地,实时性能包括能够在设定时间内完成系统中的处理的性能,以及用于在设定时间内从系统外部获得响应的性能。此外,实时性能可以包括能够检测以下事件的性能:其中,在设定时间内处理等尚未完成并强制结束所述处理等。
但是,通用OS具有以下问题。问题在于,用于将CPU时间分配给被同时并行地执行的多个程序的OS的调度器不一定都适合于期望的通信处理装置。更具体地,例如,当调度执行用于工厂控制的处理的功能(为了方便起见称为“应用程序”)和管理来自该应用程序的通信请求的功能(为了方便起见称为“实时通信单元”)时,通用OS的调度器可能无法执行适当的计算资源分配。如上所述,在配置具有应用程序(可以在一个通信处理装置上同时并行地执行多个应用程序)和实时通信单元的通信处理装置的情况下,在调度中,实时通信单元的优先级被设置为高于应用程序的优先级。换句话说,为了保证实时性能,即使牺牲了应用程序的处理能力,也希望为实时通信单元分配足够的计算资源。然而,某个通用OS的调度器通过逻辑运行,其中,为了将计算资源分配给具有相对低优先级的任务,如果具有高优先级任务的CPU使用率超过了预定基准,则禁止将计算资源分配给具有高优先级的任务。在这种情况下,应该利用足够的计算资源推进处理的实时通信单元不能充分地执行处理。结果,可能发生如下事件:处理中的通信处理装置的实时性能受损。
发明内容
本发明是在认识到上述问题的基础上而做出的。换句话说,本发明的目的是提供一种能够在使用通用OS的调度器的同时通过将必要的计算资源分配给用于实时处理通信请求的实时通信单元来保证实时性能的通信处理装置、程序和通信处理方法,所述通信请求是从过程控制系统中的应用程序接收的。
本发明的另一个目的是提供一种具有以下通信功能的通信处理装置、程序和通信处理方法:所述通信功能不需要使用设备驱动程序来访问实时通信单元,并且能够在不总是分配CPU核的情况下实现,并且即使在虚拟化单元是专有软件的情况下也是可用的。
在过程控制系统中执行通信处理的通信处理装置包括:应用单元,其被配置为使应用软件被执行;以及实时通信单元,其被配置为从应用软件接收通信请求,并基于通信请求执行数据的发送和接收。并且实时通信单元包括:请求缓冲器,其被配置为至少临时存储从应用软件接收的通信请求;实时通信单元接口单元,其在通信请求是数据传输请求的情况下,被配置为从请求缓冲器中提取数据传输请求并执行传输处理;以及自诊断单元,其被配置为检测与实时通信单元的处理相关的诊断指标,并且在诊断指标在预定范围内的情况下,将实时通信单元的操作状态的通知发送至实时通信单元接口单元。并且实时通信单元接口单元被配置为在实时通信单元接口单元从自诊断单元接收到操作状态的通知的情况下,调整用于从请求缓冲器提取数据传输请求的时间间隔。
附图说明
图1是示出根据本发明的第一实施例的通信处理装置的粗略功能构造的框图。
图2是从不同的角度示出根据第一实施例的通信处理装置的功能构造的框图。
图3是示出根据第一实施例的实时通信单元接口的处理过程的流程图。
图4是示出根据第一实施例的实时通信单元的处理过程的流程图。
图5是示出根据本发明的第二实施例的通信处理装置的一些功能组件的功能框图。
图6是示出根据第二实施例的整个通信处理装置1的框图,其中重点图示用于分别地虚拟化PC和在多个软件上执行访客OS的功能。
图7是示出根据本发明的第三实施例的通信处理装置的一些功能组件的功能框图。
图8是示出根据第三实施例的通信处理装置的一些功能组件的功能框图。
具体实施方式
现在,参照附图,将说明多个实施例。
[第一实施例]
图1是示出根据本实施例的通信处理装置3的粗略功能构造的框图。根据本实施例的通信处理装置3被配置在PC 31上。PC 31(硬件)包括物理CPU 310、物理NIC 312和NIC接口313。此外,PC 31包括诸如存储器等的其他组件(图中未示出)。PC是“个人计算机”的缩写。CPU是“中央处理单元”的缩写。NIC是网络接口卡的缩写。NIC也被简称为“网卡”。而且,接口也被简称为“IF”。
在PC 31上,执行通用OS 36。OS是“操作系统”的缩写。通过使用通用OS 36配置通信处理装置3,可以降低通信处理装置3的成本,并且稳定地提供通信处理装置3。作为通用OS 36的示例,能够使用基于Windows(注册为商标)的OS,该OS是用于由MicrosoftCorporation(美国)制造的PC的OS。
物理CPU 310用于顺序地提取和执行存储器中加载的程序中包含的命令。物理CPU310可以包括多个核。此外,PC 31可以被配置为包括多个物理CPU 310。物理CPU 310的CPU时间被分配给用户空间38中的各个功能。
物理NIC 312是具有当PC 31中的各个功能经由外部网络执行通信时可用的接口功能的NIC。
NIC接口313是具有调解物理NIC 312的功能和在用户空间38中执行的功能的接口。
通用OS 36包括通用OS调度器37。在通用OS 36管理的用户空间38中,能够同时并行执行各种功能。通用OS调度器37根据将在用户空间38中执行的各个功能的优先级适当地分配计算资源,从而管理这些功能的执行。这里,计算资源通常是CPU时间(CPU资源,即,中央处理单元资源)。此外,可以包括除了CPU时间之外的资源作为计算资源。计算资源的示例包括分配的存储器、输入/输出处理装置等。通用OS调度器37可以不是实时调度器。此外,尽管图1仅示出了一个用户空间38。但是通用OS调度器37可以管理多个用户空间38。
此外,通用OS 36包括实时通信请求共用存储器191。
实时通信请求共用存储器191是在用户空间38中执行的每个任务可访问的存储器。在实时通信请求共用存储器191中设置有缓冲器,所述缓冲器在实时通信请求处理公共库192(下面将说明)临时存储诸如来自应用单元701的通信请求等各种信息的时候是可用的。作为通用OS 36的功能,能够提供能够由任务共享的存储空间。在本实施例中,在用户空间外部设置实时通信请求共用存储器191;然而,它被映射到应用单元701的存储空间中的预定区域。结果,应用单元701能够访问实时通信请求共用存储器191。
用户空间38是执行实时通信单元181和应用单元701-1、701-2、…的功能的环境。应用单元701执行实时通信请求处理公共库192和实时通信API公共库193(API是“应用程序编程接口”的缩写)的功能。实时通信请求处理公共库192和实时通信API公共库193的功能与应用程序逻辑适当地链接。能够使用程序和存储器来实现包括在用户空间38中的应用单元701、实时通信请求处理公共库192、实时通信API公共库193和实时通信单元181等。这些程序由CPU执行,该CPU由通用OS调度器37适当地分配。此外,例如使用半导体、磁记录介质等来实现存储器。然而,在用户空间38中执行的功能可能不一定需要具有存储器。相反,仅存储信息并且不执行处理的功能不需要具有程序。应用单元701-1、701-2、…也将被简称为“应用单元701。
实时通信请求处理公共库192不是作为设备驱动程序并入内核空间的库,而是在用户空间38中被执行。然而,实时通信请求处理公共库192的功能(程序)可以静态地链接到应用软件的程序(即,应用程序),或者实时通信请求处理公共库192的功能可以作为独立的任务执行。
实时通信请求处理公共库192中具有实时通信请求接收逻辑、实时通信传输逻辑和实时通信接收逻辑(所有这些都未在附图中示出)的功能。
在实时通信请求处理公共库192中包括的实时通信请求接收逻辑通过实时通信API公共库193接收来自诸如应用单元701-1、701-2等的各个应用逻辑的实时通信请求。此外,实时通信请求接收逻辑收集所接收的请求,并根据传输请求的优先级在缓冲器中写入与请求(例如,传输请求)相关的传输帧等。该缓冲器在实时通信请求共用存储器191内部退出。如果将传输帧存储在实时通信请求共用存储器191中包括的缓冲器中,则实时通信请求接收逻辑将其通知给包括在实时通信请求处理公共库192中的实时通信传输请求处理逻辑。
如果包括在实时通信请求处理公共库192中的实时通信传输逻辑从实时通信请求接收逻辑接收通知,则它从包括在实时通信请求共用存储器191中的缓冲器获取传输帧,并将传输帧发送到实时通信单元181。具体地,实时通信传输逻辑通过将传输帧写入包括在实时通信单元181中的实时通信单元接口182(实时通信单元接口)中包括的请求缓冲器188中来执行传输。此外,实时通信请求接收逻辑收集请求并将它们存储在实时通信请求共用存储器191中包括的缓冲器中的原因是:在将请求发送到实时通信单元181之前,根据传输请求的请求内容和优先级来安排各个应用的请求。
如果包括在实时通信请求处理公共库192中的实时通信接收逻辑接收来自实时通信单元181中包括的实时通信通知单元183的接收通知,则它接收从外部接收的帧,并将帧写入到实时通信请求共用存储器191中包括的缓冲器中。此外,实时通信接收逻辑通知实时通信请求接收逻辑它已经接收到帧。
基于从实时通信接收逻辑接收到的通知,实时通信请求接收逻辑从实时通信请求共用存储器191中包括的缓冲器中获取接收到的帧,并将接收到的帧返回给发出接收到的请求的应用单元701。
此外,实时通信请求处理公共库192、实时通信传输逻辑和实时通信接收过程逻辑对应于现有技术中的由设备驱动程序基于由微软公司(Microsoft Corporation)制作的Windows的网络驱动程序接口规范(NDIS:network driver interfaces specification)实现的功能。在现有技术中,已经在内核空间中执行NDIS。在用户空间中执行本实施例的实时通信请求处理公共库192的功能。
实时通信API公共库193是包括当应用单元701执行实时通信时可用的API的公共库。应用单元701可以静态地链接到实时通信API公共库193的功能并使用实时通信API公共库193的功能。可替代地,当执行应用单元701时,它们可以动态地链接到实时通信API公共库193的功能。
应用单元701-1、701-2等用于执行控制例如工厂和设备的处理。例如,应用单元701使用于执行工厂的测量数据的显示和对工厂的操作的人机界面(HMI:human-machineinterface)、其中创建用于控制工厂的控制器的控制程序的工程服务器(ENG:engineeringserver)、网关和与调用用于控制工厂的控制器等的应用相关的软件运行。可以同时并行执行多个应用单元701。在本实施例中,应用单元701首先将通信请求存储在实时通信请求共用存储器191中,该实时通信请求共用存储器191是由多个应用单元701共享的存储单元,然后,将从实时通信请求共用存储器191获取的通信请求发送到实时通信单元181。在用户空间38中执行的应用软件的数量(即,应用程序的数量)是任意的。应用单元701向实时通信单元181发出的请求是逻辑通信信道的建立或释放、帧(也称为分包等,并且是发送和接收数据中的逻辑单元)的发送或接收等。
实时通信单元181是具有基于来自应用单元701等的通信请求实时进行通信的功能的单元。具体地,实时通信单元181从应用单元701等接收通信请求,并基于通信请求执行数据的发送和接收。在实时通信单元181执行的处理中,自然需要将帧发送和帧接收等的时序与控制器801和PC 802的时序匹配。因此,需要实时性能。这里,实时性能是能够在预定时间内完成实时通信单元181向控制器801或PC 802发出的请求的性能。此外,实时性能是指如下性能:即使请求未在预定时间内完成(例如,可能通知错误等),仍能够在针对请求设置的预定时间内向实时通信单元181发送对请求的响应。这里,预定时间取决于应用,并且例如是在几毫秒到几百毫秒的范围内的时间。此外,实时通信单元181作为独立于应用单元701的任务执行。
因此,实时通信单元181与其他设备进行的通信无延迟地进行。换句话说,实时通信单元181能够确定地从作为发送目的地的另一方收到确认(Ack)。此外,用于向其他设备通知对应的设备(通信处理装置)的存在的诊断通信无延迟地被执行。由于确实执行了诊断通信,因此能够从其他设备正确地识别对应的设备的存在。因此,在系统中,对应的设备的通信问题不会对其他设备产生有害影响。
包括在PC 31中的物理CPU 310被分配给应用单元701和实时通信单元181。
此外,在通用OS 36中,高于应用单元701的任务的优先级的任务优先级被分配给实时通信单元181的任务。换句话说,由于通用OS调度器37优先将计算资源分配给实时通信单元181,因此,优先于同时并行执行的其他功能单元(例如,应用单元701)执行实时通信单元181。
任务优先级是用于指示通用OS调度器37优先于应用单元701将计算资源分配给实时通信单元181的指南。任务优先级通常是表示优先级顺序的数字(是用更大的数字还是更小的数字表示更高的优先级取决于安装的通用OS);然而,任务优先级不限于数字,并且通用OS调度器可以指定将被优先处理的调度算法的优先级。
此外,在本实施例中公开的设定优先级的方法不限于此,并且可以使用任何其他设定方法。
实时通信单元181的内部功能构造如下。实时通信单元181被配置为包括实时通信单元接口182、实时通信通知单元183、传输缓冲器184、自诊断单元185和自诊断指标存储单元186。此外,实时通信单元接口182中包括请求缓冲器188。上面列出的各个功能单元的功能如下。
实时通信单元接口182包括在实时通信单元181中,并具有接收来自应用单元701的请求和向应用单元701发送针对请求的响应的功能。在接收的通信请求是数据传输请求的情况下,实时通信单元接口182从请求缓冲器188获取传输请求,并执行传输处理。此外,如果实时通信单元接口182从自诊断单元185接收到操作状态通知(不稳定操作的通知),则它调整用于从请求缓冲器188获取传输请求的时间间隔。具体地,如果接收到不稳定操作的通知,则与实时通信单元接口182没有接收到相应通知的情况相比,实时通信单元接口182延迟从请求缓冲器188获取传输请求的时序。作为示例,实时通信单元接口182在从请求缓冲器188获取传输请求之前等待预定时间。此外,如果实时通信单元接口182在预定时间内连续接收来自自诊断单元185的操作状态通知,则与其没有在预定时间内连续接收通知的情况相比,实时通信单元接口182进一步调整从请求缓冲器188获取传输请求的时间间隔。作为示例,实时通信单元接口182进一步调整从请求缓冲器188获取传输请求的时间间隔。具体地,如果在预定时间内连续接收到这种通知,则与其没有在预定时间内连续接收通知的情况相比,实时通信单元接口进一步增加等待时间。实时通信单元接口182通过实时通信API公共库193和实时通信请求处理公共库192与应用单元701进行通信。如上所述,实时通信单元接口182是用于从应用单元701接收传输请求的接收单元。此外,如果从自诊断单元185接收到表示在实时通信单元181中已经发生了不稳定操作的通知,则实时通信单元接口182临时延迟对来自应用单元701的传输帧的处理。换句话说,实时通信单元接口182执行控制,使得从应用单元701输入到请求缓冲器188的传输请求不会过度地流入传输缓冲器184。换句话说,即使请求缓冲器188接收到大量传输请求,实时通信单元接口182也不会立即处理那些传输请求。因此,在实时通信单元181中发生不稳定操作的情况下,实时通信单元接口182具有缓解不稳定性的效果。
实时通信通知单元183将通知发送到实时通信请求处理公共库192。
具体地,实时通信通知单元183定期向实时通信请求处理公共库192发送时间通知。包括在实时通信请求处理公共库192中的实时通信传输请求处理逻辑响应于每次通知而开始操作,并检查是否存在已超时的帧传输处理。帧传输处理的超时是如下事件:在使用接收通知的传输完成通知被发送到实时通信请求处理公共库192之前(例如,在实时通信单元181从作为传输目的地的外部设备接收确认之前)经过预定时间时发生的事件。实时通信通知单元183能够通过发送与传输超时相关的时间通知来指示实时通信单元接口182执行帧的重传输(使用应用层的重传输)。
此外,如果实时通信通知单元183接收从外部设备向通信处理装置1发送的帧,则它向包括在实时通信请求处理公共库192中的实时通信请求接收逻辑和实时通信接收处理逻辑发送接收通知。结果,包括在实时通信请求处理公共库192中的实时通信接收处理逻辑能够获取接收的帧。
传输缓冲器184是用于至少临时地存储待传输的帧上的数据的缓冲器。在传输缓冲器184中,实时通信单元接口182将数据写入待传输的帧。写入传输缓冲器184中的帧被顺序读取,并被发送到外部设备。此外,传输缓冲器184基本上使用FIFO(先进先出);然而,可以基于帧的优先级等来传递处理顺序。
自诊断单元185检测实时通信单元181的实时通信处理和状态中的不稳定操作。如果检测到不稳定操作,则自诊断单元185将不稳定操作通知给实时通信单元接口182。具体地,自诊断单元185检测实时通信处理和状态中的不稳定操作(例如,诸如CPU使用率等的处理负载、响应时滞等),并且在识别出不稳定操作的情况下,自诊断单元将操作状态(不稳定操作)通知给实时通信单元接口182。具体地,自诊断单元185检测与实时通信单元181的处理相关的诊断指标(诸如CPU使用率、处理响应时间等的索引值),并且在诊断指标在预定范围内的情况下,自诊断单元将操作状态通知给实时通信单元接口。例如,在CPU使用率超过预定阈值的情况下,或者在处理响应时间超过预定阈值的情况下,自诊断单元185确定发生了不稳定操作,并将通知发送到实时通信单元接口182。自诊断单元185参考自诊断指标存储单元186(将在下面说明),以便检测不稳定的操作。自诊断单元185通过监测例如(1)CPU负载(CPU使用率)和(2)响应性(响应时间)来检测实时通信单元181的不稳定操作。现在,将对这些进行说明。
(1)CPU负载
自诊断单元185从通用OS 36获取实时通信单元181的CPU使用率的值。通用OS 36具有在程序获取OS的性能数据时可用的接口,并且性能数据包括各个任务的CPU使用率的值。在实时通信单元181的CPU使用率超过预定阈值的情况下,自诊断单元185将该状态检测为不稳定操作。
然而,自诊断单元185可以被配置为基于其他索引来检测不稳定操作。例如,自诊断单元185可以获取数字信息,例如,整个通用OS 36的CPU使用率、分配给通用OS 36执行的虚拟硬件15的CPU核的数量等。如果使用那些值中的一些值的组合的判定结果超过了预定阈值(例如,如果当CPU核数为4时,CPU使用率超过30%,或者如果当CPU核数为8时,CPU使用率超过15%等),则自诊断单元185检测到发生了不稳定操作。
(2)响应性
自诊断单元185检测实时通信单元181的响应性低的情况,作为发生不稳定操作的情况。具体地,自诊断单元185获取与实时通信单元181执行帧发送时已经执行的重试次数有关的信息。在实时通信单元181被指示延迟处理的情况下发生传输重试。在发生重试的情况下,可以认为,通信中的实时性能受到了损害。因此,在与一帧相关的重试次数超过预定阈值的情况下,或者在预定时段中的传输重试的总次数超过预定阈值的情况下,自诊断单元185将该状态确定为不稳定操作。
自诊断单元185可以被配置为基于除了上面列出的索引之外的状态来检测不稳定操作。此外,自诊断单元185用于检测不稳定操作的各种阈值(如上所述)能够被预先存储在自诊断指标存储单元186(下面将说明)中。此外,可以从外部设置这些阈值。
自诊断指标存储单元186存储在自诊断单元185检测到不稳定操作时可用的多对索引和用于这些索引的阈值。例如,自诊断指标存储单元186存储用于实时通信单元181的CPU使用率的阈值、用于每个传输帧的重试次数的阈值、以及其他阈值。
请求缓冲器188是用于至少临时存储来自应用单元701等的通信请求的缓冲器。从实时通信请求处理公共库192发送的通信请求被写入请求缓冲器188中。写入的通信请求的示例包括帧传输请求、帧接收请求等。随后,实时通信单元接口182读取并处理写入请求缓冲器188中的帧。此外,请求缓冲器188基本上使用FIFO(先进先出);然而,可以基于通信请求的优先级等来传递处理顺序。
图2是从不同的角度示出根据第一实施例的通信处理装置3的功能构造的框图。
图2的通用OS 36与图1中所示的通用OS 36相同。通用OS 36包括用户空间38和内核空间39。用户空间38包括应用单元701-1、701-2、…和实时通信单元181。应用单元701-1、701-2、…和实时通信单元181作为用户空间38中的独立任务来执行。如图所示,在本实施例中,例如,实时通信请求处理公共库192的功能和实时通信API公共库193的功能作为库函数被并入应用单元701-1、701-2、….中。此外,内核空间39包括上述实时通信请求共用存储器191和通用OS调度器37。
如上所述,PC 31(硬件)包括物理CPU 310、物理NIC 312和NIC接口313。
PC 31通过物理NIC 312连接到控制网络800。控制网络800是用于与构成过程控制系统的其他设备进行通信的网络。控制网络800连接到诸如控制器801和PC 802等的设备。PC 31通过控制网络800(例如,通过HMI)与控制器801和PC 802进行通信。此外,控制器801将测量数据发送到PC 31,并从PC 31接收操作量。此外,控制器801连接到多个现场设备803。控制器801通过控制现场设备803来执行工厂控制。例如,现场设备803是以下设备:诸如流量计、温度计、比重计、压力计等的传感器、阀门、泵以及致动器等。
现在,将说明具有上述配置的通信处理装置3是如何操作的,以及如何产生其特殊效果。
最近,由于CPU性能的改善,即使通过通用OS 36,也可以确保最大等待时间约为25毫秒的实时性能。例如,在使用作为实时工厂网络系统的Vnet/IP(已注册为商标)的情况下,用于确定传输时刻等的时隙之间的间隔为100毫秒,如果延迟小于100毫秒,则能够通过执行补偿延迟的处理来继续实时通信。换句话说,理论上,能够在通用OS上实现实时通信功能。然而,在实际应用的系统中,在通用OS 36上,并行地执行实时通信单元181和其他功能。这里,其他功能例如是不执行实时通信的应用软件。此外,其他示例是如下应用软件:其执行实时通信并且使用除了实时通信单元181之外的通信功能执行非实时通信等。
为了防止由于这种应用软件的操作而导致的响应性恶化等,与相比,能够使用向需要高响应性的任务(例如,实时通信单元181的任务)分配比被分配给应用软件的任务优先级更高的任务优先级的方法。
然而,与实时OS的调度器不同,现有通用OS的调度器的特征在于,甚至为具有低优先级的任务分配一些必要的计算资源,使得任务能够并行执行。原因是,这种通用OS调度器甚至为具有低优先级的任务分配预定量的计算资源,以防止这些任务的执行完全停止。换句话说,如果使用这种通用OS构造控制系统,则具有高优先级的任务的实时性能可能受到其他应用(具有低优先级)等的操作的影响。在某些情况下,100毫秒级的高优先级任务的处理可能停止。
通用OS的调度器被配置为将CPU时间分配给任务,使得更多CPU时间被分配给具有更高优先级的任务。然而,在高优先级任务使用过多CPU时间的情况下,某种类型的通用OS的调度器禁止执行高优先级任务,并且将相应的CPU时间量分配给低优先级任务。换句话说,通过这样做,这种通用OS调度器试图确保管理下的所有任务并行执行。在调度器执行这种控制的情况下,高优先级任务被延迟,并且实时性能受损。
为此,根据本实施例的实时通信单元181中包括的自诊断单元185监测实时通信单元181的处理负载。此外,如果检测到实时通信单元181的处理负载已达到阈值,则自诊断单元185指示实时通信单元接口182减少帧传输的处理负载。作为用于监测处理负载的诊断指标的示例,自诊断单元185检测实时通信单元181的CPU使用率是否超过了预定阈值。能够基于分配给通用OS 36的CPU核的数量和高负载测试的结果,从外部设置该阈值。如果实时通信单元接口182从自诊断单元185接收到表示处理负载变高的通知,则其执行用于减少实时通信单元181的处理负载的控制。作为具体示例,实时通信单元接口182抑制从请求缓冲器188获取应用单元701的帧传输请求的量。例如,该量是每单位时间的传输帧数或每单位时间的传输字节数等。例如,实时通信单元接口182等待预定时间(例如,在1毫秒或更短的范围内),以便从请求缓冲器188获取传输请求。这降低了实时通信单元181的计算资源使用率(例如CPU使用率)。
通过上述控制,高优先级任务(实时通信单元181)的计算资源使用率(例如,CPU使用率)被抑制到预定值或更小。因此,如果低优先级任务(应用单元701等)使用过多的CPU时间量,则通用OS调度器37停止执行低优先级任务,并且优先将CPU时间分配给高优先级任务。换句话说,自诊断单元185和实时通信单元接口182相互协作地抑制实时通信单元181的处理负载,从而实时通信单元181能够始终确保必要的CPU时间。换言之,自诊断单元185和实时通信单元接口182相互协作地减轻了实时通信单元181的不稳定操作,从而实时通信单元181能够始终具有必要的CPU时间量。换句话说,保持了通信处理装置3的实时性能。
如上所述,在包括实时通信单元181的本实施例的通信处理装置3中,实时性能没有受损。换句话说,在通信处理装置3中,在与已启动的另一设备的通信中,以及在将相应设备的存在通知给其他设备的诊断通信时,不会发生任何通信延迟。
现在,将说明实时通信请求处理公共库192和实时通信单元181分离为不同功能单元的原因。
实时通信单元181根据来自多个应用单元701的请求执行处理。因此,期望防止处理负载集中在实时通信单元181上。如果实时通信请求处理公共库192和实时通信单元181分离,则能够减少实时通信单元181的处理负载。在将相应功能静态地链接到应用单元701的同时执行实时通信请求处理公共库192的功能的情况下,应用单元701的任务承担实时通信请求处理公共库192的功能的处理负载。因此,应用单元701能够在不考虑实时通信单元181的处理负载状态的情况下发出通信请求。
如果实时通信请求处理公共库192的功能正被用于实时通信单元(181)侧的任务,则实时通信单元181的计算资源(例如,CPU使用率)的消耗取决于应用单元701的请求。这可能是损害通信处理装置3的实时性能的因素。
如果实时通信请求处理公共库192的功能独立于实时通信单元181配置,则发生以下情况。即使从应用单元701等发出大量通信请求,通信请求也被存储在实时通信单元接口182的请求缓冲器188中。因此,实时通信单元181仅以被抑制的速度执行通信请求的处理。因此,保持了通信处理装置3的实时性能。
现在,将说明通信处理装置3的内部功能的处理过程。
图3是示出包括在实时通信单元181中的实时通信单元接口182的操作过程的流程图。沿着该流程图,将进行以下说明。
首先,在步骤S11中,实时通信单元接口182确定最近是否从自诊断单元185接收到任何不稳定操作的通知。在最近接收到不稳定操作的通知的情况下(步骤S11中的“是”),实时通信单元接口进入步骤S12;而在最近没有接收到任何不稳定操作的通知的情况下(步骤S11中的“否”),实时通信单元接口进入步骤S15。
在进入到步骤S12的情况下,在步骤S12中,实时通信单元接口182确定在过去的预定时段内是否已连续接收到不稳定操作的通知。在连续接收到不稳定操作的通知的情况下(步骤S12中的“是”),实时通信单元接口前进至步骤S13;而在没有连续接收到不稳定操作的通知的情况下(步骤S12中的“否”),实时通信单元接口前进至步骤S14。
在进入步骤S13的情况下,在步骤S13中,实时通信单元接口182将给定时间添加到设定时间。设定时间是实时通信单元接口在步骤S14中应该等待的设定时间。此外,在步骤S13中添加的时间是正值。换句话说,在步骤S13的处理中,实时通信单元接口182增加设定时间。
在(从步骤S12或S13)前进至步骤S14的情况下,在步骤S14中,实时通信单元接口182等待设定时间。换句话说,实时通信单元接口182在进入下一步骤之前等待设定时间。当实时通信单元接口182在步骤S14中等待时,由于计算资源被分配给在实时通信单元181中执行的其他处理和应用单元701的处理,因此,与实时通信单元接口不等待的情况相比,实时通信单元181的处理负载减少。在实时通信单元接口182开始等待之后,如果经过了设定时间,则计算资源被再分配给实时通信单元接口182,并且实时通信单元接口进入下一步骤的处理。在完成步骤S14的处理之后,实时通信单元接口进入步骤S16。
此外,在本实施例中,这种对计算资源分配的控制由通用OS调度器37执行。
在进入步骤S15的情况下,在步骤S15中,实时通信单元接口182将设定时间重置为初始值。换句话说,即使在步骤S13中已经增加设定时间的情况下,如果在步骤S15之前的过程中没有接收到不稳定操作的通知,则实时通信单元接口将设定时间返回到初始值。
如果在步骤S11中确定尚未接收到任何不稳定操作通知(“否”),则实时通信单元接口立即执行步骤S15的处理以重置设定时间。然而,实时通信单元接口可以被配置为仅在预定时间内未接收到任何不稳定操作通知的状态的情况下,在步骤S15中重置设定时间。
在完成步骤S15的处理之后,实时通信单元接口进入步骤S16。
在步骤S16中,实时通信单元接口182确定是否存在从应用单元701-1或701-2等(应用)请求的任何传输帧。具体地,参考请求缓冲器188,实时通信单元接口182确定是否存在任何传输帧。在存在传输帧的情况下(步骤S16中的“是”),实时通信单元接口进入步骤S17。在不存在传输帧的情况下(步骤S16中的“否”),实时通信单元接口跳转到步骤S19。
在进入步骤S17的情况下,在步骤S17中,实时通信单元接口182从请求缓冲器188获取一个传输帧。然而,在可以一次获取并发送多个传输帧的情况下,实时通信单元接口182从请求缓冲器188获取预定数量的或更少的传输帧。此外,存储在请求缓冲器188中的传输帧在成功传输至传输缓冲器184之后被适当地删除。
随后,在步骤S18中,实时通信单元接口182将在步骤S17中获取的传输帧存储在传输缓冲器184中。
此外,存储在传输缓冲器184中的传输帧通过实时通信单元181被顺序发送(见图4)。
随后,在步骤S19中,实时通信单元接口182确定是否需要结束实时通信单元181的处理。例如,如果从实时通信单元181中的上层管理功能输入结束指令,如果从操作员等输入结束命令,如果作为由错误事件等引起的中断的分析结果确定需要结束处理,则结束实时通信单元181的处理。在结束实时通信单元181的情况下(步骤S19中的“是”),结束整个流程图的处理。在未结束实时通信单元181的情况下(步骤S19中的“否”),实时通信单元接口返回步骤S11,并重复上述处理。
此外,步骤S14的等待时间(设定时间)由预定的初始值和在步骤S13中添加的附加值确定。该附加值也能够提前确定。如果在预定时段内连续接收到不稳定操作通知的状态继续,则实时通信单元接口可以重复步骤S13以多次地(通过将处理从步骤S19返回到步骤S11)为设定时间添加时间。
此外,不管在步骤S13中是否将时间添加至设定时间,都可以预先确定步骤S14的等待时间的上限或下限。在预先确定上限的情况下,步骤S13的添加结果不应超过该上限。
此外,步骤S14的等待时间也可以通过考虑不稳定操作通知的内容来确定。步骤S14的等待时间不限于基于时钟的值,并且例如,可以使用以下操作:等待,直到发生某种状态改变,例如,直到解决了不稳定操作。
此外,在步骤S12中,实时通信单元接口判定是否已连续接收到不稳定操作的通知。执行这种判定的具体方法的示例如下。具体地,在步骤S11中,实时通信单元接口判定是否已接收到任何不稳定操作通知,并且在最近执行的步骤S11的m次判定中的n次或以上的判定结果为“是”(已接收到不稳定操作通知),并且最新判定的结果也为“是”(已接收到不稳定操作通知)的情况下,判定在预定时段内已连续接收到不稳定操作通知(步骤S12中的“是”)。这里,m和n分别是预定的整数,并且满足1≤n≤m。
在图3所示的流程图中,当不稳定操作的状态继续时,步骤S11的判定结果一直为“是”。在这种情况下,在从请求缓冲器188获取传输请求时,涉及步骤S14的等待。根据从请求缓冲器188获取的传输请求的频率与传输请求到达请求缓冲器188的频率之间的关系,传输请求停留在请求缓冲器188中的时间可以是包括在实时通信请求处理公共库192中的实时通信传输请求处理逻辑用来识别帧传输处理的超时所需的时间。在包括上述情况的每种情况下,实时通信单元接口182抑制传输请求处理量,直到解决了不稳定操作的状态。
图4是示出实时通信单元181的操作过程的流程图。沿着该流程图,将进行以下描述。
在步骤S21中,实时通信单元181判定是否存在写入传输缓冲器184中的任何传输帧。在传输缓冲器184中存在任何传输帧的情况下(步骤S21中的“是”),实时通信单元进入步骤S22。在传输缓冲器184中不存在传输帧的情况下(步骤S21的“否”),实时通信单元跳转到步骤S26。
在进入步骤S22的情况下,实时通信单元181从传输缓冲器184获取一个传输帧,并发送该帧。然而,在可以一次获取并发送多个传输帧的情况下,实时通信单元181从传输缓冲器184获取预定数量或更少的传输帧,并发送这些帧。
在步骤S23中,实时通信单元181在预定时间内等待来自在步骤S22中帧被发送至的另一方(帧接收方)的确认(Ack)到达。
在步骤S24中,实时通信单元181确定期望的确认是否已到达。在确认已到达的情况下(步骤S24中的“是”),即,如果确认另一方已接收到发送的帧,则实时通信单元进入步骤S25。在确认未到达的情况下(步骤S24中的“否“),即,在对应于发送的帧的否定确认已到达的情况下,或者在期望的确认已超时的情况下,实时通信单元跳转到步骤S26(换句话说,实时通信单元跳过步骤S25的处理)。
在步骤S25中,实时通信单元181从传输缓冲器184中删除已成功发送的帧,即已获得确认的传输帧。
此外,在已执行预定次数的处理的同时确认尚未到达的情况下,实时通信单元181可以确定传输目的地不能执行通信。在这种情况下,实时通信单元181可以从传输缓冲器中删除传输帧,并使传输失败。
在步骤S26中,实时通信单元181确定是否需要结束实时通信单元181的处理。在如图3的步骤S19所述的情况下,需要结束实时通信单元181的处理。在实时通信单元181结束的情况下(步骤S26中的“是”),结束整个流程图的处理。在实时通信单元181未结束的情况下(步骤S26中的“否”),实时通信单元返回到步骤S21,并重复上述处理。
如上所述,根据本实施例,获得以下效果。
通信处理装置3基于实时通信单元181的处理负载来调整实时通信单元181的吞吐量。具体地,例如,通信处理装置执行调整,以使得流入待处理的请求的实时通信单元181执行处理的速度相对更快或更慢。通信处理装置基于自诊断单元185检测到的处理负载的大小来执行这种调整。具体地,例如,通信处理装置调整实时通信单元181从请求缓冲器188获取的传输请求量(或待处理的数据量),从而增加或减少与处理相关的CPU使用时间。结果,可以是非实时处理的应用单元701的处理与需要实时处理的实时通信单元181的处理之间的负载平衡变得可能。由于上述效果,确保了通信处理装置3在处理中的实时性能。
此外,在本实施例中,可以通过通用OS调度器37针对实时通信单元181执行的任务调整来防止实时性能受损。换句话说,能够避免如下情况:由于实时通信单元181的处理负载增加(例如,由于CPU使用率已经高于预定水平)而导致分配给实时通信单元181的CPU时间量减少。
此外,在通过应用单元701的任务执行实时通信请求处理公共库192的逻辑的情况下,该逻辑的处理负载不施加于实时通信单元181,并且能够保持防止通信处理装置3的实时性能受损的状态。
此外,通过实现处理负载平衡,能够防止与实时通信单元181已经启动的另一设备的通信,并防止将通信处理装置的存在通知给其他设备的诊断通信延迟。
此外,由于实时通信请求处理公共库192和实时通信单元181不是通用OS的内核空间中的模块(设备驱动程序),因此,能够避免维护方面的问题和可能由设备驱动设备引起的兼容性问题。
[第二实施例]
现在,将说明本发明的第二实施例。然而,在本实施例的以下说明中,省略了在第一实施例中已经说明的一些要点。现在,将主要说明本实施例特有的要点。
图5是示出根据第二实施例的通信处理装置的一些功能组件的功能电路块。如图所示,通信处理装置1包括在PC上执行的虚拟硬件15、以及在虚拟硬件15上执行的访客OS16。此外,访客OS 16可以是与第一实施例相同的通用OS。本实施例的特征在于,设置有虚拟化单元12以便执行多个虚拟硬件15并在多个虚拟硬件15上执行上述访客OS 16。
每个访客OS 16具有用户空间18和内核空间19。
在内核空间19中,存在通用OS调度器17和实时通信请求共用存储器191。
通用OS调度器17调度要在用户空间18中执行的多个任务。换句话说,通用OS调度器17将计算资源分配给用户空间18中的各个任务。即使在本实施例中,每个访客OS 16也不是实时控制的OS,并且每个通用OS调度器17也不是实时调度器。此外,尽管图5仅示出了一个用户空间18,但是通用OS调度器17可以管理多个用户空间18。
在用户空间18中,存在应用单元701-1、701-2、…和实时通信单元181。
在应用单元701-1、701-2、…中,结合了实时通信请求处理公共库192的库函数功能和实时通信API公共库193的的库函数的功能。
实时通信单元181作为独立于应用单元701-1、701-2、….的任务而被执行。
图6是示出根据本实施例的整个通信处理装置1的框图,其中将重点放在分别用于虚拟化PC和在多个虚拟硬件上执行访客OS的功能上。如图所示,通信处理装置1包括在PC(个人电脑)上执行的虚拟硬件15以及在虚拟硬件15上执行的访客OS 16。
图6的访客OS 16-1和16-2均与图5中所示的访客OS 16相同。尽管图6示出了执行两个访客OS的情况,但是访客OS的数量是任意的,并且可以是一个,或者可以是三个或更多个。此外,虚拟硬件15-1和虚拟硬件15-2均与图5中所示的虚拟硬件15相同。在虚拟硬件15-1上,执行访客OS 16-1,并且在虚拟硬件15-2上,执行访客OS 16-2。在包括三个或更多个虚拟硬件15的情况下,类似地,能够分别在多个虚拟硬件15上执行访客OS 16。
此外,如图6所示,使用PC 11来实现通信处理装置1。PC 11具有普通计算机具有的功能,例如处理器、存储器、通信接口等的功能。在PC 11上,由软件实现的功能作为可执行程序存储在适当的存储区域中。此外,这些程序由处理器(以下的物理CPU 110)适当地执行。
PC 11是硬件,并且被配置为包括物理CPU 110、通用NIC 112和NIC接口113。
物理CPU 110中包括核111-1、111-2、111-3、…。包括在物理CPU 110中的核的数量是任意的。各个核111依次地获取并执行程序中包含的命令。此外,PC 11可以被配置为包括多个物理CPU 110。
通用NIC 112用于接收和执行从PC 11上的程序发送的通信请求等。通用NIC 112经由连接到PC 11的网络执行与外部设备的通信。
NIC接口113用于提供通用NIC 112与PC 11上的程序等之间的接口。
此外,PC 11具有虚拟化单元12的功能。虚拟化单元12是通过硬件和软件的协作来实现的。虚拟化单元12包括虚拟化单元调度器14和其中的多个虚拟硬件15。
虚拟化单元调度器14将包括在物理CPU 110中的多个核111的CPU时间适当地分配给包括在多个虚拟硬件15中的虚拟CPU核151。
虚拟硬件15是通过虚拟化单元12的功能实现的虚拟计算机硬件。虚拟硬件15至少具有虚拟CPU和虚拟存储器。此外,虚拟硬件15具有用于执行通信的网络接口功能。虚拟硬件15的这些虚拟资源经由虚拟化单元12与实际的物理计算机硬件资源相关联。
虚拟硬件15的内部配置如下。例如,虚拟硬件15-1包括虚拟CPU核151-1、虚拟NIC152-1和NIC接口153-1。此外,虚拟硬件15-2包括虚拟CPU核151-2、虚拟NIC 152-2和NIC接口153-2。在存在虚拟硬件15-3(等)的情况下,每个虚拟硬件具有与虚拟硬件15-1等相同的配置。此外,虚拟硬件15中的功能是通过虚拟化技术实现的功能。
此外,在附图等中,虚拟硬件及其内部组件由具有后缀(1、2等)的附图标记表示;然而,它们也简称为虚拟硬件15、虚拟CPU核151、虚拟NIC 152、NIC接口153等。
虚拟CPU核151-1、151-2等中的每一个均是由虚拟化单元12实现的虚拟CPU核。每个虚拟CPU核151是虚拟化单元12的任务之一,并且虚拟化单元调度器14将物理CPU的核分配给这种任务,使得能够执行被分配给虚拟CPU核151的程序,从而实现虚拟CPU核的功能。在虚拟硬件15被配置为具有多核结构的情况下,虚拟化单元12将多个核111与多个虚拟CPU核151相关联,使得能够并行地在虚拟CPU核151上执行各个任务。将物理CPU 110的专用核111分配给各个虚拟CPU核151。换句话说,分配给某个虚拟CPU核151的核111与分配给其他虚拟CPU核151的核以及分配给虚拟化单元12的处理的核111不同。因此,由于计算资源,特别是CPU资源不竞争多个虚拟硬件15,因此容易确保访客OS 16的实时性能。
此外,用户(通信处理装置1的管理者)能够使用管理虚拟化单元12的工具将物理CPU 110的核111的分配设置到虚拟CPU核151。在本实施例中,包括分配给虚拟CPU核151的核111的数量的每个硬件15的虚拟资源配置基本上是固定的。然而,由于虚拟化单元12的实现,即使在执行虚拟硬件15时,也可以通过使用工具进行设置,来改变包括分配的虚拟CPU核151的数量的虚拟资源配置,使得虚拟计算资源量增加。此外,如果虚拟资源配置变化,使得计算资源量减少,则当执行虚拟硬件15时,计算资源量的突然减少会对实时性能产生不良影响。因此,原则上这种改变是不可能的。
在物理计算机硬件资源量小于虚拟硬件15要求的虚拟资源量并且待分配的计算资源量不足的情况下,还能够使至少一些虚拟硬件共享计算资源。这被称为过量使用(overcommitment)。然而,如果执行过量使用,则即使在某个虚拟硬件15的处理负载变高的情况下,也可能无法将足够量的计算资源分配给与对应的这个虚拟硬件共享计算资源的其他虚拟硬件15。这种情况可能损害访客OS 16的实时性能。因此,实际上,不执行过量使用。
换句话说,在本实施例中,在虚拟硬件15上执行访客OS 16(通用OS)。此外,多个虚拟硬件15不能共享任何物理核。换句话说,多个虚拟硬件不能共享分别分配给多个虚拟硬件的CPU资源(中央处理单元资源)。因此,可以确保访客OS 16在处理中的实时性能。
虚拟NIC 152-1、152-2等分别是用于虚拟硬件15-1、15-2等的虚拟网络接口卡。虚拟NIC 152的功能由虚拟化单元12实现。换句话说,从访客OS 16到虚拟NIC 152的通信请求被传送到通用NIC 112。
此外,NIC接口153-1、153-2等是用于从访客OS 16-1、16-2等访问虚拟NIC 152-1、152-2等的接口。
在图6所示的示例中,在访客OS 16-1上,执行应用单元701-11和701-12。此外,在访客OS 16-2上,执行应用单元701-13。
例如,应用单元701-11是人机界面(HMI:human-machine interface)。
例如,应用单元701-12是工程服务器(ENG:engineering server)。
例如,应用单元701-13是控制器。
在访客OS 16-1和16-2的每一个中,执行实时通信单元181;然而,在附图中未示出本实施例的实时通信单元181。
与第一实施例的情况类似,即使在本实施例中,PC 11通过通用NIC112连接到控制网络800。控制网络800是用于与构成过程控制系统的其他设备进行通信的网络。控制网络800连接到诸如控制器801、PC 802等的设备。PC 11经由控制网络800(通过HMI)执行与控制器801和PC 802的通信。此外,控制器801将测量数据发送到PC 11,并从PC 11接收操作量。此外,控制器801连接到多个现场设备803。控制器801通过控制现场设备803来执行工厂控制。例如,现场设备803是以下设备,例如流量计、温度计、比重计、压力计等传感器、阀门、泵和致动器。
在本实施例中,通过虚拟化单元12,在一个PC 11上执行多个访客OS 16。此外,通过由每个访客OS 16执行的实时通信单元181的功能,与第一实施例类似地,确保了在每个访客OS 16上执行的功能中的实时性能。
此外,在本实施例中,由于在访客OS 16上执行实时通信单元181,因此即使在虚拟化单元12是专有软件并且不在虚拟化单元上执行功能扩展的情况下,也能够进行实时控制通信。
[第三实施例]
现在,将说明本发明的第三实施例。然而,在本实施例的以下说明中,省略了在第一和第二实施例中已经说明的一些要点。现在,将主要说明本实施例特有的要点。
在第一实施例和第二实施例中,设置实时通信请求共用存储器191,以便可从实时通信请求处理公共库192评价。来自应用单元701的通信请求被临时存储在实时通信请求共用存储器191中包括的缓冲器中。然而,即使从每个应用单元701,实时通信请求共用存储器191也是可读和可写的。换句话说,存在下述安全问题:某个应用单元701可能干扰其他应用单元701的通信请求。这里,干扰通信请求是诸如在未经许可的情况下读取或重写通信请求的事件。
为了解决上述问题,在本实施例中,在用户空间18中,设置应用代理单元291。
图7是示出根据本实施例的通信处理装置2的一些功能组件的功能电路块。与第二实施例(见图6)类似,在虚拟硬件15上执行图7中所示的访客OS 16。在根据本实施例的通信处理装置2中,如图7所示,在用户空间18中,执行应用单元701-1、701-2、…、实时通信API公共库193、应用代理单元291和实时通信单元181的功能。
其中,应用单元701-1、701-2、…、实时通信API公共库193和实时通信单元181的各个单元的功能与第一实施例和第二实施例的那些功能相同。
作为本实施例特有的功能的应用代理单元291作为独立于应用单元701的任务来执行。此外,应用代理单元291从应用单元701接收计算资源,并将接收的计算资源存储在作为在相应任务中提供的专用(私有)存储单元的实时通信请求任务内部存储器293中,然后将从实时通信请求任务内部存储器293获取的通信请求转送到实时通信单元181。应用代理单元291中具有实时通信请求任务内部存储器293,并使用实时通信请求任务内部存储器293作为第一实施例和第二实施例的实时通信请求共用存储器191的替代手段。换句话说,应用代理单元291是独立的任务,并且实时通信请求任务内部存储器293被设置在专用存储区域中。因此,其他任务(例如,应用单元701)不能干扰实时通信请求任务内部存储器293(即,其他任务不能执行读写)。因此,设置在实时通信请求任务内部存储器293中的缓冲器中存储的通信请求仅能够被应用代理单元291读取和写入。因此,确保了安全性。
应用代理单元291被配置为包括实时通信请求处理库292、实时通信请求任务内部存储器293和应用请求处理单元294-1、294-2、….。应用请求处理单元294-1、294-2、….也被简称为“应用请求处理单元294”。
实时通信请求处理库292具有与第一实施例和第二实施例的实时通信请求处理公共库192相同的功能。换句话说,实时通信请求处理库292从应用单元701接收数据传输请求和数据接收请求,并且要求实时通信单元181根据那些请求执行通信处理。然而,在应用代理单元291的任务中执行本实施例的实时通信请求处理库292。换句话说,与第一实施例和第二实施例的实时通信请求处理公共库192不同,实时通信请求处理库292不被多个应用单元701共享。此外,实时通信请求处理库292访问在应用代理单元291的任务的专用区域(私有区域)中设置的实时通信请求任务内部存储器293,而不是由任务共享的存储器。换句话说,实时通信请求处理库292将请求写入实时通信请求任务内部存储器293中设置的缓冲器中,并从同一缓冲器获取请求。
实时通信请求任务内部存储器293是属于应用代理单元291的任务的专用区域的存储器。如上所述,实时通信请求任务内部存储器293具有用于临时存储通信请求的缓冲器。
应用请求处理单元294-1、294-2、…分别对应于应用单元701-1、701-2、…而设置。应用请求处理单元294-1处理从应用单元701-1接收的传输请求和接收请求,并用作通往实时通信请求处理库292的功能的桥接器。其他应用请求处理单元294-2、…也是如此。此外,应用请求处理单元294的数量是任意的,并且能够根据应用单元701的数量而变化。
然而,多个应用请求处理单元294可以对应于一个应用单元701。在这种情况下,例如,可以针对每种通信类型或每个通信方向设置应用请求处理单元294。使用分配给任务的计算资源并行地执行多个应用请求处理单元294(并行执行的执行部分通常称为线程)。
在应用单元701与应用请求处理单元294之间,以及在应用请求处理单元294与实时通信单元181之间,通信请求和对这些请求的响应由进程间通信(IPC:interprocesscommunication)传递。
此外,在图7所示的形式中,从实时通信单元181的实时通信通知单元183到实时通信请求处理库292,执行两种类型的通知,即时间通知和接收通知。作为其变形例,对于时间通知,应用代理单元291可以在其自己的任务中设置计时器,并在计时器截止时接收时间通知等。在这种情况下,从实时通信单元181的实时通信通知单元183到实时通信请求处理库292,仅执行接收通知,并且时间通知不是必需的。
图8是示出根据本实施例的通信处理装置的一些功能组件的功能电路块。如图8所示,通信处理装置2包括在PC上执行的虚拟硬件15以及在虚拟硬件15上执行的访客OS 16。此外,访客OS 16可以是与第一实施例和第二实施例相同的通用OS。由于本发明的虚拟硬件15的实现方法与第二实施例的方法相同(见图6),因此,这里将不进行详细说明。
访客OS 16具有用户空间18和内核空间19。
在内核空间19中,存在通用OS调度器17和共用存储器199。
通用OS调度器17调度将要在用户空间18中执行的多个任务。换句话说,通用OS调度器17将计算资源分配给用户空间18中的各个任务。即使在本实施例中,访客OS 16不是用于实时控制的OS,并且通用OS调度器17不是实时调度器。
共用存储器199适用于存在由任务共享的信息的情况。在本实施例中,实时通信请求任务内部存储器293包括在应用代理单元291中。因此,共用存储器199不需要包括用于临时存储从应用单元701接收的通信请求的存储单元。
在用户空间18中,存在应用单元701-1、701-2、…、应用代理单元291和实时通信单元181。
在应用单元701-1、701-2、…中,并入了实时通信API公共库193的库函数的功能。在本实施例中,应用代理单元291作为独立于应用单元701-1、701-2、….的任务来执行。换句话说,与第二实施例不同,应用单元701-1、701-2、…不包括实时通信请求处理公共库192的功能。
此外,在本实施例中,在虚拟硬件15上,执行访客OS 16(通用OS),并且在访客OS的用户空间18中,设置应用代理单元291。然而,在没有虚拟化技术的情况下,可以在PC(硬件)上执行通用OS,并且在通用OS的用户空间中,与本实施例类似,可以设置应用代理单元。
如上所述,根据本实施例,在通信处理装置2与外部设备之间传送的帧不存储在共用存储器上的缓冲器中。而是,使用应用代理单元291的任务中的存储空间上的缓冲器(实时通信请求任务内部存储器293中的缓冲器)。因此,可以防止例如多个应用软件之间的干扰产生不良影响。换句话说,可以保护应用免受例如发送/接收帧的伪造、偷窥等的可能。
根据上述每个实施例,能够实现用于执行过程控制等的通信处理装置的通信功能。换句话说,可以在没有任何专用硬件的情况下实现通信处理装置。因而,不需要专用硬件。因此,还能够在虚拟PC(虚拟硬件15)上实现通信处理装置。在用于过程控制的通信中,实时性能尤为重要。如果实时性能受到例如系统中存在的一个设备的影响,并且控制通信的发送和接收被延迟,则通信中的另一方作出反应并执行通信的重传。这种重传处理是执行重传处理的设备自然不需要执行的无效处理。换句话说,如果发生重传处理,则可能会浪费系统中包含的计算资源。此外,如果经常发生重传处理,则由于浪费了计算资源和通信信道的频带,因此无法进行原本需要执行的通信。结果,影响可能扩散,并且不仅影响实时性能受损的设备,而且还继而影响其他设备。
为了防止这种顺序的影响在系统中发生,通信处理装置被配置成满足以下两点。
1)在预定的通信序列结束之前,与实时通信单元181启动的另一设备的通信(帧传输)不应被延迟。例如,预定序列的结束是从作为传输目的地的另一方接收到确认(Ack)。
2)用于向其他设备通知相应设备(通信处理装置)的存在的诊断通信不应被延迟。如果这种诊断通信被延迟,则其他设备至少暂时将相应的设备视为不存在相应的设备。
此外,在实施例中,自诊断单元185检测不稳定操作,并改变实时通信单元接口182从请求缓冲器188获取请求的时间间隔(速度),以响应于处理负载增加的通知。因此,防止了实时通信单元181的处理负载过度增加,并且分配处理所需的足够量的计算资源。因此,能够使用没有实时调度器功能的通用OS(例如,由微软公司制造的Windows)的调度器作为调度器。此外,即使在这种情况下,实时性能也不会受损。
此外,将高优先级分配给实时通信单元181。
通常,在计算资源集中于高优先级任务的情况下,为了保持低优先级任务的操作,通用OS将高优先级任务的计算资源分配给低优先级任务。与这种情况不同,如果没有提供高优先级任务的计算资源,则可能无法保持通信处理装置的实时性能。然而,在上述实施例中,结合了能够在抑制计算资源(例如CPU使用率)的使用的同时为实时通信单元181分配高优先级的逻辑。因此,即使实时通信单元181以外的单元,例如应用单元701等试图使用大量的计算资源,调度器也会抑制计算资源的分配。由于该操作,虽然实时通信单元181以外的单元的处理能力降低,但是防止了计算资源向高优先级任务(实时通信单元181)的分配受到损害,即,保留了实时通信单元181的计算资源。因此,可以保持实时性能。
此外,在通信处理装置包括虚拟化单元12的情况下,即使虚拟化单元12由专有软件实现,保持实时性能的通信也是可能的。
此外,该系统能够使用通用OS的调度器来实现,并且即使在这种情况下,也可以为实时通信单元181分配足够的计算资源。
此外,在不使用设备驱动程序的情况下,可以实现实时通信单元181、实时通信请求处理公共库192等。换句话说,开发和维护系统(硬件)变得容易。
此外,可以在不总是将CPU核分配给实时通信单元181的情况下执行实时通信。
此外,由于可以避免损害通信处理装置的实时通信性能,因此,还可以防止包括在系统中的其他设备的实时通信性能由于通信处理装置的影响而受损。
此外,可以在通用通信卡和通用OS上实现需要专用通信卡的控制通信(实时通信)。
尽管上面已经描述了多个实施例,但是本发明还可以实现为以下变形例。
例如,在图6所示的配置中,PC 11仅包括一对通用NIC 112和NIC接口113。作为变形例,PC 11可以被配置成包括多对通用NIC 112和NIC接口113。换句话说,PC 11可以被配置为具有能够访问物理(物理层)网络的多个通信系统。在这种情况下,PC 11可以被配置为能够同时使用多个通信系统执行通信。此外,PC 11可以被配置为使得PC将多个通信系统视为冗余组件,并且如果在某个通信系统中发生故障等,则PC使用任何其他通信系统执行通信。此外,尽管上面已经说明了图6的配置中的通用NIC 112和NIC接口113的对数,但是可以说,包括在图1和图2的PC 31(第一实施例)中的物理NIC 312和NIC接口313的对数也是如此。换句话说,物理NIC 312和NIC接口313的对数可以是一对,或者可以是两对或更多对。
此外,在通过程序实现上述实施例和实施例的变形例的每个通信处理装置的功能(或一些功能)的情况下,用于功能的程序被记录在计算机可读记录介质中。在这种情况下,存储在记录介质中的程序在计算机系统中被读取和执行。这里,“计算机系统”表示包括OS和诸如外围设备等硬件的系统。此外,“计算机可读记录介质”是指存储设备,例如像软盘、磁光盘、ROM、CD-ROM、DVD-ROM或USB存储器等便携式介质以及安装在计算机系统中的硬盘等。此外,“计算机可读记录介质”可以包括临时和动态地保存程序的介质,如用于通过诸如因特网等网络和诸如电话线等通信线发送程序的通信信道,以及将程序保留预定时间的介质,诸如在发送程序的情况下用作服务器或客户端的安装在计算机系统中的易失性存储器。此外,上述程序可以是用于实现上述功能中的一些功能的程序,或者可以是能够与已经记录在计算机系统中的程序协作实现上述功能的程序。
尽管已经参考附图详细描述了本发明的实施例,但是具体配置不限于这些实施例,并且包括在本发明的范围内做出的设计等。
例如,本发明能够应用于用于执行实时通信的设备。例如,本发明能够应用于用于管理和控制工厂等的通信处理装置。然而,本发明的应用范围不限于这里采用的示例。
根据上述实施例,防止实时处理单元的处理负载超过预定水平。因此,足够的计算资源被给予实时处理单元。因此,应该被优先处理的实时处理单元的处理不会延迟。因此,确保了通信处理装置的实时性能。
Claims (9)
1.一种用于在过程控制系统中执行通信处理的通信处理装置,其包括:
应用单元,其被配置为使应用软件被执行;以及
实时通信单元,其被配置为从所述应用软件接收通信请求,并基于所述通信请求执行数据的发送和接收,其中,
所述实时通信单元包括:
请求缓冲器,其被配置为至少临时存储从所述应用软件接收的所述通信请求;
实时通信单元接口单元,在通信请求是数据的传输请求的情况下,所述实时通信单元接口单元被配置为从所述请求缓冲器提取所述传输请求并执行传输处理;以及
自诊断单元,其被配置为检测与所述实时通信单元的处理有关的诊断指标,并在所述诊断指标在预定范围内的情况下,将所述实时通信单元的操作状态的通知发送到所述实时通信单元接口单元,并且
在所述实时通信单元接口单元从所述自诊断单元接收到所述操作状态的所述通知的情况下,所述实时通信单元接口单元被配置为调整用于从所述请求缓冲器提取所述传输请求的时间间隔。
2.根据权利要求1所述的通信处理装置,其中
所述实时通信单元接口单元被配置为,在所述实时通信单元接口单元在预定时间内从所述自诊断单元连续地接收所述操作状态的所述通知的情况下,与所述实时通信单元不连续接收所述通知的情况相比进一步地调整用于从所述请求缓冲器提取所述传输请求的所述时间间隔。
3.根据权利要求1或2所述的通信处理装置,其中
所述应用单元是使多个应用软件同时并行地执行的单元,所述应用单元被配置为将从所述多个应用软件接收到的所述通信请求临时存储在实时通信请求共用存储器中,所述实时通信请求共用存储器是由所述多个应用软件共享的存储单元,并且所述应用单元被配置为将从所述实时通信请求共用存储器提取的所述通信请求转送至所述实时通信单元。
4.根据权利要求1或2所述的通信处理装置,其还包括:
应用代理单元,其被配置为作为独立于所述应用单元的任务而被执行,被配置为从所述应用软件接收所述通信请求,被配置为将接收到的所述通信请求临时存储在作为所述任务中的专用存储器的实时通信请求任务内部存储器中,以及被配置为将从所述实时通信请求任务内部存储器提取的所述通信请求转送至所述实时通信单元。
5.根据权利要求1所述的通信处理装置,其中
所述实时通信单元被配置为作为独立于所述应用单元的任务而被执行。
6.根据权利要求5所述的通信处理装置,其中
所述应用单元和所述实时通信单元被配置为在通用操作系统上执行,并且包括在所述通用操作系统中的调度器被配置为进行控制以将中央处理单元的资源分配至所述应用单元和所述实时通信单元。
7.根据权利要求6所述的通信处理装置,其中
所述通用操作系统是在具有虚拟化单元的计算机的虚拟硬件上执行的系统,并且
所述通用操作系统被配置为防止所述中央处理单元的各个资源被多个所述虚拟硬件共享。
8.一种计算机可读的非暂时性存储介质,其存储使计算机执行处理的程序,所述处理包括:
在从应用软件接收并被配置为至少临时地存储在请求缓冲器中的通信请求是数据的传输请求的情况下,从所述请求缓冲器提取所述传输请求;
基于所述传输请求执行传输处理;
检测与实时通信有关的诊断指标;
在所述诊断指标在预定范围内的情况下,发送所述实时通信的状态通知;以及
当所述通知被发送时,调整用于从所述请求缓冲器提取所述传输请求的时间间隔。
9.一种用于通信处理装置的通信处理方法,所述通信处理装置包括:应用单元,其被配置为使应用软件被执行;以及实时通信单元,其被配置为从所述应用软件接收通信请求,并基于所述通信请求执行数据的发送和接收,并在过程控制系统中执行通信处理,所述通信处理方法包括:
在被配置为至少临时存储从所述应用软件接收的所述通信请求的请求缓冲器中的所述通信请求是传输请求的情况下,通过使用所述实时通信单元中的实时通信单元接口单元,从所述请求缓冲器中提取所述传输请求;
通过使用所述实时通信单元,基于所述传输请求执行传输处理;
通过使用所述实时通信单元中的自诊断单元,检测与所述实时通信单元的处理有关的诊断指标;
在所述诊断指标在预定范围内的情况下,通过使用所述自诊断单元发送所述实时通信单元的操作状态的通知;以及
当所述通知被发送时,通过使用所述实时通信单元接口单元调整用于从所述请求缓冲器提取所述传输请求的时间间隔。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017206551A JP6711339B2 (ja) | 2017-10-25 | 2017-10-25 | 通信処理装置、プログラム、および通信処理方法 |
JP2017-206551 | 2017-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109709905A true CN109709905A (zh) | 2019-05-03 |
CN109709905B CN109709905B (zh) | 2022-07-29 |
Family
ID=66169958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811249170.8A Active CN109709905B (zh) | 2017-10-25 | 2018-10-25 | 通信处理装置、存储介质和通信处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10862616B2 (zh) |
JP (1) | JP6711339B2 (zh) |
CN (1) | CN109709905B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546641A (zh) * | 2022-02-16 | 2022-05-27 | 重庆伏特猫科技有限公司 | 一种基于物联网网关和节点智能盒子的综合能源控制系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6889204B2 (ja) * | 2019-05-07 | 2021-06-18 | 株式会社東芝 | コントローラ |
JP7010272B2 (ja) * | 2019-10-08 | 2022-01-26 | 横河電機株式会社 | リアルタイム通信処理システム、およびリアルタイム通信処理方法 |
JP7120199B2 (ja) * | 2019-10-08 | 2022-08-17 | 横河電機株式会社 | 通信処理装置、通信処理方法、およびプログラム |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002064585A (ja) * | 2000-08-22 | 2002-02-28 | Oki Electric Ind Co Ltd | 通信接続装置およびデータ出力制御方法 |
CN1761243A (zh) * | 2004-10-14 | 2006-04-19 | 索尼株式会社 | 传输设备和方法、记录介质、程序和控制设备 |
KR20060095048A (ko) * | 2005-02-25 | 2006-08-30 | 한국동서발전(주) | 발전용 분산제어 시스템의 운전을 위한 mmi 장치 및 엔디안 변환 방법 |
CN101002268A (zh) * | 2004-06-11 | 2007-07-18 | 索尼株式会社 | 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质、以及数据结构 |
JP2008172515A (ja) * | 2007-01-11 | 2008-07-24 | Sony Corp | 送信装置および方法、通信装置、並びにプログラム |
CN101587351A (zh) * | 2009-05-15 | 2009-11-25 | 深圳市康必达控制技术有限公司 | 智能电子设备可靠通讯的方法 |
CN103064352A (zh) * | 2011-10-24 | 2013-04-24 | 成都宏天电传工程有限公司 | 钻井平台信息集成处理系统 |
CN104395897A (zh) * | 2012-05-14 | 2015-03-04 | 超威半导体公司 | 服务器节点互连装置和方法 |
CN107251516A (zh) * | 2015-02-20 | 2017-10-13 | 三菱电机株式会社 | 通信装置、通信方法及程序 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03278136A (ja) * | 1989-06-23 | 1991-12-09 | Hitachi Ltd | 計算機システムの負荷制御方法及び装置 |
JP3891273B2 (ja) * | 2002-03-05 | 2007-03-14 | 日本電気株式会社 | トランザクション処理の負荷分散方法およびそのシステム |
CN100411317C (zh) * | 2003-07-08 | 2008-08-13 | 联想(北京)有限公司 | 一种提高无线网络信道传输效率的方法 |
JP4170302B2 (ja) * | 2005-03-10 | 2008-10-22 | 富士通株式会社 | 負荷制御装置および負荷制御プログラム |
JP4654106B2 (ja) * | 2005-10-12 | 2011-03-16 | アラクサラネットワークス株式会社 | 一定間隔通信を実行する通信装置 |
JP4986155B2 (ja) * | 2007-10-15 | 2012-07-25 | 横河電機株式会社 | 通信品質診断装置 |
JP6265158B2 (ja) * | 2015-03-27 | 2018-01-24 | 横河電機株式会社 | 電子機器 |
US10241947B2 (en) * | 2017-02-03 | 2019-03-26 | Intel Corporation | Hardware-based virtual machine communication |
-
2017
- 2017-10-25 JP JP2017206551A patent/JP6711339B2/ja active Active
-
2018
- 2018-10-25 US US16/170,994 patent/US10862616B2/en active Active
- 2018-10-25 CN CN201811249170.8A patent/CN109709905B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002064585A (ja) * | 2000-08-22 | 2002-02-28 | Oki Electric Ind Co Ltd | 通信接続装置およびデータ出力制御方法 |
CN101002268A (zh) * | 2004-06-11 | 2007-07-18 | 索尼株式会社 | 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质、以及数据结构 |
CN1761243A (zh) * | 2004-10-14 | 2006-04-19 | 索尼株式会社 | 传输设备和方法、记录介质、程序和控制设备 |
KR20060095048A (ko) * | 2005-02-25 | 2006-08-30 | 한국동서발전(주) | 발전용 분산제어 시스템의 운전을 위한 mmi 장치 및 엔디안 변환 방법 |
JP2008172515A (ja) * | 2007-01-11 | 2008-07-24 | Sony Corp | 送信装置および方法、通信装置、並びにプログラム |
CN101587351A (zh) * | 2009-05-15 | 2009-11-25 | 深圳市康必达控制技术有限公司 | 智能电子设备可靠通讯的方法 |
CN103064352A (zh) * | 2011-10-24 | 2013-04-24 | 成都宏天电传工程有限公司 | 钻井平台信息集成处理系统 |
CN104395897A (zh) * | 2012-05-14 | 2015-03-04 | 超威半导体公司 | 服务器节点互连装置和方法 |
CN107251516A (zh) * | 2015-02-20 | 2017-10-13 | 三菱电机株式会社 | 通信装置、通信方法及程序 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546641A (zh) * | 2022-02-16 | 2022-05-27 | 重庆伏特猫科技有限公司 | 一种基于物联网网关和节点智能盒子的综合能源控制系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2019079348A (ja) | 2019-05-23 |
US10862616B2 (en) | 2020-12-08 |
US20190121666A1 (en) | 2019-04-25 |
JP6711339B2 (ja) | 2020-06-17 |
CN109709905B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109709905A (zh) | 通信处理装置、存储介质和通信处理方法 | |
US11146508B2 (en) | Data processing system | |
US10846224B2 (en) | Methods and apparatus for control of a jointly shared memory-mapped region | |
US9397944B1 (en) | Apparatus and method for dynamic communication scheduling of virtualized device traffic based on changing available bandwidth | |
CN109725829B (zh) | 用于数据存储系统的端到端QoS解决方案的系统和方法 | |
US20180329743A1 (en) | Data processing system | |
JP4214682B2 (ja) | 計算機およびその入出力手段 | |
CN104516767B (zh) | 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 | |
EP4136532A1 (en) | Storage transactions with predictable latency | |
CN100399305C (zh) | 计算机网络内的数据块存储 | |
US20160246657A1 (en) | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities | |
Bhoj et al. | Web2K: Bringing QoS to web servers | |
US20060150190A1 (en) | Setting operation based resource utilization thresholds for resource use by a process | |
CN103827842B (zh) | 向控制器存储器空间写入消息 | |
WO2002031672A2 (en) | Method and apparatus for interprocessor communication and peripheral sharing | |
CN102334092A (zh) | 存储系统及其控制方法以及程序 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
EP3402172B1 (en) | A data processing system | |
US20110173319A1 (en) | Apparatus and method for operating server using virtualization technique | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
US11556391B2 (en) | CPU utilization for service level I/O scheduling | |
CN104040524A (zh) | 用于存储服务器的流量控制机制 | |
JP2008186211A (ja) | 計算機システム | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
US11487633B2 (en) | Communication processing apparatus, communication processing method, and non-transitory computer-readable recording medium |
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 |