KR100624679B1 - method and system for managing Inter Processor Communication channel in Embedded system - Google Patents
method and system for managing Inter Processor Communication channel in Embedded system Download PDFInfo
- Publication number
- KR100624679B1 KR100624679B1 KR1020040001710A KR20040001710A KR100624679B1 KR 100624679 B1 KR100624679 B1 KR 100624679B1 KR 1020040001710 A KR1020040001710 A KR 1020040001710A KR 20040001710 A KR20040001710 A KR 20040001710A KR 100624679 B1 KR100624679 B1 KR 100624679B1
- Authority
- KR
- South Korea
- Prior art keywords
- ipc
- board
- message
- application
- daemon
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 title claims description 12
- 238000007726 management method Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/24—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/026—Details of "hello" or keep-alive messages
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명에서는 임베디드 시스템에서 보드의 부팅시 보드별로 IPC 채널 설정을 위한 IPC 관리자를 구동하여 커널층에서 각 보드간에 TCP 또는 UDP 소켓을 이용하여 IPC 채널을 설정하는 단계와, 각 보드별로 IPC 관리자가 자신의 보드에서 구동될 상위 어플리케이션 데몬들의 서비스 등록을 위한 API를 제공하는 단계와, 상위 어플리케이션 데몬의 부팅시 IPC 관리자가 API를 통해 해당 어플리케이션 데몬으로부터 해당 어플리케이션 데몬의 서비스를 등록받아 해당 어플리케이션 데몬의 서비스 정보를 저장하고 서비스 정보에 따라 어플리케이션 데몬이 콜백함수로 제공한 제어 메시지 수신 함수를 바인딩하는 단계와, 임의의 어플리케이션 데몬에 대한 메시지가 수신되는 경우, IPC 관리자는 해당 서비스 아이디 별로 바인딩된 콜백함수를 호출하여 상위 어플리케이션 데몬에 메시지를 전달하여 어플리케이션 데몬간 IPC 통신을 수행하는 단계를 포함하여 각각의 어플리케이션 데몬들이 직접 관리해야하는 IPC 채널의 개수를 줄이고, 커널층에 IPC 관리자를 둠으로써 LCRPC간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 현저하게 줄일 수 있다.In the present invention, the IPC manager for setting the IPC channel for each board at the time of booting the board in the embedded system to set the IPC channel using TCP or UDP socket between each board in the kernel layer, and the IPC manager for each board Provide API for service registration of upper application daemons to be run on the board of the server, and when the upper application daemon boots, the IPC administrator registers the service of the application daemon from the corresponding application daemon through the API and provides service information of the corresponding application daemon. And storing the control message receiving function provided by the application daemon as a callback function according to the service information, and when a message for any application daemon is received, the IPC manager calls the callback function bound by the service ID. Top Apps by Stable IPC channel management and control between LCRPCs by reducing the number of IPC channels that each application daemon must manage directly, including sending messages to the application daemons to perform IPC communication between application daemons, and having an IPC manager at the kernel layer. It can significantly reduce the amount of additional traffic for managing the IPC channel.
IPC, IPC 관리자, 커널, 어플리케이션, 데몬, 릴레이, TCP, UDPIPC, IPC Manager, Kernel, Application, Daemon, Relay, TCP, UDP
Description
도 1은 하나의 시스템에 실장된 스위칭 제어보드와 가입자 보드간에 수행되는 종래의 IPC 채널 관리 방법을 설명하기 위한 개념도.1 is a conceptual diagram illustrating a conventional IPC channel management method performed between a switching control board and a subscriber board mounted in one system.
도 2는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면.2 is a diagram illustrating the number of IPC channels according to IPC configuration.
도 3은 본 발명에 따른 IPC 채널 관리 시스템의 개념 설명도.3 is a conceptual diagram of an IPC channel management system according to the present invention;
도 4는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면.4 is a diagram illustrating the number of IPC channels according to IPC configuration.
도 5 내지 도 6은 릴레이 방식을 통하여 서로 다른 가입자 보드간에 IPC 채널을 설정하는 것을 설명하기 위한 개념도.5 to 6 is a conceptual diagram illustrating the establishment of an IPC channel between different subscriber boards through a relay scheme.
도 7은 본 발명에 따른 릴레이 기능을 이용하여 셀프간에 IPC 통신을 수행하는 것을 설명하기 위한 개념도.7 is a conceptual diagram for explaining the IPC communication between the self using the relay function according to the present invention.
본 발명은 IPC(Inter Processor Communication) 채널 연결 시스템 및 그 방 법에 관한 것으로, 상세하게는 리눅스(Linux)를 운영체제(Operating System)로 하는 임베디드 시스템(Embedded System)에서 가입자 보드내 혹은 가입자 보드간에 통신을 수행하기 위한 IPC 채널을 설정하고 관리하는 시스템 및 그 방법에 관한 것이다.The present invention relates to an IPC (Inter Processor Communication) channel connection system and a method thereof, and more particularly, to communicate within or between subscriber boards in an embedded system using Linux as an operating system. The present invention relates to a system and method for setting and managing an IPC channel for performing the above.
임베디드 시스템은 PC(personal computer)와 같은 최종 사용자(End user) 장비가 아닌 네트워크 시스템(예를 들면, 라우터 스위치)으로서, 일반적으로 시스템의 안정성을 위해 운용체제로 리눅스를 사용한다.Embedded systems are network systems (for example, router switches), rather than end-user devices such as personal computers (PCs), and typically use Linux as the operating system for system reliability.
종래에 리눅스를 운용체제로 사용하는 환경하에서는 데몬(daemon)이라 불리는 독립적인 소프트웨어 모듈들이 시스템내에서 필요한 수만큼 구동되어 각각의 작업들을 수행한다. 이러한 데몬(daemon)들은 동일한 가입자 보드내에 있는 서로 다른 모듈간 혹은 여러개의 가입자 보드에 있는 서로 같은 종류의 모듈간에 통신을 수행한다.In an environment using Linux as an operating system, independent software modules called daemons are run as many as necessary in the system to perform their respective tasks. These daemons communicate between different modules in the same subscriber board or between different types of modules in multiple subscriber boards.
종래에 이러한 모듈들이 서로 통신을 수행하는 방법에는 직접 TCP(Transmission Control Protocol)나 UDP (user datagram protocol)소켓을 열어 IPC 채널을 통해 점대점으로 풀 메쉬(Full Mesh) 방식으로 연결하는 방식이 주로 사용되고 있다.Conventionally, these modules communicate with each other by directly opening a Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) socket and connecting a full mesh method to a point-to-point through an IPC channel. have.
도 1은 하나의 시스템에 실장된 스위칭 제어보드와 가입자 보드간에 수행되는 종래의 IPC 채널 관리 방법을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating a conventional IPC channel management method performed between a switching control board and a subscriber board mounted in a system.
도 1을 참조하면, 일반적으로 리눅스를 운영체제로 하는 시스템에서 어플리케이션 소프트웨어(Application S/W) 데몬간에 통신하는 방법은 세가지가 있다.Referring to FIG. 1, in general, there are three methods for communicating between application software (Application S / W) daemons in a system using Linux.
IPC 타입 A : MASTER / SLAVE ( TCP, UDP )IPC Type A: MASTER / SLAVE (TCP, UDP)
IPC 타입 B : Full Mesh ( TCP, UDP )IPC Type B: Full Mesh (TCP, UDP)
IPC 타입 C : 보드내 통신 ( Domain Socket)IPC Type C: Board Communication
IPC 타입 A(3)는 스위치(2)에서 마스터(MASTER) 데몬이 동작하고 가입자 보드(1)에서 슬레이브(SLAVE) 데몬이 동작하여 서로 통신을 수행하며, 슬레이브 데몬끼리는 서로 통신할 필요가 없는 형태이다.In the IPC type A (3), the master daemon operates at the
IPC 타입 B(4)는 각 데몬이 모두 독립적으로 타 보드의 동일한 어플리케이션 데몬끼리 혹은 다른 데몬끼리 풀 메쉬형태로 IPC를 맺어야 하는 경우이다.IPC Type B (4) is a case where each daemon independently needs to form IPC in full mesh form among other application daemons or other daemons.
IPC 타입 C(5)는 동일 보드 내에서 다른 데몬 들끼리 통신하는 경우이다. 이때, 동일 보드 내에서도 IPC 타입 A 형태처럼 특정 데몬에 슬레이브로 종속적으로 접속하는 형태의 경우와 동일 보드내 다른 데몬끼리 연결하는 경우가 혼재될 수 있다. 그러나, IPC 타입 C 형태는 도메인(Domain) 소켓을 일반적으로 사용한다.IPC Type C (5) is a case where different daemons communicate on the same board. At this time, even in the same board as in the IPC type A form, the case in which the slaves are connected to a specific daemon as slaves may be mixed with other daemons in the same board. However, IPC type C forms generally use domain sockets.
IPC B 타입처럼 각 어플리케이션 데몬간 풀메쉬로 맺어야 하는 경우 도 2를 참조하면, 11개의 가입자 보드에서 한 종류의 어플리케이션 데몬이 서로 IPC 채널을 열기 위해서는 모두 시스템 내 (11 x (11-1)/2 ) = 55 개의 IPC 채널이 필요하며, 각 데몬은 10개의 채널을 관리해야 한다.If the application meshes should be full meshed between application daemons like the IPC B type Referring to FIG. 2, in order to open an IPC channel with one application daemon on each of 11 subscriber boards, it is necessary to use (11 x (11-1) / 2) ) = 55 IPC channels are required, and each daemon must manage 10 channels.
그리고, 이런 어플리케이션 데몬의 개수가 10개라면, 시스템내 IPC 채널의 수는 해당 데몬 수 만큼 늘어나 (11 x (11-1)/2 ) x 10 = 550 개의 IPC 채널이 필요로 하게 된다. 그리고, 각 가입자 보드의 커널(Kernel)에서 TCP나 UDP에서 관리해야할 채널의 수 역시 10x10 = 100 개이다.If the number of such application daemons is 10, the number of IPC channels in the system is increased by the number of daemons (11 x (11-1) / 2) x 10 = 550 IPC channels. In addition, the number of channels to be managed by TCP or UDP in the kernel of each subscriber board is also 10x10 = 100.
도 2는 도 1에서 IPC 설정에 따른 IPC 채널의 개수를 보여준다.FIG. 2 shows the number of IPC channels according to IPC configuration in FIG. 1.
종래의 방식에서 각 IPC 방식에서의 채널 갯수를 살펴보면 다음과 같다.In the conventional method, the number of channels in each IPC method is as follows.
IPC 스타일 A(점선)IPC Style A (dotted line)
Total System IPC channel : (LCRPC# -1) * Appd# Total System IPC channel: (LCRPC # -1) * Appd #
IPC 스타일 B(실선)IPC Style B (solid line)
Total System IPC channel : ( LCRPC# x (LCRPC# -1)/2 ) * Appd#Total System IPC channel: (LCRPC # x (LCRPC # -1) / 2) * Appd #
IPC 스타일 C ( 한 LCRPC 내에서 ) IPC Style C (within one LCRPC)
도메인 소켓을 사용한 A 형태 : Slave Appd #A form using domain socket: Slave Appd #
도메인 소켓을 사용한 B 형태 : ( Appd # x ( Appd # -1)/2 )Form B with domain sockets: (Appd # x (Appd # -1) / 2)
(SWRPC도 LCRPC 의 개수로 포함해서 계산함 ) (SWRPC is also included as the number of LCRPC)
이와 같이, 종래의 IPC 채널 관리 방법에 의하면, 각각의 어플리케이션 데몬들이 많은 수의 IPC 채널을 관리해야 하며, 이를 유지하기 위한 많은 트래픽을 발생하게 된다. 아울러, 어플리케이션의 개수와 LCRPC의 개수에 따라 엄청나게 증가하게 되는 문제점이 있다.As described above, according to the conventional IPC channel management method, each application daemon must manage a large number of IPC channels and generate a lot of traffic for maintaining them. In addition, there is a problem that greatly increases according to the number of applications and the number of LCRPC.
본 발명은 이러한 종래의 문제점을 해결하기 위하여 안출된 것으로, 어플리케이션 데몬들이 관리해야 하는 IPC 채널의 수를 줄이고, 그 IPC 채널을 관리하기 위한 트래픽을 줄이기 위한 IPC 채널 관리 방법을 제공하는데 그 목적이 있다.
SUMMARY OF THE INVENTION The present invention has been made to solve such a conventional problem, and an object of the present invention is to provide an IPC channel management method for reducing the number of IPC channels that application daemons must manage and for reducing traffic for managing the IPC channel. .
이러한 목적을 달성하는 본 발명은 커널(Kernel)에서 IPC 관리자(Manager)를 둠으로써 각각의 어플리케이션 데몬들이 직접 관리해야 하는 IPC 채널의 개수를 줄이고, LCRPC(Line Card Routing Processing Controller)간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 줄일 수 있다.In order to achieve the above object, the present invention reduces the number of IPC channels that each application daemon must manage by providing an IPC manager in the kernel, and provides stable IPC channel management between LCRPCs (Line Card Routing Processing Controllers). And control, and can reduce the amount of additional traffic for managing the IPC channel.
또한, 어플리케이션 데몬의 증가와 LCRPC의 증가 혹은, 시스템 셀프(System Shelf)의 증가에도 변함없는 IPC 서비스를 위해 IPC 릴레이(Relay)기능을 지원함으로써 확장성(Scalability)를 높일 수 있다.In addition, scalability can be increased by supporting the IPC relay function for the IPC service which does not change with the increase of the application daemon, the LCRPC, or the increase of the system shelf.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하도록 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 3은 본 발명에 따른 IPC 채널 관리 시스템의 개념 설명도이고, 도 4는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면이다.3 is a conceptual explanatory diagram of an IPC channel management system according to the present invention, and FIG. 4 is a diagram showing the number of IPC channels according to IPC configuration.
도 3을 참조하면, 스위칭 보드에 탑재되는 SWRPC(10)와 각 가입자 보드에 탑재되는 LCRPC(20)(30)가 도시되어 있다. 도면에서 각 보드에는 어플리케이션 데몬들(12, 13, 22, 23, 32, 33)이 실행되고 있다.Referring to FIG. 3, an SWRPC 10 mounted on a switching board and an LCRPC 20, 30 mounted on each subscriber board are shown. In the figure,
SWRPC(10) 및 LCRPC(20, 30)는 커널(Kernel)에 IPC 채널을 관리하는 IPC 관리자(11, 21, 31)를 두고 LCRPC(20 또는 30)가 부팅을 수행할 때, 타 보드와 IPC 채널을 연결 설정한다. 이렇게 함으로써, 어플리케이션이 IPC 연결을 위해 필요로 하는 IPC 채널을 각 어플리케이션의 관리하에 일일이 풀 메쉬로 연결하지 않게 된다.SWRPC (10) and LCRPC (20, 30) has an IPC manager (11, 21, 31) to manage the IPC channel in the kernel (Kernel) when the LCRPC (20 or 30) performs booting, other boards and IPC Set up the channel. In this way, the IPC channel required for the IPC connection by the application does not connect to the full mesh under the management of each application.
LCRPC(20)의 IPC 관리자(21)를 예로 들어 설명하도록 한다. IPC 관리자(21)는 자신이 속한 LCRPC(20)에서 특정 커널의 ipc0 인터페이스 구성 정보를 읽어서 자신의 IP를 자동으로 인지하고, 백플레인에 연결된 하드웨어 특정 레지스터리 정보를 드라이버를 통해 읽어들여 SWRPC(10) 혹은 GRPC(30)의 실장 상태를 파악한다.The
LCRPC(20)의 IPC 관리자(21)는 SWRPC(10) 및 LCRPC(30)에게 헬로우(Hello)신호를 보낸다. SWRPC(10) 및 LCRPC(30)이 헬로우 신호를 수신하면, LCRPC(20)는 SWRPC(10) 및 LCRPC(30)과 TCP 또는 UDP 소켓을 열어 IPC 채널 연결 설정을 수행한다.The
이를 위한 특성 구성 설정은 커널(Kernel)의 특정 디렉토리에 구성 정보 파일로 저장해서 운용자가 필요시에 변경할 수 있도록 한다. 이 구성 정보 파일에는 IPC를 수행하기 위한 API(Application Program Interface), IPC 연결 타입(풀 메쉬 또는 릴레이 또는 두가지를 혼용, TCP 또는 UDP 등이 될 수 있다)이 포함된다.The property configuration setting for this is saved as a configuration information file in a specific directory of the kernel so that the operator can change it when necessary. This configuration information file includes an application program interface (API) for performing IPC, an IPC connection type (full mesh or relay or a mixture of both, TCP or UDP, etc.).
즉, 커널의 IPC 관리자(21)가 SWRPC(10) 및 LCRPC(30)의 실장 상태를 보고 SWRPC(10) 및 LCRPC(30)의 IPC 관리자(11, 31)와 바로 IPC 채널을 연결설정할 수 있으므로 상위 어플리케이션의 활성 여부에 상관없이 신속하게 IPC 채널을 설정할 수 있다.That is, since the
SWRPC(10) 및 LCRPC(30)의 IPC 관리자(11, 31)와 커널에서 IPC 연결 설정을 수행한 IPC 관리자(21)는 자신의 보드에 존재하는 각 어플리케이션 데몬들이 서비스 등록시 사용할 있도록 서비스 등록 API를 제공한다. 어플리케이션 데몬들은 부팅하면서 자신이 속한 보드의 IPC 관리자(21)로부터 제공받은 서비스 등록 API를 사용하여 IPC 관리자(21)에게 자신의 서비스 ID 와 각종 파라미터들(예를 들면, 버퍼사이즈, IPC 연결 타입(릴레이, 풀메쉬, 혼용))을 전송하여 IPC 서비스를 등록하게 된다.The
임의의 어플리케이션 데몬(22, 23)으로부터 IPC 서비스 등록을 받은 IPC 관리자(21)는 해당 서비스를 내부 DB에 등록하고, 어플리케이션 데몬(22, 23)이 콜백함수로 제공한 제어 메시지 수신 함수를 바인딩한다. 이후 해당 서비스로 수신된 제어 메시지로 인지되면, IPC 관리자(21)는 해당 서비스별 또는 아이디별로 바인딩된 콜백 함수를 호출함으로써 해당 상위 어플리케이션 데몬(22, 23)에 그 메시지를 전달하게된다.The IPC
또한 IPC 관리자(21)는 각 어플리케이션 데몬(22, 23)에게 IPC 메시지 송신을 위한 API를 제공함으로써 어플리케이션 데몬은 어느 LCRPC(20, 30)의 어느 어플리케이션 데몬(22, 23, 32, 33)에게도 메시지를 송신 할 수 있다. In addition, the
IPC 관리자(21)가 제공할 수 있는 API의 초기정의는 아래와 같다.The initial definition of API that can be provided by the
ipc_send (service id, service card, message , message size ); ipc_send (service id, service card, message, message size);
IPC 관리자(21)는 어플리케이션 데몬( 22, 23)이 이 함수를 호출하면 서비스 식별자(service id)와 메시지 크기(message size)를 IPC 메시지의 헤더에 넣고, 메시지를 부가하여 서비스 카드(service card)에 지정된 LCRPC(20, 30)의 IPC 관리자(21, 31)와 연결된 IPC 채널로 보낸다. When the
이를 수신한 상대편 LCRPC(20, 30)의 IPC 관리자(21, 31)는 서비스 식별자(Service id)를 인지하고, 크기(size)를 통해 메시지의 무결성 검사를 한 후, 해당 서비스 식별자(service id)가 등록할 때 바인딩했던 콜백 함수를 호출해서 메시지를 해당 상위의 어플리케이션 데몬(22, 23, 32, 33)에게 전달해준다.The
한편, 동일한 LCRPC/SWRPC(20, 30, 10)내에서 통신을 위한 IPC C 형태의 IPC연결 설정을 수행하는 경우에는 IPC 관리자(11, 21, 31))는 내부에 공유 메모리(Share Memeory)를 사용한다. 즉, 동일한 LCRPC/SWRPC(20, 30, 10)내에서 어플리케이션 데몬(12, 13, 22, 23, 32, 33)들끼리 통신을 수행하는 것이므로, 해당 서비스 식별자(service id)가 등록할 때 바인딩했던 콜백 함수를 호출해서 메시지를 해당 상위의 어플리케이션 데몬에게 전달해준다. 즉, TCP 나 UDP 소켓으로 메시지를 전송하는 것이 아니고, 메시지를 특정 영역에 저장한 후 바로 다른 서비스의 콜백 함수를 호출하면 되는 것이다.On the other hand, when performing IPC C-type IPC connection establishment for communication in the same LCRPC / SWRPC (20, 30, 10), IPC manager (11, 21, 31) has a shared memory (Share Memeory) use. That is, since the application daemons 12, 13, 22, 23, 32, and 33 communicate with each other in the same LCRPC /
IPCMgr Sublayer는 IPC 관리자(21)의 sub-layer로서 Layer1의 특성에 따라 상위단에 신뢰성있는 통신을 위한 서비스를 제공해 주게 된다. 만약 UDP를 사용한다면 신뢰성있는 UDP 통신을 위해서 재전송을 보장하는 기능을 제공하는 것이 한 예이다.The IPCMgr Sublayer is a sub-layer of the
이와 같이 각 보드의 커널에 있는 IPC 관리자들(11, 21, 31)에 의해 백플레인에 실장된 각 보드끼리는 이미 IPC 연결 설정이 이루어진 상태이므로, 상위 어플리케이션 데몬이 더 추가되는 경우에는 그 추가되는 각 어플리케이션 데몬이 자신이 속한 IPC 관리자(11, 21, 31)에게 IPC 서비스를 등록만 수행하면 된다. 그러면, 해당 IPC 관리자(11, 21, 31)는 자신에게 IPC 등록을 수행한 어플리케이션 데몬의 서비스 id를 등록받아 저장하고 있다가 임의의 메시지중에서 해당 서비스 id를 원하는 경우에는 그 서비스 id에 해당하는 콜백 함수를 호출하여 해당 어플리케이션 데몬에 그 메시지를 전달해준다.As such, each board mounted on the backplane by the
따라서, 어플리케이션 데몬이 추가되는 경우라도, 어플리케이션 데몬의 관리하에 일일이 점대점으로 IPC 채널을 풀 메쉬로 맺을 필요가 없어지므로 도 4를 참조하면, 시스템 내 총 IPC 채널의 수가 아래와 같이 감소한다.Therefore, even when the application daemon is added, since it is not necessary to form an IPC channel full-mesh point-to-point under the management of the application daemon, referring to FIG. 4, the total number of IPC channels in the system is reduced as follows.
IPC 스타일 AIPC Style A
전체 시스템 IPC 채널: ( # of LCRPC -1) Full system IPC channel: (# of LCRPC -1)
IPC 스타일 BIPC Style B
전체 시스템 IPC 채널 : ( # of LCRPC x ( # of LCRPC -1)/2 ) Full system IPC channel: (# of LCRPC x (# of LCRPC -1) / 2)
IPC 스타일 C (하나의 LCRPC 내에서 )IPC Style C (within one LCRPC)
no socket connection no socket connection
도 5 및 도 6은 릴레이 방식을 통하여 서로 다른 가입자 보드간에 IPC 채널을 설정하는 것을 설명하기 위한 개념도이다.FIG. 5 and FIG. 6 are conceptual views illustrating setting of IPC channels between different subscriber boards through a relay scheme.
도 5를 참조하면, 예를 들어 LCRPC(20, 30)의 슬레이브 어플리케이션 데몬(22, 23, 32, 33)끼리 직접 메시지를 주고 받을 일이 없고, SWRPC(10)의 마스터 어플리케이션 데몬(12, 13)과 각 LCRPC(20, 30)의 슬레이브 어플리케이션 데몬(22, 23, 32, 33)끼리만 연결하여 메시지를 주고받을 경우에는 LCRPC(20)는 릴레이 기능을 통해 SWRPC(10)를 거쳐 LCRPC(30)로 통신을 할 수 있다.Referring to FIG. 5, for example, the
그리고, 임베디스 시스템 전체의 IPC 채널을 풀메쉬로 하지 않고 릴레이로 하는 경우에는 모든 IPC 채널을 SWRPC(10)로만 연결하고, LCRPC(20)(30)간 IPC 메시지는 릴레이 기능을 통해 SWRPC(10)의 IPC 관리자(11)에서 릴레이해준다.When the IPC channel of the entire embedded system is set to relay without full mesh, all IPC channels are connected to the
이러한 릴레이 기능은 셀프의 확장시에 셀프를 서로 연결하는데 사용할 수 있다.This relay function can be used to connect the self to each other when the self is extended.
도 7은 릴레이 기능을 이용하여 셀프간에 IPC 통신을 수행하는 것을 설명하 기 위한 개념도이다.FIG. 7 is a conceptual diagram for explaining IPC communication between self using a relay function. FIG.
도 7을 참조하면, 셀프 A와 셀프B는 각각 셀프내의 SWRPC와 LCRPC들 사이에 각각의 IPC 관리자들을 통하여 IPC 채널을 설정하여 각 SWRPC와 LCRP에서 구동되고 있는 데몬간에 IPC 통신이 가능하다.Referring to FIG. 7, Self A and Self B establish IPC channels through respective IPC managers between SWRPC and LCRPCs in the self, thereby enabling IPC communication between daemons running in each SWRPC and LCRP.
아울러, 셀프A의 SWRPC와 셀프 B의 SWRPC는 각 IPC 관리자들 끼리 IPC 채널을 설정하여 IPC 통신이 가능하다.In addition, Self-A's SWRPC and Self-B's SWRPC enable IPC communication by setting IPC channels among IPC managers.
이 상태에서 셀프 A 및 셀프 B의 각 LCRPC(1-11)들은 자신의 셀프의 SWRPC과 IPC 채널이 설정되어 있으므로, 자신의 셀프내에 있는 SWRPC를 통하여 상대방 셀프내에 있는 SWRPC를 통하여 상대방 셀프에 있는 임의의 LCRPC와 릴레이 기능을 통하여 IPC 채널을 설정할 수 있게 된다.In this state, since each LCRPC (1-11) of Self A and Self B has their own SWRPC and IPC channels, the SWRPC in the Self Self and the SWRPC in the Other Self are randomly selected. IPC channel can be set through LCRPC and relay function.
이 기능은 셀프(Shelf)간에 SWRPC끼리는 IPC 채널을 맺고 각각의 서로 다른 셀프의 LCRPC의 어플리케이션 들끼리 통신할 때 유용하며, 시스템의 전체 IPC 확장성(Scalability)를 높일 수 있는 이점이 있다.This feature is useful when SWRPCs establish IPC channels between themselves, and communicate with each other's applications on LCRPCs of different self, and can increase the overall IPC scalability of the system.
본 발명에 의하면, 각각의 어플리케이션 데몬들이 직접 관리해야하는 IPC 채널의 개수를 줄이고, 커널층에 IPC 관리자를 둠으로써 LCRPC간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 현저하게 줄일 수 있다.According to the present invention, by reducing the number of IPC channels that each application daemon must manage directly, by having an IPC manager in the kernel layer, stable IPC channel management and control between LCRPC, and additional traffic for managing the IPC channel The amount of can be significantly reduced.
또한, 어플리케이션 데몬의 증가와 LCRPC 의 증가 혹은, 시스템 셀프의 증가 에도 변함 없는 IPC 서비스를 위해 IPC 릴레이 기능을 지원함으로써 시스템의 확장성을 높일 수 있다.In addition, the scalability of the system can be increased by supporting the IPC relay function for the IPC service which does not change with the increase of the application daemon, the LCRPC, or the increase of the system itself.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040001710A KR100624679B1 (en) | 2004-01-09 | 2004-01-09 | method and system for managing Inter Processor Communication channel in Embedded system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040001710A KR100624679B1 (en) | 2004-01-09 | 2004-01-09 | method and system for managing Inter Processor Communication channel in Embedded system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050073344A KR20050073344A (en) | 2005-07-13 |
KR100624679B1 true KR100624679B1 (en) | 2006-09-18 |
Family
ID=37262465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040001710A KR100624679B1 (en) | 2004-01-09 | 2004-01-09 | method and system for managing Inter Processor Communication channel in Embedded system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100624679B1 (en) |
-
2004
- 2004-01-09 KR KR1020040001710A patent/KR100624679B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20050073344A (en) | 2005-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5792894B2 (en) | Port expansion topology information acquisition method, system, control bridge, and uplink port processing method and system | |
WO2020024413A1 (en) | Method for controlling deployment of cloud computing platform, server, and storage medium | |
JP5366177B2 (en) | Slot interface access device, method and program thereof, and redundant configuration and alternative method of main device | |
JPH07107114A (en) | Remote office network system and its communication method | |
US10462048B2 (en) | Virtual cluster establishment method and network device | |
US8244949B2 (en) | Slot interface access unit, method thereof, and program thereof, as well as redundancy configuration of main unit, and replacing method of the same | |
CN109194589B (en) | MDC (media data center) implementation method and device | |
CN113824723A (en) | End-to-end system solution applied to audio and video data transmission | |
WO2003017101A2 (en) | System and method for distributed device control | |
CN105827496A (en) | Method and apparatus for managing PE device | |
KR20060098780A (en) | A system to support the heterogeneity in ubiquitous computing environment | |
CN113519149B (en) | Voice communication system and redundancy method for call control server | |
CN112667293B (en) | Method, device and storage medium for deploying operating system | |
US7602794B2 (en) | Implementation of control plane protocols and networking stacks in a distributed network device | |
KR100624679B1 (en) | method and system for managing Inter Processor Communication channel in Embedded system | |
CN104423944A (en) | Software application system | |
CN114189485A (en) | Network port management method and system of switch and computer readable storage medium | |
CN1332539C (en) | Method for implementing automatic establishment of VPN address pool | |
JP4303791B2 (en) | Telecommunications switching system with easily configurable supervisory control | |
US7167473B1 (en) | Method for device addressing using SNMP community string-based routing | |
WO2012071860A1 (en) | Synchronization communication method between single-boards of a multiple dwelling unit and multiple dwelling unit thereof | |
CA2630125C (en) | Slot interface access device and slot interface access method | |
KR100715144B1 (en) | Method comprising a mobile network system consisted of only pda | |
KR100442688B1 (en) | Interprocess communication method and apparatus | |
CN112671552A (en) | Automatic discovery method, system and equipment for intelligent network card of virtualization platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |