KR100955423B1 - 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템 - Google Patents

버퍼 관리 방법, 그 장치, 서버 및 전장 시스템 Download PDF

Info

Publication number
KR100955423B1
KR100955423B1 KR1020080130613A KR20080130613A KR100955423B1 KR 100955423 B1 KR100955423 B1 KR 100955423B1 KR 1020080130613 A KR1020080130613 A KR 1020080130613A KR 20080130613 A KR20080130613 A KR 20080130613A KR 100955423 B1 KR100955423 B1 KR 100955423B1
Authority
KR
South Korea
Prior art keywords
request
buffer
main buffer
server
execution
Prior art date
Application number
KR1020080130613A
Other languages
English (en)
Inventor
박세권
조현철
조성래
정우영
Original Assignee
재단법인대구경북과학기술원
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 재단법인대구경북과학기술원 filed Critical 재단법인대구경북과학기술원
Priority to KR1020080130613A priority Critical patent/KR100955423B1/ko
Application granted granted Critical
Publication of KR100955423B1 publication Critical patent/KR100955423B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템에 관한 것이다.
본 발명은 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 모듈; 클라이언트로부터 수신된 요청을 메인 버퍼에 저장하는 저장 모듈; 미리 정의된 순서에 근거하여 메인 버퍼에 저장된 요청을 획득하는 버퍼 엘리먼트 획득 모듈; 메인 버퍼에서 오버플로우(Overflow) 된 요청을 임시 버퍼에 임시 저장하는 임시 저장 모듈; 및 임시 버퍼에 임시 저장된 요청을 관리하는 오버플로우 관리 모듈을 포함하는 것을 특징으로 하는 버퍼 관리 장치를 제공한다.
본 발명에 의하면, 클라이언트로부터의 요청에 대한 오버플로우가 버퍼에서 발생했을 때, 오버플로우 된 요청을 효과적으로 관리하는 효과가 있다.
전자 제어 유닛, 버퍼

Description

버퍼 관리 방법, 그 장치, 서버 및 전장 시스템{Method, Apparatus, Server and Vehicle System for Managing Buffer}
본 발명은 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템에 관한 것이다. 더욱 상세하게는, 클라이언트로부터의 요청에 대한 오버플로우가 버퍼에서 발생했을 때, 오버플로우 된 요청을 효과적으로 관리하는 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템에 관한 것이다.
전장 시스템에서는 전자 제어 유닛(ECU: Electronic Control Unit, 이하 "ECU"라 칭함) 간 통신이 이루어지는데, 이러한 ECU 간의 다중 통신을 제공하기 위하여 버퍼(Buffer)를 이용하여 송수신 된 정보를 저장한다.
이러한 버퍼는 소프트웨어 설계자가 정의하게 되며 제한된 버퍼의 용량(즉, 버퍼 사이즈)으로 인해, 서버로서의 ECU에 많은 요청이 도착하게 되면 버퍼에 오버플로우(Overflow)가 발생하게 된다.
종래의 버퍼 관리 방식에서는 버퍼에서 오버플로우가 발생하게 되면 최종 도착한 요청을 폐기하게 되고, 그로 인해, 서버로 요청을 보낸 클라이언트는 서버로부터의 응답을 기다리다가, 미리 정해진 응답시간인 타임아웃(Time Out)에 도달하 면 서버로부터의 응답 실패로 판단하고 다음 수행을 한다.
ECU 간 통신에서, 클라이언트는 서버의 상태를 알 수 없으며 서버에 요청을 송신한 이후 송신한 요청의 수행 가능 여부에 상관없이 정해진 타임아웃이 지나고 나서야만 서버의 수행 결과를 알 수 있게 된다.
전술한 종래의 버퍼 관리 방식은 클라이언트로부터의 요청에 대한 서버의 실행 실패 확률을 높게 만드는 문제점이 있다. 이러한 문제점은 클라이언트-서버 통신 방식에 대한 통신 효율의 저하도 초래한다.
전술한 문제점을 해결하기 위해 본 발명은, 클라이언트로부터의 요청에 대한 오버플로우가 버퍼에서 발생했을 때, 오버플로우 된 요청을 효과적으로 관리하는 버퍼 관리 방법을 제공하는 주된 목적이 있다.
전술한 목적을 달성하기 위해 본 발명은, 클라이언트로부터 요청을 수신하는 요청 수신 단계; 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 단계; 상기 상태의 체크 결과, 상기 메인 버퍼가 비어있으면, 상기 요청에 따른 오퍼레이터를 실행하는 제 1 실행 단계; 상기 상태의 체크 결과, 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 2 실행 단계; 및 상기 상태의 체크 결과, 상기 메인 버퍼가 가득 차 있으면, 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후, 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼 에 저장하여 대기시킨 이후, 상기 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 3 실행 단계를 포함하는 것을 특징으로 하는 버퍼 관리 방법을 제공한다.
또한, 본 발명은, 클라이언트로부터 요청을 수신하는 요청 수신부; 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 관리부; 상기 상태의 체크 결과, 상기 메인 버퍼가 비어있으면, 상기 요청에 따른 오퍼레이터를 실행하는 제 1 실행 관리부; 상기 상태의 체크 결과, 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 2 실행 관리부; 및 상기 상태의 체크 결과, 상기 메인 버퍼가 가득 차 있으면, 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후, 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 3 실행 관리부를 포함하는 것을 특징으로 하는 버퍼 관리 기능을 제공하는 서버를 포함한다.
또한, 본 발명은, 요청을 송신하는 클라이언트; 및 상기 요청을 수신하여 메인 버퍼의 상태를 체크한 이후, 상기 상태의 체크 결과 상기 메인 버퍼가 비어있으면 상기 요청에 따른 오퍼레이터를 실행하고, 상기 상태의 체크 결과 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후 미리 정의된 순서에 근거하 여 상기 요청에 따른 상기 오퍼레이터를 실행하며, 상기 상태의 체크 결과 상기 메인 버퍼가 가득 차 있으면 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후 상기 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 서버를 포함하는 것을 특징으로 하는 전장 시스템을 포함한다.
또한, 본 발명은, 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 모듈; 클라이언트로부터 수신된 요청을 상기 메인 버퍼에 저장하는 저장 모듈; 미리 정의된 순서에 근거하여 상기 메인 버퍼에 저장된 요청을 획득하는 버퍼 엘리먼트 획득 모듈; 상기 메인 버퍼에서 오버플로우(Overflow) 된 요청을 임시 버퍼에 임시 저장하는 임시 저장 모듈; 및 상기 임시 버퍼에 임시 저장된 요청을 관리하는 오버플로우 관리 모듈을 포함하는 것을 특징으로 하는 버퍼 관리 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 클라이언트로부터의 요청에 대한 오버플로우가 버퍼에서 발생했을 때, 임시 버퍼를 이용하여, 오버플로우 된 요청을 효과적으로 관리함으로써, 클라이언트와 서버 간의 통신 또는 서버에서의 실행에 대한 성공 확률를 높게 하는 효과가 있다.
또한, 본 발명에 의하면, 서버 자신에게 클라이언트로부터의 요청을 재요청하는 방식을 통해 클라이언트로부터의 요청을 처리함으로써, 클라이언트와 서버의 부하 및 네트워크 부하를 줄일 수 있는 효과가 있다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 전장 시스템(100)을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 전장 시스템(100)은, 요청을 송신하는 클라이언트(120); 및 요청을 수신하여 메인 버퍼의 상태를 체크한 이후, 메인 버퍼(130)의 상태의 체크 결과에 따라 수신된 요청의 처리 방식 및 버퍼 관리 방식을 다르게 수행하는 서버(110)를 포함한다.
본 발명에서의 서버(110)는 하나 이상의 "메인 버퍼(Main Buffer)"(130) 및 하나 이상의 "임시 버퍼(Temporal Buffer)"(140)를 포함한 두 가지의 버퍼('큐(Queue)'라고도 함)를 관리한다.
도 1에서는 메인 버퍼(130)와 임시 버퍼(140)를 한 개씩만 도시하였으나, 이는 설명의 편의를 위한 것일 뿐, 실제로는, 구현 방식에 따라, 복수 개의 메인 버퍼(130) 및/또는 복수 개의 임시 버퍼(140)가 존재할 수 있다. 특히, 한 개의 임시 버퍼(140)와 복수 개의 메인 버퍼(130)를 두어, 복수 개의 메인 버퍼(130)가 한 개의 임시 버퍼(140)를 공유하는 것이 더 바람직하다.
여기서, 메인 버퍼(130)는 클라이언트(120)들로부터 수신된 요청이 저장되는 버퍼이며, 임시 버퍼(140)는 메인 버퍼(130)에 새롭게 수신된 요청이 저장될 공간이 없어 오버플로우(Overflow) 된 요청이 임시로 저장되는 버퍼이다. 이러한 메인 버퍼(130) 및 임시 버퍼(140)는 각기 정해진 버퍼 사이즈(Total_Buffer_Size)로 설정되어 있다.
전술한 바와 같이, 서버(110)는 새로운 요청이 수신되면, 먼저 메인 버퍼(130)의 상태를 체크하고, 그 체크 결과에 따라 수신된 새로운 요청을 다르게 처리하는 데, 이를 설명하기 전에 메인 버퍼(130)의 상태를 알아보면, 메인 버퍼(130)의 상태는 메인 버퍼(130)가 비어있는 제 1 상태, 메인 버퍼(130)에 대기중인 하나 이상의 다른 요청이 있고 수신된 요청을 저장할 공간이 있는 제 2 상태, 그리고 메인 버퍼(130)가 가득 차 있는 제 3 상태 중 하나의 상태일 수 있다.
이러한 메인 버퍼(130)의 상태(Main Buffer State)는 몇 가지 상태 정보를 이용하여 아래 식처럼 표현될 수도 있다. 여기서, 몇 가지 상태 정보에는, 메인 버 퍼(130)의 전체 사이즈를 의미하는 버퍼 사이즈(Total Buffer Size: TBS)와, 메인 버퍼(130)에 하나 이상의 요청이 저장된 사이즈, 즉 메인 버퍼(130)가 사용된 사이즈인 사용 사이즈(Used Buffer Size: UBS)와, 메인 버퍼(130)에 새로운 요청이 저장될 수 있는 사이즈, 즉 메인 버퍼(130)의 사용 가능한 사이즈인 사용 가능 사이즈(Available Buffer Size: ABS)가 있다. 즉, 이들 상태 정보들은 「ABS+UBS=TBS」라는 관계식이 성립한다.
Figure 112008087594588-pat00001
전술한 바와 같이, 서버(110)는 새로운 요청이 수신되면, 먼저 메인 버퍼(130)의 상태를 체크하고, 그 체크 결과에 따라 수신된 새로운 요청을 다르게 처리할 수 있다. 또한, 서버(110)는 메인 버퍼(130)의 현재 상황 및 여유 상황 등과 상태 체크 결과(예를 들어, 사용 사이즈(UBS) 및 사용 가능 사이즈(ABS)) 등을 해당 클라이언트로 알려줄 수 있으며, 이를 통해 클라이언트 요청 처리를 제어할 수도 있다.
제 1 상태인 경우, 즉 메인 버퍼(130)의 상태의 체크 결과 메인 버퍼(130)가 비어있으면, 서버(110)는 수신된 요청을 메인 버퍼(130)에 저장하지 않고 즉시, 수신된 요청에 따른 해당 오퍼레이터(Operator)를 실행한다.
제 2 상태인 경우, 즉 메인 버퍼(130)의 상태의 체크 결과 메인 버퍼(130)에 대기중인 하나 이상의 다른 요청이 있고 수신된 요청을 저장할 공간이 있으면, 수신된 요청을 메인 버퍼(130)에 저장하여 대기시킨 이후 미리 정의된 순서에 근거하여 대기시킨 요청에 따른 해당 오퍼레이터를 실행한다.
제 3 상태인 경우, 즉 메인 버퍼(130)의 상태의 체크 결과 메인 버퍼(130)가 가득 차 있으면, 수신된 요청을 임시 버퍼에 저장하여 대기시킨 이후 임시 버퍼(140)에 대기시킨 요청을 저장할 공간이 메인 버퍼(130)에서 발생하면 임시 버퍼(140)에 대기시킨 요청을 메인 버퍼(130)에 저장하여 대기시킨 이후 미리 정의된 순서에 근거하여 메인 버퍼(130)에 대기시킨 요청에 따른 해당 오퍼레이터를 실행한다.
본 명세서 전반적으로 언급되는 "미리 정의된 순서"는, 메인 버퍼(130)에서 저장된 요청들 중에서 하나의 요청을 선택하는 순서로서, 이 순서에 따라 저장된 요청들은 선택되어 실행되게 되고, 또한 메인 버퍼(130)에서 삭제될 수도 있다. 이러한 미리 정의된 순서는 FIFO(First-In First-Out) 방식, 우선순위(Priority) 방식, 작업이 주어진 만료시간 내에 완료되도록 보장하는 기한부 방식 등의 여러 방식에 따른 순서일 수 있다. 이러한 순서를 정의하는 방식은 여러 스케줄링(Scheduling) 방식을 이용할 수 있다.
또한, 메인 버퍼(130)가 여러 개 존재하는 경우, 이러한 여러 개의 매인 버퍼(130) 중 하나를 선택하는 것도 그 순서를 라운드 로빈(Round Robin) 방식 등의 여러 방식을 통해 미리 정의해둘 수 있다.
전술한 클라이언트(120) 및 서버(110)는 차량용 전장 시스템에서의 전자제어 유닛(ECU: Electronic Control Unit)이거나, 이를 위한 소프트웨어 모듈일 수 있다. 또한, 클라이언트(120) 및 서버(110)는 요청의 송신과, 요청의 수신 및 실행 등의 기능적인 측면에서의 역할에 따른 구분일 뿐, 실제로 하나의 장치 또는 서버가 클라이인트(120) 및/또는 서버(110)로서 동작할 수도 있다.
도 1에서는 서버(110)로 요청을 송신하는 클라이언트(120)를 한 개만 도시하였으나, 이는 설명의 편의를 위한 것일 뿐, 실제로는 복수 개의 클라이언트(120)가 존재할 수 있으며, 전장 시스템(100) 내에서 서버(110)도 복수 개로 존재할 수 있다.
도 2는 본 발명의 일 실시예에 따른 버퍼 관리 기능을 제공하는 서버(110)에 대한 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 버퍼 관리 기능을 제공하는 서버(110)는, 클라이언트(120)로부터 요청을 수신하는 요청 수신부(210); 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 관리부(220); 메인 버퍼의 상태 체크 결과에 따라 수신한 요청을 달리 처리하여 해당 오퍼레이터를 실행시키는 실행 관리부(230) 등을 포함한다.
전술한 버퍼 상태 체크 관리부(220)는, 메인 버퍼의 상태를 체크한 결과, 메인 버퍼의 사용 사이즈(Used Buffer Size: UBS) 및 사용 가능 사이즈(Available Buffer Size: ABS)에 대한 정보를 해당 클라이언트(120)로 송신할 수 있다. 이를 통해, 클라이언트(120)는 서버(110)의 메인 버퍼에 대한 현재 상황 및 여유 상황 등을 알게 되고, 이에 근거하여 추후 요청을 송신하는 등의 요청 처리를 제어할 수 있다.
도 2를 참조하면, 전술한 실행 관리부(230)는 메인 버퍼의 상태가 제 1 상태인 경우의 제 1 실행 관리부(231), 제 2 상태인 경우의 제 2 실행 관리부(232) 및 제 3 상태인 경우에서의 제 3 실행 관리부(233)를 포함한다.
메인 버퍼의 상태의 체크 결과, 제 1 상태, 즉 메인 버퍼가 비어있으면(즉, UBS=0이면), 제 1 실행 관리부(231)는 수신한 요청을 메인 버퍼에 저장하지 않고 즉시 수신한 요청에 따른 오퍼레이터를 실행한다.
메인 버퍼의 상태의 체크 결과, 제 2 상태, 즉 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 수신한 요청을 저장할 공간이 있으면(즉, TBS>UBS≠0이면), 제 2 실행 관리부(232)는 수신한 요청을 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 대기시킨 요청에 따른 오퍼레이터를 실행한다.
메인 버퍼의 상태의 체크 결과, 제 3 상태, 즉, 메인 버퍼가 가득 차 있으면(즉, TBS=UBS이면), 제 3 실행 관리부(233)는, 수신한 요청을 임시 버퍼에 저장하여 대기시킨 이후, 임시 버퍼에 대기시킨 요청을 저장할 공간이 메인 버퍼에 발생하면 임시 버퍼에 대기시킨 요청을 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 메인 버퍼에 대기시킨 요청에 따른 오퍼레이터를 실행한다.
전술한 제 1 실행 관리부(231)는, 수신한 요청에 따른 오퍼레이터의 실행을 통해, 미리 설정된 타임아웃(Time Out) 이내에 실행 결과가 획득되면 획득된 실행 결과를 해당 요청을 송신한 클라이언트(120)로 전송하고, 그러나 실행 결과가 미리 설정된 타임아웃 이내에 미획득되면 타임아웃 메시지를 클라이언트(120)로 전송해주어 정상적으로 처리되지 못했음을 알려주어 다음 처리를 할 수 있게 해준다.
전술한 제 2 실행 관리부(232) 또는 제 3 실행 관리부(233)는, 클라이언트(120)로부터 수신한 또는 임시 버퍼에 저장되어 있던 요청을 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 해당 요청에 따른 오퍼레이터를 실행시킨 이후, 해당 요청을 메인 버퍼에서 삭제한다. 이러한 삭제를 통해, 메인 버퍼의 사용 가능 사이즈(ABS)가 증가한다. 그로 인해, 메인 버퍼에서 대기 중이고 다음 순서의 다른 요청이 실행될 수 있고, 임시 버퍼에 저장되어 있던 요청을 메인 버퍼에 저장시킬 수도 있다.
또한, 전술한 제 2 실행 관리부(232) 또는 제 3 실행 관리부(233)는, 해당 요청에 따른 오퍼레이터의 실행을 통해, 실행 결과가 미리 설정된 타임 아웃 이내에 획득되면 획득된 실행 결과를 클라이언트(120)로 전송하고, 그러나 실행 결과가 미리 설정된 타임아웃 이내에 미획득되면 타임아웃 메시지를 클라이언트(120)로 전송해주어 정상적으로 처리되지 못했음을 알려주어 다음 처리를 할 수 있게 해준다.
한편, 전술한 제 2 실행 관리부(232) 또는 제 3 실행 관리부(233)는, 미리 설정된 타임아웃이 영(Zero)이면, 클라이언트(120)로부터 수신한 또는 임시 버퍼에 저장되어 있던 요청을 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치에 근거하여 재요청 시간 간격을 설정하고, 타이머를 동작시켜, 설정된 재요청 시간 간격에 따라 대기시킨 요청에 대한 재요청 메시지를 서버 자신에게 전 송하여, 신속하게 실행될 수 있게 한다. 실행 이후, 실행 결과를 획득하여 해당 클라이언트(120)로 전송할 수 있다.
이에 비해, 전술한 제 2 실행 관리부(232) 또는 제 3 실행 관리부(233)는, 리 설정된 타임아웃이 영(Zero)이 아닌 일정한 상수 값이면, 클라이언트(120)로부터 수신한 또는 임시 버퍼에 저장되어 있던 요청을 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치 및 미리 설정된 타임아웃에 근거하여 재요청 시간 간격 및 재요청 횟수를 설정하고, 타이머를 동작시켜, 설정된 재요청 시간 간격 및 재요청 횟수에 따라 대기시킨 요청에 대한 재요청 메시지를 서버 자신에게 전송하여, 신속하게 실행될 수 있게 한다. 실행 이후, 타임 아웃 이내에 실행 결과를 획득할 수 있으면 실행 결과를 해당 클라이언트(120)로 전송하고, 타임 아웃 이내에 실행 결과를 획득할 수 없거나 실행에 실패한 경우 타임아웃 메시지 또는 실행 실패 메시지를 해당 클라이언트(120)로 전송할 수 있다.
위에서 언급한 재요청 메시지는 해당 클라이언트(120)에 대한 정보(IN, OUT, ID 등)를 포함할 수 있다.
전술한 요청 처리 방식, 즉 서버가 자신에게 재요청 메시지를 전송하는 방식을 클라이언트로부터의 요청을 처리하는 방식으로 인해, 클라이언트와 서버 간의 빈번한 통신 요청을 줄일 수 있게 되어, 클라이언트와 서버의 부하 및 네트워크 부하를 줄일 수 있는 효과가 있다. 특히, 전술한 요청 처리 방식은 서버가 여러 클라이언트로부터 요청을 수신하여 처리하는 경우에는 그 효과가 더욱 탁월하다.
전술한 서버(110) 및 클라이언트(120)는 전장 시스템(100)에서, 클라이언트- 서버 통신 방식으로 통신하는 전자제어유닛(ECU: Electronic Control Unit)일 수 있다.
전술한 서버(110)는 메인 버퍼 및 임시 버퍼 중 하나 이상을 복수 개만큼 포함할 수 있다.
또한, 전술한 서버(110)는 메인 버퍼를 복수 개만큼 두되, 복수 개의 메인 버퍼가 한 개 또는 복수 개의 임시 버퍼를 공유하도록 한다.
또한, 도 2에 도시된 바와 같이, 서버(110)에 포함된 요청 수신부(210), 버퍼 상태 체크 관리부(220) 및 실행 관리부(230) 등은 서버(110) 기능을 하는 소프트웨어 모듈로서 구현될 수 있으며, 이는 도 6을 참조하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 버퍼 관리 기능 제공시, 메인 버퍼의 상태에 대한 3가지 유형을 개념적으로 나타낸 도면이다.
본 명세서에서 개시된 "메인 버퍼"는 클라이언트(120)들로부터 수신된 요청이 저장되는 버퍼이며, 일정한 값의 버퍼 사이즈(Total_Buffer_Size: TBS)가 설정되어 있다. 참고로, 이에 비해, 임시 버퍼는 메인 버퍼(130)에 새롭게 수신된 요청이 저장될 공간이 없어 오버플로우(Overflow) 된 요청이 임시로 저장되는 버퍼이다.
이러한 메인 버퍼의 가능한 상태는 메인 버퍼가 비어있는 "제 1 상태"(도 3의 (A)에 도시된 메인 버퍼의 상태), 메인 버퍼에 대기중인 하나 이상의 다른 요청 이 있고 수신된 요청을 저장할 공간이 있는 "제 2 상태"(도 3의 (B)에 도시된 메인 버퍼의 상태), 그리고 메인 버퍼가 가득 차 있는 "제 3 상태"(도 3의 (C)에 도시된 메인 버퍼의 상태)가 있다.
이러한 메인 버퍼의 상태(Main Buffer State)는 몇 가지 상태 정보를 이용하여 아래 식처럼 표현될 수도 있다. 여기서, 몇 가지 상태 정보에는, 메인 버퍼의 전체 사이즈를 의미하는 버퍼 사이즈(Total Buffer Size: TBS)와, 메인 버퍼에 하나 이상의 요청이 저장된 사이즈, 즉 메인 버퍼가 사용된 사이즈인 사용 사이즈(Used Buffer Size: UBS)와, 메인 버퍼에 새로운 요청이 저장될 수 있는 사이즈, 즉 메인 버퍼의 사용 가능한 사이즈인 사용 가능 사이즈(Available Buffer Size: ABS)가 있다. 즉, 이들 상태 정보들은 「ABS+UBS=TBS」라는 관계식이 성립한다.
Figure 112008087594588-pat00002
도 3에서는, 개념적인 설명을 위해, 메인 버퍼의 사이즈를 요청의 개수를 단위로 가정하고, 메인 버퍼의 버퍼 사이즈(TBS)를 5로 가정한다. 즉, 메인 버퍼에는 최대 5개의 요청을 저장할 수 있다.
제 1 상태의 메인 버퍼를 도시한 도 3의 (A)를 참조하면, 버퍼 사이즈(TBS)=5, 사용 사이즈(UBS)=0, 사용 가능 사이즈(ABS)=5이다. 위의 식을 참조하면, UBS=0 이기 때문에 메인 버퍼의 상태가 비어있는 제 1 상태라고도 설명할 수 있다.
제 2 상태의 메인 버퍼를 도시한 도 3의 (B)를 참조하면, 버퍼 사이즈(TBS)=5, 사용 사이즈(UBS)=3, 사용 가능 사이즈(ABS)=2이다. 위의 식을 참조하면, TBS>UBS≠0 이기 때문에 메인 버퍼의 상태가 제 2 상태라고도 설명할 수 있다. 이러한 제 2 상태의 메인 버퍼는 새로운 요청(R)이 수신되면, 이를 저장할 수 있다.
제 3 상태의 메인 버퍼를 도시한 도 3의 (C)를 참조하면, 버퍼 사이즈(TBS)=5, 사용 사이즈(UBS)=5, 사용 가능 사이즈(ABS)=0이다. 위의 식을 참조하면, TBS=UBS 이기 때문에 메인 버퍼의 상태가 제 3 상태(Full Buffer State)라고도 설명할 수 있다. 이러한 제 3 상태의 메인 버퍼는 새로운 요청(R)이 수신되면, 새로운 요청(R)을 저장할 수 없어 오버플로우(Overflow)가 발생하여, 본 발명에서는 임시 버퍼에 오버플로우 된 요청을 임시 저장한다.
도 3의 (A)와 같이, 새로운 요청이 수신된 시점에, 메인 버퍼의 상태가 제 1 상태인 경우, 해당 요청에 따른 오퍼레이터를 바로 실행시켜 그 실행 결과를 해당 클라이언트로 전송할 수 있다.
또한, 도 3의 (B)와 같이, 새로운 요청이 수신된 시점에, 메인 버퍼의 상태가 제 2 상태인 경우, 해당 요청을 메인 버퍼에 저장하여 실행되는 순서까지 대기시킨 이후, 정해진 순서가 되면, 해당 요청에 따른 오퍼레이터를 실행시켜 그 실행 결과를 해당 클라이언트로 전송할 수 있다. 실행 결과 전송 또는 정해진 순서가 되어 실행될 때, 해당 요청은 메인 버퍼에서 삭제될 수 있다.
또한, 도 3의 (C)와 같이, 새로운 요청이 수신된 시점에, 메인 버퍼의 상태가 더 이상의 요청을 저장할 수 없는 제 3 상태(Full Buffer State)인 경우에 대해서는, 도 4에서 종래의 버퍼 관리 방식에 따른 클라이언트-서버 통신 절차와 본 발명의 버퍼 관리 방식에 따른 클라이언트-서버 통신 절차를 비교하여 설명한다.
도 4는 메인 버퍼가 가득 찬 상태(즉, 제 3 상태)에서, 새로운 요청에 대한 클라이언트와 서버 간의 통신 절차를 종래 기술(도 4의 (A))과 본 발명(도 4의 (B))을 비교하여 나타낸 도면이다.
도 4의 (A)를 참조하면, 종래의 버퍼 관리 방식에 따르면, 새로운 요청이 수신된 시점에 메인 버퍼가 제 3 상태인 경우, 수신된 새로운 요청은 버퍼 오버플로우가 발생하여 이 새로운 요청은 드롭(Drop), 삭제(Delete) 또는 폐기한다. 이로 인해, 클라이언트는 송신한 요청에 대한 응답(실행 결과)을 기다리다 해당 요청에 대한 타임아웃이 발생하고 나서야 서버의 상태를 간접적으로 판단할 수 있게 되고, 이후 처리를 할 수 있다. 이러한 요청에 대한 버퍼 오버플로우는 요청에 따른 서버의 실행이 실패될 확률을 매우 높게 만드는 문제점이 있고, 또한 클라이언트는 불필요하게 그 응답 결과를 타임아웃이 발생할 때까지 기다려야만 하는 지연을 겪게 되는 문제점도 있다.
도 4의 (B)를 참조하면, 본 발명의 버퍼 관리 방식에 따르면, 새로운 요청이 수신된 시점에 메인 버퍼가 제 3 상태인 경우, 수신된 새로운 요청은 버퍼 오버플로우가 발생하고, 오버플로우 된 요청은 드롭(Drop), 삭제(Delete) 또는 폐기되지 않고, 임시 버퍼에 임시 저장되고, 메인 버퍼에 저장할 공간이 생기면 메인 버퍼로 이동하여 저장되어 실행을 위해 획득을 대기하다 실행된다. 실행된 이후에는 그 실행 결과가 클라이언트로 송신된다.
전술한 바와 같은 본 발명의 버퍼 관리 방식에 따르면, 오버플로우 된 요청을 드롭(Drop), 삭제(Delete) 또는 폐기되지 않고 임시 버퍼에 임시 저장시켰다가 이후 다시 실행할 수 있게 함으로써, 버퍼 오버플로우로 인한 서버의 실행 실패 확률을 크게 낮출 수 있는 효과가 있다. 또한 클라이언트도 불필요하게 그 응답 결과를 타임아웃이 발생할 때까지 기다릴 필요가 없어진다.
도 5는 본 발명의 일 실시예에 따른 버퍼 관리 방법에 대한 흐름도이다.
도 5를 참조하면, 도 2에 도시된 본 발명의 일 실시예에 따른 서버(110)가 제공하는 버퍼 관리 방법은, 클라이언트로부터 요청을 수신하는 요청 수신 단계(S500); 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 단계(S502); 상태의 체크 결과, 메인 버퍼가 비어있으면, 즉 메인 버퍼의 사용 사이즈(UBS)가 영(Zero)인 제 1 상태로 판단되면, 요청에 따른 오퍼레이터를 실행하는 제 1 실행 단계(S504); 메인 버퍼의 상태의 체크 결과, 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 요청을 저장할 공간이 있으면, 즉 「UBS≠0이고 ABS≠0」이거나 「TBS>UBS≠0」인 제 2 상태로 판단되면, 수신한 요청을 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 대기시킨 요청에 따른 오퍼레이터를 실행하는 제 2 실행 단계(S506); 및 메인 버퍼의 상태의 체크 결과, 메인 버퍼가 가득 차 있으면, 즉, 「ABS=0」인 제 3 상태로 판단되면, 수신한 요청을 임시 버퍼에 저장하여 대기시킨 이후, 임시 버퍼에 대기시킨 요청을 저장할 공간이 메인 버퍼에 발생하면 임시 버퍼에 대기시킨 요청을 메인 버퍼로 이동시켜 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 메인 버퍼에 저장된 요청에 따른 오퍼레이터를 실행하는 제 3 실행 단계(S508) 등을 포함한다.
전술한 서버(110) 및 클라이언트(120)는 전장 시스템(100)에서, 클라이언트-서버 통신 방식으로 통신하는 전자제어유닛(ECU: Electronic Control Unit)일 수 있다.
전술한 서버(110)는 메인 버퍼 및 임시 버퍼 중 하나 이상을 복수 개만큼 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따른 버퍼 관리 장치(600)에 대한 블록 구성도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 버퍼 관리 장치(600)는, 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 모듈(610); 클라이언트로부터 수신된 요청을 상기 메인 버퍼에 저장하는 저장 모듈(620); 미리 정의된 순서에 근거하여 메인 버퍼에 저장된 요청을 획득하는 버퍼 엘리먼트 획득 모듈(630); 메인 버퍼에서 오버플로우(Overflow) 된 요청을 임시 버퍼에 임시 저장하는 임시 저장 모듈(640); 및 임시 버퍼에 임시 저장된 요청을 관리하는 오버플로우 관리 모듈(650) 등을 포함할 수 있다.
전술한 오버플로우 관리 모듈(650)은, 임시 버퍼에 저장된 요청을 저장할 공간이 메인 버퍼에 발생하면, 임시 버퍼에 저장된 요청을 메인 버퍼에 저장한다.
전술한 버퍼 엘리먼트 획득 모듈(630)에 의해, 메인 버퍼로부터 저장된 요청이 획득되면, 오퍼레이터의 실행으로 실행 결과가 획득되고, 획득된 실행 결과가 해당 클라이언트로 전송되고, 그러나, 실행 결과가 미리 설정된 타임아웃 이내에 미획득되면, 타임아웃 메시지가 클라이언트로 전송된다.
도 6에 도시된 버퍼 관리 장치(600)는 요청의 수신, 요청의 오버플로우 발생, 메인 버퍼의 상태 변경, 임시 버퍼의 상태 변경, 요청에 대한 타임아웃 발생 및 요청에 대한 재요청 등에서 하나 이상에 대한 이벤트를 인식하거나 다른 모듈에 알려주는 알람 기능을 수행하는 이벤트 관리 모듈(660)을 추가로 포함할 수도 있다.
전술한 버퍼 관리 장치(600)는 클라이언트와 클라이언트-서버 방식으로 통신하는 서버에 포함될 수 있으며, 서버 및 클라이언트는 전장 시스템(예를 들어, 차량 전장 시스템)에서의 전자제어유닛(ECU: Electronic Control Unit)일 수 있다.
또한, 전술한 버퍼 관리 장치(600)는 메인 버퍼 및 임시 버퍼 중 하나 이상을 복수 개만큼 포함할 수 있다.
도 6을 참조하여 전술한 버퍼 관리 장치(600)는 소프트웨어적인 모듈 형태로 런타임(Runtime) 환경 모듈과 함께 전장 소프트웨어 런타임 환경상에서 존재할 수 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 클라이언트로부터의 요청에 대한 오버플로우가 버퍼(메인 버퍼)에서 발생했을 때, 임시 버퍼를 이용하여 오버플로우 된 요청을 효과적으로 관리함으로써, 클라이언트와 서버 간의 통신 또는 서버에서의 실행에 대한 성공 확률를 높게 하는 효과가 있다.
또한, 본 발명에 의하면, 서버 자신에게 클라이언트로부터의 요청을 재요청하는 방식을 통해 클라이언트로부터의 요청을 처리함으로써, 클라이언트와 서버의 부하 및 네트워크 부하를 줄일 수 있는 효과가 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 전장 시스템을 개략적으로 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 버퍼 관리 기능을 제공하는 서버에 대한 블록 구성도,
도 3은 본 발명의 일 실시예에 따른 버퍼 관리 기능 제공시, 메인 버퍼의 상태에 대한 3가지 유형을 개념적으로 나타낸 도면,
도 4는 메인 버퍼가 가득 찬 상태에서, 새로운 요청에 대한 클라이언트와 서버 간의 통신 절차를 종래 기술과 본 발명을 비교하여 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 버퍼 관리 방법에 대한 흐름도,
도 6은 본 발명의 일 실시예에 따른 버퍼 관리 장치에 대한 블록 구성도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100: 전장 시스템
110: 서버
120: 클라이언트
130: 메인 버퍼
140: 임시 버퍼
220: 버퍼 상태 체크 관리부

Claims (22)

  1. 전장 시스템에서의 서버가 제공하는 버퍼 관리 방법에 있어서,
    클라이언트로부터 요청을 수신하는 요청 수신 단계;
    메인 버퍼의 상태를 체크하는 버퍼 상태 체크 단계;
    상기 상태의 체크 결과, 상기 메인 버퍼가 비어있으면, 상기 요청에 따른 오퍼레이터를 실행하는 제 1 실행 단계;
    상기 상태의 체크 결과, 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 2 실행 단계; 및
    상기 상태의 체크 결과, 상기 메인 버퍼가 가득 차 있으면, 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후, 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 상기 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 3 실행 단계
    를 포함하되,
    상기 제 2 실행 단계 또는 상기 제 3 실행 단계에서는,
    미리 설정된 타임아웃이 영(Zero)이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치에 근거하여 재요청 시간 간격을 설정하고, 상기 설정된 재요청 시간 간격에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하고,
    미리 설정된 타임아웃이 영(Zero)이 아닌 일정한 상수 값이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치 및 상기 미리 설정된 타임아웃에 근거하여 재요청 시간 간격 및 재요청 횟수를 설정하고, 상기 설정된 재요청 시간 간격 및 재요청 횟수에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하는 것을 특징으로 하는 전장 시스템에서의 버퍼 관리 방법.
  2. 제 1항에 있어서,
    상기 서버 및 상기 클라이언트는,
    전장 시스템에서, 클라이언트-서버 통신 방식으로 통신하는 전자제어유 닛(ECU: Electronic Control Unit)인 것을 특징으로 하는 전장 시스템에서의 버퍼 관리 방법.
  3. 제 1항에 있어서,
    상기 서버는,
    상기 메인 버퍼를 복수 개만큼 두되, 상기 복수 개의 메인 버퍼가 상기 임시 버퍼를 공유하는 것을 특징으로 하는 전장 시스템에서의 버퍼 관리 방법.
  4. 전장 시스템에서 버퍼 관리 기능을 제공하는 서버에 있어서,
    클라이언트로부터 요청을 수신하는 요청 수신부;
    메인 버퍼의 상태를 체크하는 버퍼 상태 체크 관리부;
    상기 상태의 체크 결과, 상기 메인 버퍼가 비어있으면, 상기 요청에 따른 오퍼레이터를 실행하는 제 1 실행 관리부;
    상기 상태의 체크 결과, 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 2 실행 관리부; 및
    상기 상태의 체크 결과, 상기 메인 버퍼가 가득 차 있으면, 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후, 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 제 3 실행 관리부
    를 포함하되,
    상기 제 2 실행 관리부 또는 상기 제 3 실행 관리부는,
    미리 설정된 타임아웃이 영(Zero)이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치에 근거하여 재요청 시간 간격을 설정하고, 상기 설정된 재요청 시간 간격에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하고,
    미리 설정된 타임아웃이 영(Zero)이 아닌 일정한 상수 값이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치 및 상기 미리 설정된 타임아웃에 근거하여 재요청 시간 간격 및 재요청 횟수를 설정하고, 상기 설정된 재요청 시간 간격 및 재요청 횟수에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  5. 제 4항에 있어서,
    상기 제 1 실행 관리부는,
    상기 요청에 따른 상기 오퍼레이터의 실행을 통해, 미리 설정된 타임아웃 이내에 실행 결과가 획득되면 상기 획득된 실행 결과를 상기 클라이언트로 전송하고, 상기 실행 결과가 상기 미리 설정된 타임아웃 이내에 미획득되면 타임아웃 메시지를 상기 클라이언트로 전송하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  6. 제 4항에 있어서,
    상기 제 2 실행 관리부 또는 상기 제 3 실행 관리부는,
    상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 상기 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행시킨 이후, 상기 요청을 상기 메인 버퍼에서 삭제하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  7. 제 6항에 있어서,
    상기 제 2 실행 관리부 또는 상기 제 3 실행 관리부는,
    상기 요청에 따른 상기 오퍼레이터의 실행을 통해, 실행 결과가 미리 설정된 타임 아웃 이내에 획득되면 상기 획득된 실행 결과를 상기 클라이언트로 전송하고, 상기 실행 결과가 상기 미리 설정된 타임아웃 이내에 미획득되면 타임아웃 메시지를 상기 클라이언트로 전송하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  8. 삭제
  9. 삭제
  10. 제 4항에 있어서,
    상기 미리 설정된 타임아웃이 발생하면, 타임아웃 메시지를 상기 클라이언트로 전송하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  11. 제 4항에 있어서,
    상기 버퍼 상태 체크 관리부는,
    상기 메인 버퍼의 상태를 체크한 결과, 상기 메인 버퍼의 사용 사이즈 및 사용 가능 사이즈에 대한 정보를 상기 클라이언트로 송신하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  12. 제 4항에 있어서,
    상기 서버 및 상기 클라이언트는,
    전장 시스템에서, 클라이언트-서버 통신 방식으로 통신하는 전자제어유닛(ECU: Electronic Control Unit)인 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  13. 제 4항에 있어서,
    상기 서버는 상기 메인 버퍼 및 상기 임시 버퍼 중 하나 이상을 복수 개만큼 포함하는 것을 특징으로 하는 전장 시스템에서 버퍼 관리 기능을 제공하는 서버.
  14. 요청을 송신하는 하나 이상의 클라이언트; 및
    상기 요청을 수신하여 메인 버퍼의 상태를 체크한 이후, 상기 상태의 체크 결과 상기 메인 버퍼가 비어있으면 상기 요청에 따른 오퍼레이터를 실행하고, 상기 상태의 체크 결과 상기 메인 버퍼에 대기중인 하나 이상의 다른 요청이 있고 상기 요청을 저장할 공간이 있으면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하며, 상기 상태의 체크 결과 상기 메인 버퍼가 가득 차 있으면 상기 요청을 임시 버퍼에 저장하여 대기시킨 이후 상기 메인 버퍼에 상기 요청을 저장할 공간이 발생하면 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후 상기 미리 정의된 순서에 근거하여 상기 요청에 따른 상기 오퍼레이터를 실행하는 서버
    를 포함하되,
    상기 서버는,
    미리 설정된 타임아웃이 영(Zero)이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치에 근거하여 재요청 시간 간격을 설정하고, 상기 설정된 재요청 시간 간격에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하고,
    미리 설정된 타임아웃이 영(Zero)이 아닌 일정한 상수 값이면, 상기 요청을 상기 메인 버퍼에 저장하여 대기시킨 이후, 오퍼레이터 수행 시간의 평균치 및 상기 미리 설정된 타임아웃에 근거하여 재요청 시간 간격 및 재요청 횟수를 설정하고, 상기 설정된 재요청 시간 간격 및 재요청 횟수에 따라 상기 대기시킨 요청에 대한 재요청 메시지를 상기 서버 자신에게 전송하는 것을 특징으로 하는 전장 시스템.
  15. 제 14항에 있어서,
    상기 클라이언트 및 상기 서버는 차량용 전장 시스템에서의 전자제어유 닛(ECU: Electronic Control Unit)인 것을 특징으로 하는 전장 시스템.
  16. 메인 버퍼의 상태를 체크하는 버퍼 상태 체크 모듈;
    클라이언트로부터 수신된 요청을 상기 메인 버퍼에 저장하는 저장 모듈;
    미리 정의된 순서에 근거하여 상기 메인 버퍼에 저장된 요청을 획득하는 버퍼 엘리먼트 획득 모듈;
    상기 메인 버퍼에서 오버플로우(Overflow) 된 요청을 임시 버퍼에 임시 저장하는 임시 저장 모듈;
    상기 임시 버퍼에 임시 저장된 요청을 관리하는 오버플로우 관리 모듈; 및
    요청의 수신, 요청의 오버플로우 발생, 상기 메인 버퍼의 상태 변경, 상기 임시 버퍼의 상태 변경, 요청에 대한 타임아웃 발생 및 요청에 대한 재요청 중 하나 이상에 대한 이벤트를 인식하거나 다른 모듈에 알려주는 이벤트 관리 모듈
    을 포함하는 것을 특징으로 하는 버퍼 관리 장치.
  17. 제 16항에 있어서,
    상기 오버플로우 관리 모듈은,
    상기 임시 버퍼에 저장된 요청을 저장할 공간이 상기 메인 버퍼에 발생하면, 상기 임시 버퍼에 저장된 요청을 상기 메인 버퍼에 저장하는 것을 특징으로 하는 버퍼 관리 장치.
  18. 제 16항에 있어서,
    상기 버퍼 엘리먼트 획득 모듈에 의해, 상기 메인 버퍼로부터 저장된 요청이 획득되면, 오퍼레이터의 실행으로 실행 결과가 획득되고, 상기 획득된 실행 결과가 해당 클라이언트로 전송되는 것을 특징으로 하는 버퍼 관리 장치.
  19. 제 18항에 있어서,
    상기 실행 결과가 미리 설정된 타임아웃 이내에 미획득되면, 타임아웃 메시지가 상기 클라이언트로 전송되는 것을 특징으로 하는 버퍼 관리 장치.
  20. 삭제
  21. 제 16항에 있어서,
    상기 버퍼 관리 장치는 상기 클라이언트와 클라이언트-서버 방식으로 통신하는 서버에 포함되고, 상기 서버 및 상기 클라이언트는 전장 시스템에서의 전자제어유닛(ECU: Electronic Control Unit)인 것을 특징으로 하는 버퍼 관리 장치.
  22. 제 16항에 있어서,
    상기 버퍼 관리 장치는 상기 메인 버퍼 및 상기 임시 버퍼 중 하나 이상을 복수 개만큼 포함하는 것을 특징으로 하는 버퍼 관리 장치.
KR1020080130613A 2008-12-19 2008-12-19 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템 KR100955423B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080130613A KR100955423B1 (ko) 2008-12-19 2008-12-19 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080130613A KR100955423B1 (ko) 2008-12-19 2008-12-19 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템

Publications (1)

Publication Number Publication Date
KR100955423B1 true KR100955423B1 (ko) 2010-05-04

Family

ID=42281317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080130613A KR100955423B1 (ko) 2008-12-19 2008-12-19 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템

Country Status (1)

Country Link
KR (1) KR100955423B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420292B1 (ko) * 2012-10-09 2014-07-21 주식회사 시큐아이 데이터 구조 및 이를 이용한 데이터 처리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06104915A (ja) * 1992-09-22 1994-04-15 Oki Electric Ind Co Ltd バッファー優先制御方法
JPH06209333A (ja) * 1993-01-12 1994-07-26 Mitsubishi Electric Corp バッファ利用方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06104915A (ja) * 1992-09-22 1994-04-15 Oki Electric Ind Co Ltd バッファー優先制御方法
JPH06209333A (ja) * 1993-01-12 1994-07-26 Mitsubishi Electric Corp バッファ利用方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420292B1 (ko) * 2012-10-09 2014-07-21 주식회사 시큐아이 데이터 구조 및 이를 이용한 데이터 처리 방법

Similar Documents

Publication Publication Date Title
US10904184B2 (en) Smart message delivery based on transaction processing status
KR101242954B1 (ko) 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용
CN111950988B (zh) 分布式工作流调度方法、装置、存储介质及电子设备
US9462077B2 (en) System, method, and circuit for servicing a client data service request
US20120144138A1 (en) Locking Access To Data Storage Shared By A Plurality Of Compute Nodes
US11190459B2 (en) Connection pool management
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
US9413851B2 (en) Information processing system, information processing device, client terminal, and computer readable medium
US11314545B2 (en) Predicting transaction outcome based on artifacts in a transaction processing environment
JP2009176097A (ja) サービス管理装置及びプログラム
CN113282395B (zh) 基于Redis的作业请求调度方法、装置、设备及介质
CN113722056A (zh) 任务调度方法、装置、电子设备和计算机可读介质
CN109428926B (zh) 一种调度任务节点的方法和装置
CN110914805A (zh) 用于分层任务调度的计算系统
US20040177353A1 (en) Electronic device network having graceful denial of service
US9509641B1 (en) Message transmission for distributed computing systems
CN114500403A (zh) 一种数据处理方法、装置及计算机可读存储介质
KR100955423B1 (ko) 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템
US7839799B2 (en) Middleware components for bundling service invocations
CN115412609B (zh) 一种业务处理方法、装置、服务器及存储介质
CN113271228B (zh) 带宽资源调度方法、装置、设备及计算机可读存储介质
US20140025730A1 (en) Managing concurrent conversations over a communications link between a client computer and a server computer
US9270742B2 (en) Computer system and control method of computer system
CN115421889A (zh) 进程间的请求管理方法、装置、电子设备及存储介质
JP2013206041A (ja) 通信システム及び負荷分散処理装置

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
FPAY Annual fee payment

Payment date: 20130422

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140414

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150421

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160401

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee