KR100842264B1 - 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치 - Google Patents

실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치 Download PDF

Info

Publication number
KR100842264B1
KR100842264B1 KR1020060115442A KR20060115442A KR100842264B1 KR 100842264 B1 KR100842264 B1 KR 100842264B1 KR 1020060115442 A KR1020060115442 A KR 1020060115442A KR 20060115442 A KR20060115442 A KR 20060115442A KR 100842264 B1 KR100842264 B1 KR 100842264B1
Authority
KR
South Korea
Prior art keywords
packet
real
kernel
time
task
Prior art date
Application number
KR1020060115442A
Other languages
English (en)
Other versions
KR20070062407A (ko
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 한국전자통신연구원
Publication of KR20070062407A publication Critical patent/KR20070062407A/ko
Application granted granted Critical
Publication of KR100842264B1 publication Critical patent/KR100842264B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]
    • 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/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치가 개시된다. 본 발명에 따른 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법은, 외부에서 수신되어 커널에 전달된 패킷이 응용 계층 내의 실시간 태스크가 사용하려는 패킷인지를 커널 내에 구비된 실시간 네트워크 관리자가 확인하는 단계; 및 커널에 전달된 패킷이 실시간 태스크가 사용하려는 패킷으로 확인된 경우, 수신한 패킷을 순차적으로 저장하는 수신 패킷 버퍼에 있던 다른 패킷들보다 확인된 패킷이 먼저 처리되도록 수신 패킷 버퍼의 최상위에 확인된 패킷을 저장하는 단계;를 포함한다. 본 발명에 따르면, 네트워크 모듈에서 실시간성을 지원하기 위한 실시간 태스크가 송수신하고자 하는 패킷을 지연 없이 빠르게 처리할 수 있다.
임베디드, 실시간 응답성, 실시간 운영체제, 커널, 버퍼 관리

Description

실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치{Apparatus and Method for packet management to support realtime feature at kernel}
도 1은 본 발명이 실행될 기본적인 환경을 나타내는 도면,
도 2는 본 발명에 따른 실시간 태스크의 네트워크 최초 사용 등록을 나타내는 도면,
도 3은 본 발명에 따른 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법의 일 실시예를 도시한 도면, 및
도 4는 본 발명에 따른 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법의 일 실시예를 도시한 도면이다.
본 발명은 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치에 관한 것으로, 더욱 상세하게는 네트워크상의 한 노드에서 운영체제가 송수신하는 패킷을 실시간성에 적합하도록 처리하기 위하여 커널 상에서 송수신 패킷 버퍼를 관리하는 방법 및 장치에 관한 것이다.
최근에 정보 산업과 이동 컴퓨팅 기술의 발달에 힘입어 PDA, 휴대폰, 전자책 등과 같은 임베디드(embeded) 기기들이 많이 개발되고, 이에 따라 임베디드 시스템의 중요한 요소 중 하나인 실시간성에 많은 관심이 집중되고 있다. 또한 이들 임베디드 기기의 통신에 있어 실시간 성능을 이끌어 낼 수 있는 기술들이 많이 개발되고 있다.
임베디드 시스템의 운영체제에서 네트웍은 임베디드 시스템의 제한된 자원과 부족한 처리능력으로 인해 최대한의 네트웍 성능을 이끌어 내는 데에 더 많은 노력을 기울여왔다. 대부분의 임베디드 운영체제에서 네트워크 모듈은 사용자 태스크가 송 수신을 요청한 데이터를 최대한 빠르게 처리하는 데에 중점을 두어 개발되어 왔고, 태스크의 실시간성은 배제한 채 요청된 순서대로 패킷을 처리하는 데에만 초점이 맞추어져 있었다.
실시간 응답성을 높인다는 의미는 실시간 태스크가 운영체제에 임의의 요청을 수행하였을 때, 그 요청이 실행되고 다시 실시간 태스크가 CPU을 점유하는 데까지 걸리는 시간을 줄인다는 의미이다. 이를 위해 실시간 스케줄러를 비롯한 실시간 지원 동기화 매커니즘, 쓰레드형 인터럽트 핸들러 등 많은 기술들이 개발되었다.
실시간 응답성을 높이기 위한 기존의 기술들을 간략히 살펴본다.
임베디드 시스템의 실시간성에 대한 기존의 연구는 인터럽트 지연(interrupt latency)이나 스케줄링 지연(scheduling latency)을 줄이는 방안이 주류를 이루고 있다. Clark Williams는 "Linux Scheduler Latency" 논문에서 임베디드 리눅스의 성능적인 측면에서 많이 부족하다고 지적되는 리눅스 스케줄러 지연(linux Scheduler Latency)에 대해서 다루고 있다. 이 논문에서는 전통적인 모노리틱 커 널(monolithic kernel)인 리눅스의 실시간 성능 향상을 위해 리눅스 스케줄러 지연 문제를 해결하기 위한 방법에 대해 설명하고 있는데, 당시의 기술의 양대 주류라고 할 수 있는 선점형 커널 방식과 낮은 지연시간 패치 커널 방법을 이용한 커널 구성 방법을 설명하고 있다.
이러한 연구를 기반으로 다양한 접근 방법이 제시되었는데, 그 중 하나는 인터럽트 쓰레드(interrupt thread)이다. 인터럽트 서비스 루틴은 최상위의 우선 순위를 가지고 있다. 시스템의 실시간 태스크가 동작해야하는 타이밍에 인터럽트가 발생하면 그 인터럽트 서비스 루틴을 수행하느라 실시간 태스크가 동작하지 못할 경우가 생기는 경우가 많아진다. 이는 실시간 시스템의 요구 사항 중의 하나인 예측가능성(predictability)를 크게 훼손시킨다. 인터럽트는 언제 걸릴지 모르고, 또한 그 실행 시간조차 일정하지 않기 때문이다.
그래서 이 인터럽트 서비스 루틴을 쓰레드화 하는 노력이 진행되었다. 쓰레드화된 인터럽트 서비스 루틴은 쓰레드이기 때문에 당연히 커널의 스케줄러에 의해 쓰레드의 실행 타이밍이 결정된다. 불규칙하게 나타났던 인터럽트 구문이 스케줄러의 정책에 따라 일정한 타이밍에 일정한 시간 동안 수행되어 시스템은 보다 더 예측 가능해지게 되었고, 실시간 시스템에 보다 더 적합한 운영체제가 될 수 있었다.
또 다른 접근 방법은 자발적 선점 방법이다. 이는 현재 실행중인 태스크가 소정의 선점 포인트 구문을 수행하다가 자발적으로 선점되어 더 높은 우선순위의 태스크가 동작할 수 있게 하는 것이다. 커널 개발자들이 시스템의 인터럽트 지연이나 스케줄러 지연 등을 테스트하여 여러 곳의 커널 코드에 선점 포인트를 삽입하였 다. 이는 매우 단순한 방법이지만 보다 나은 실시간성을 제공하는데 많이 기여하였고, 현재 i386 기반의 리눅스 정규 커널 2.6에도 사용되고 있는 방법이다.
실시간 태스크가 실행되어야 할 타이밍에 실행되지 못하는 이유는 바로 커널의 동기화 매커니즘인 록(lock) 때문이었다. 리눅스의 예에서 록이 걸린 구문을 수행하는 도중엔 선점이 발생하지 않는다. 이는 여러 태스크가 동시에 사용하는 코드를 수행할 때나 데이터에 접근할 때는 선점을 불가능하게 하여 시스템의 재진입이 가능하지 않은 영역임을 나타내는 것이다. 그러나 커널 코드가 록이 걸린 구문을 수행할 때는 이 구문을 사용하지 않는 태스크들까지 모두 선점할 수 없게 되어, 빠른 처리를 필요로 하는 실시간 태스크도 실행할 수가 없었다. 만일 실시간 태스크가 이 코드를 수행하지 않을 것이 확실하다면 이 태스크에 대해서는 CPU를 선점가능하게 하는 것이 바람직하다. 따라서 최근에 이에 대한 개발이 한창 진행중이고, 여러 패치를 통해 그 성능을 검증받고 있는 중이다.
지금까지 실시간성을 보장하기 위한 기존의 방법들을 살펴보았다. 그러나 기존의 방법들은 네트워크 처리 모듈에 대해 실시간성을 부여하는 것에 대한 대응이 부족하다.
일반적으로 운영체제는 처리되어야 할 패킷을 FIFO 큐에 넣어 순차적으로 내보내거나 받아들이게 되는데 이는 시스템의 최대 성능(Throughput)을 이끌어 내기 위함이다. 그러나, 실시간성을 요구하는 시스템에서 이와 같은 패킷의 처리는 실시간 태스크가 송수신하려는 패킷에 대한 즉각적인 처리를 보장하지 못하므로 실시간 응답성이 떨어질 수밖에 없다.
네트워크 모듈에서 송신 혹은 수신한 데이터는 데이터 소실 등을 대비하여, 패킷으로 동작을 하게 되어 있다. 만약 실시간 태스크가 네크워크를 통해 데이터를 수신하는 경우, 이 데이터 패킷이 이미 네트워크 카드(NIC)에 도달되었더라도 기존에 버퍼에 있던 다른 태스크의 패킷을 먼저 처리하고 난 이후에 비로소 실시간 태스크가 필요로 하는 패킷이 실시간 태스크에 전달되므로 데이터의 도달 시점이 지연되는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 실시간 태스크의 실시간 응답성을 지원해 주기 위하여 네트워크 처리 모듈에 대해 실시간성을 부여하여 커널 상에서 송수신 패킷을 실시간성에 맞게 처리하고 그에 따라 송수신 패킷 버퍼를 관리하는 방법 및 장치를 제공하는 것이다.
상기와 같은 기술적 과제를 달성하기 위한, 본 발명에 따르는 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법의 일 실시예는, 외부에서 수신되어 커널에 전달된 패킷이 응용 계층 내의 실시간 태스크가 사용하려는 패킷인지를 커널 내에 구비된 실시간 네트워크 관리자가 확인하는 단계; 및 커널에 전달된 패킷이 실시간 태스크가 사용하려는 패킷으로 확인된 경우, 수신한 패킷을 순차적으로 저장하는 수신 패킷 버퍼에 있던 다른 패킷들보다 확인된 패킷이 먼저 처리되도록 수신 패킷 버퍼의 최상위에 확인된 패킷을 저장하는 단계;를 포함한다.
또한 상기와 같은 기술적 과제를 달성하기 위한, 본 발명에 따르는 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법의 일 실시예는, 응용 계층으로부터 커널에 전달된 패킷이 응용 계층 내의 실시간 태스크가 사용하려는 패킷인지를 커널 내에 구비된 실시간 네트워크 관리자가 확인하는 단계; 및 커널에 전달된 패킷이 실시간 태스크가 사용하려는 패킷으로 확인된 경우, 송신할 패킷을 순차적으로 저장하는 송신 패킷 버퍼에 있던 다른 패킷들보다 확인된 패킷이 먼저 처리되도록 송신 패킷 버퍼의 최상위에 확인된 패킷을 저장하는 단계;를 포함한다.
또한 상기와 같은 기술적 과제를 달성하기 위한, 본 발명에 따르는 실시간성 지원을 위한 커널에서의 패킷 처리 장치의 일 실시예는, 수신한 패킷을 순차적으로 저장하는 수신 패킷 버퍼; 송신하려는 패킷을 순차적으로 저장하는 송신 패킷 버퍼; 및 응용 계층 내의 실시간 태스크가 사용하려는 패킷이 커널에 전달되면 수신 패킷 버퍼에 있던 다른 패킷들보다 먼저 처리되도록 수신 패킷 버퍼의 최상위에 실시간 태스크가 사용하려는 패킷을 저장하고, 실시간 태스크가 송신하려는 패킷이 커널에 전달되면 송신 패킷 버퍼에 있던 다른 패킷들보다 먼저 처리되도록 송신 패킷 버퍼의 최상위에 실시간 태스크가 송신하려는 패킷을 저장하는 실시간 네트워크 관리자;를 포함한다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시예들에 대하여 상세하게 설명한다.
도 1은 본 발명이 실행될 기본적인 환경을 나타내는 도면이다.
도 1을 참조하면, 네트워크 단말 사이에 통신을 위해 여러 단계의 레벨이 존재한다. 하드웨어 레벨에서는 네트워크 선로(110)와 네트워크 하드웨어(130)가 물 리적인 연결을 담당하고, 커널 레벨에서는 프로토콜 스택(170)이 데이터를 패킷으로 변환시키거나 패킷으로부터 데이터를 복원한다. 응용 레벨에서는 네트워크 어플리케이션(190)이 데이터를 처리한다.
본 발명에서는 네트워크의 실시간성을 보장하기 위해 실시간 네트워크 관리자(150)를 커널 영역에 두어 실시간 태스크의 보다 빠른 패킷 처리를 지원한다.
도 2는 본 발명에 따른 실시간 태스크의 네트워크 최초 사용 등록을 나타내는 도면이다.
도 2를 참조하면, 응용 레벨에는 실시간 태스크(280)와 비실시간 태스크(290)가 존재한다. 비실시간 태스크(280)가 데이터(291)를 전송할 때에는 기존의 방법대로 곧바로 프로토콜 스택(270)을 거처서 패킷(271)으로 변환되어 네트워크 하드웨어(230)를 통하여 전송된다.
그러나 실시간 태스크(280)가 데이터(281)를 전송할 때에는 우선 커널 내의 실시간 네트워크 관리자(Realtime Network Manager)(250)에 이 태스크의 정보가 등록된다. 이 정보는 커널이 관리하며, 오프(open) 함수를 사용하여 네트워크 전송을 시작하려 할 때 등록된다. 등록되는 정보는 이 태스크의 패킷 식별자(pid)를 포함한 태스크 관련 정보와 통신하고자 하는 목적지 IP 주소이고, 추후에 시스템에서 발생하는 네트워크 트래픽에 실시간성을 부여할 것인지에 관한 판단 근거가 된다.
도 3은 본 발명에 따른 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법의 일 실시예를 도시한 도면이다.
도 3을 참조하면, 네트워크를 통해 패킷이 네트워크 하드웨어(NIC)(330)에 도달하면 NIC(330)는 인터럽트를 발생시켜 NIC 버퍼에 있는 패킷을 처리해 주기를 기다리게 된다. NIC(330)의 ISR(Intermediate Session Routing)은 NIC 버퍼에 있는 패킷을 가져와서 장치 드라이버(340)를 통해 커널의 실시간 네트워크 관리자(350)에게 패킷의 도착을 알린다.
그러면 패킷을 전달받은 실시간 네트워크 관리자(350)은 전달된 패킷이 응용 계층 내의 실시간 태스크(380)가 사용하려는 패킷인지를 확인한다.
바람직하게는, 커널에 전달된 패킷 헤더의 IP 옵션(Option) 필드에 실시간 태스크(380)의 패킷 식별자(pid)가 포함된 경우, 전달된 패킷의 송신측 IP 주소를 기초로 이 패킷을 사용하려는 실시간 태스크(380)가 있는지 확인할 수 있다. 즉 패킷을 보낸 측에서 IP 패킷 헤더의 Option 필드에 실시간 태스크(380)의 패킷 식별자(pid)를 넣어서 전송해주기 때문에 실시간 네트워크 관리자는 도착한 패킷 헤더의 IP Option 필드를 확인한다. 이 IP Option 필드와 송신측 IP 어드레스(Saddr)를 인덱스로 하여 이 주소로부터 패킷이 오기를 기다리고 있는 실시간 태스크가 있는지 확인하는 것이다.
만약 그러한 실시간 태스크(380)가 존재한다면, 실시간 네트워크 관리자(350)는 가장 빠른 처리가 가능하도록 이 패킷을 수신 패킷 버퍼(360)의 최상위(361)에 올려놓아 수신 패킷 버퍼(360)에 있는 다른 패킷들보다 먼저 처리되도록 한다.
이후 이 패킷(371)은 프로토콜 스택(370)을 거쳐 데이터(381)로 변환된어 실시간 태스크(380)에 전달된다.
도 4는 본 발명에 따른 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법의 일 실시예를 도시한 도면이다.
네트워크의 통신 프로토콜을 살펴보면 송수신이 페어로 발생되는 경우가 많다. 즉 보내는 데이터가 있으면 반드시 받는 데이터가 있게 된다. 또한 그 역도 성립된다. 그러므로 실시간 태스크의 데이터 송신이 지연되면, 지연된 시간만큼 데이터 수신도 지연될 수밖에 없음을 의미한다. 곧 실시간 태스크가 송신하려는 데이터 패킷도 다른 데이터 패킷에 우선하여 처리되어야 한다는 것을 의미한다.
도 4를 참조하면, 네트워크를 통해 실시간 태스크(480)가 데이터(481)를 보내려 할 때, 실시간 태스크는 'write'나 'send'와 같은 시스템 콜을 사용하게 된다. 이 데이터(481)는 커널의 프로토콜 스택(470)을 거쳐 패킷(471)으로 변환된다.
실시간 네트워크 관리자(450)는 자신이 가지고 있는 정보를 참조하여, 이 패킷이 실시간 태스크(480)가 보낸 패킷인지 확인한다. 실시간 태스크의 네트워크 최초 사용 등록시에 실시간 네트워크 관리자(450)에 정보를 등록하는 것에 대하여는 도 2의 설명에서 설명한 바와 같다.
만약 실시간 패킷이라면 IP Option 필드에 실시간 태스크(480)의 패킷 식별자(pid)를 넣고, 송신 패킷 버퍼(460)의 최상위(461)에 이 패킷을 올려놓는다.
이 후 송신 패킷 버퍼(460)에 있는 이 패킷은 장치 드라이버(440)를 통하여 네트워크 하드웨어(NIC)(430)의 NIC 버퍼로 전송되고, 네트워크를 통해 목적지 IP주소(Daddr)로 전송된다.
본 발명에 따른 실시간성 지원을 위한 커널에서의 패킷 처리 장치는 수신된 패킷을 커널 내에 순차적으로 저장하는 수신 패킷 버퍼, 송신하려는 패킷을 커널 내에 순차적으로 저장하는 송신 패킷 버퍼 및 실시간 네트워크 관리자를 포함한다. 수신 패킷 버퍼, 송신 패킷 버퍼 및 실시간 네트워크 관리자의 동작은 도 3 및 도 4의 설명에서 이미 설명되었다.
실시간 태스크가 통신하고자 하는 노드는 IP 패킷 헤더의 Option 필드를 확인하고, 다시 실시간 태스크가 속해 있는 노드와 통신할 때 IP 패킷 헤더에 같은 값을 넣어주는 일을 해야만 한다. 이렇게 하는 이유는 실시간 태스크가 속해 있는 노드에 여러 통신 태스크가 동작하고 있을 수 있고, 그 태스크들 중 실시간 태스크가 통신중인 비실시간 태스크를 구분해주기 위함이다.
데이터 송수신의 종료는 실시간 태스크가 'close' 시스템 콜을 사용할 때 이루어진다. 이 시스템 콜이 호출되면 커널의 실시간 네트워크 매니저는 태스크의 패킷 식별자(pid)를 인덱스로 하여 자신이 가지고 있는 정보에 이 태스크의 엔트리가 있는지 확인한다. 만약 엔트리가 있다면 그 엔트리를 삭제한다.
이러한 방법으로 실시간 태스크를 위한 패킷의 전송이 시스템 내 커널 영역에서 실시간 네트워크 관리자를 통해 이루어지게 된다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷 을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등 및 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 네트워크 모듈에서 실시간성을 지원하기 위한 실시간 태스크가 송수신하고자 하는 패킷을 지연 없이 빠르게 처리할 수 있다.
또한 본 발명에 따르면, 실시간성 지원 네트워크 버퍼 관리가 가능하여 보다 나은 실시간 응답성을 제공하는 커널을 만들 수 있다.

Claims (9)

  1. 외부에서 수신되어 커널에 전달된 패킷이 응용 계층 내의 실시간 태스크가 사용하려는 패킷인지를 상기 커널 내에 구비된 실시간 네트워크 관리자가 확인하는 단계; 및
    상기 커널에 전달된 패킷이 상기 실시간 태스크가 사용하려는 패킷으로 확인된 경우, 수신한 패킷을 순차적으로 저장하는 수신 패킷 버퍼에 있던 다른 패킷들보다 상기 확인된 패킷이 먼저 처리되도록 상기 수신 패킷 버퍼의 최상위에 상기 확인된 패킷을 저장하는 단계;를 포함하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법.
  2. 제 1항에 있어서,
    상기 수신 패킷 확인 단계에서, 상기 커널에 전달된 패킷 헤더의 IP 옵션(Option) 필드에 상기 실시간 태스크의 패킷 식별자(pid)가 포함된 경우, 상기 커널에 전달된 패킷의 송신측 IP 주소를 기초로 상기 커널에 전달된 패킷을 사용하려는 실시간 태스크가 있는지 확인하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 수신 패킷 처리 방법.
  3. 응용 계층으로부터 커널에 전달된 패킷이 응용 계층 내의 실시간 태스크가 사용하려는 패킷인지를 상기 커널 내에 구비된 실시간 네트워크 관리자가 확인하는 단계; 및
    상기 커널에 전달된 패킷이 상기 실시간 태스크가 사용하려는 패킷으로 확인된 경우, 송신할 패킷을 순차적으로 저장하는 송신 패킷 버퍼에 있던 다른 패킷들보다 상기 확인된 패킷이 먼저 처리되도록 상기 송신 패킷 버퍼의 최상위에 상기 확인된 패킷을 저장하는 단계;를 포함하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법.
  4. 제 3항에 있어서,
    상기 확인하는 단계에서, 상기 커널에 전달된 패킷 헤더의 IP 옵션(Option) 필드에 상기 실시간 태스크의 패킷 식별자(pid)가 포함된 경우, 상기 커널에 전달된 패킷의 목적지 IP 주소를 기초로 상기 커널에 전달된 패킷을 사용하려는 실시간 태스크가 있는지 확인하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법.
  5. 제 3항에 있어서,
    상기 실시간 태스크가 최초로 네트워크를 사용할 때에 패킷 식별자를 포함한 태스크 관련 정보 및 목적지 IP 주소를 커널에 등록하는 단계;를 더 포함하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 송신 패킷 처리 방법.
  6. 수신된 패킷을 커널 내에 순차적으로 저장하는 수신 패킷 버퍼;
    송신하려는 패킷을 커널 내에 순차적으로 저장하는 송신 패킷 버퍼; 및
    응용 계층 내의 실시간 태스크가 사용하려는 패킷이 상기 커널에 전달되면 상기 수신 패킷 버퍼에 있던 다른 패킷들보다 먼저 처리되도록 상기 수신 패킷 버퍼의 최상위에 상기 실시간 태스크가 사용하려는 패킷을 저장하고, 상기 실시간 태스크가 송신하려는 패킷이 상기 커널에 전달되면 상기 송신 패킷 버퍼에 있던 다른 패킷들보다 먼저 처리되도록 상기 송신 패킷 버퍼의 최상위에 상기 실시간 태스크가 송신하려는 패킷을 저장하는 실시간 네트워크 관리자;를 포함하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 패킷 처리 장치.
  7. 제 6항에 있어서,
    상기 커널에 전달된 패킷이 상기 실시간 태스크가 사용하려는 패킷인지 여부는, 수신된 패킷의 IP 헤더의 옵션(Option) 필드와 송신측 IP 주소를 검사하여 결정하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 패킷 처리 장치.
  8. 제 6항에 있어서,
    상기 커널에 전달된 패킷이 상기 실시간 태스크가 송신하려는 패킷인지 여부는, 커널에 미리 등록된 패킷 식별자를 포함한 태스크 관련 정보 및 목적지 IP 주소를 검사하여 결정하는 것을 특징으로 하는 실시간성 지원을 위한 커널에서의 패킷 처리 장치.
  9. 제 1항 내지 제 5항 중 어느 한 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060115442A 2005-12-12 2006-11-21 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치 KR100842264B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050121989 2005-12-12
KR20050121989 2005-12-12

Publications (2)

Publication Number Publication Date
KR20070062407A KR20070062407A (ko) 2007-06-15
KR100842264B1 true KR100842264B1 (ko) 2008-06-30

Family

ID=38357903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060115442A KR100842264B1 (ko) 2005-12-12 2006-11-21 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100842264B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000069330A (ko) * 1996-12-05 2000-11-25 프랑스 존 에스. 일체형 다중창유리 창유니트 및 창틀

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000069330A (ko) * 1996-12-05 2000-11-25 프랑스 존 에스. 일체형 다중창유리 창유니트 및 창틀

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020000069330
1020077004414

Also Published As

Publication number Publication date
KR20070062407A (ko) 2007-06-15

Similar Documents

Publication Publication Date Title
EP2645674B1 (en) Interrupt management
US11146508B2 (en) Data processing system
US11093284B2 (en) Data processing system
US8854971B2 (en) System and method employing intelligent feedback mechanisms for traffic suspension on a client device
US20080263554A1 (en) Method and System for Scheduling User-Level I/O Threads
US7937499B1 (en) Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card
EP3402172B1 (en) A data processing system
US20050097226A1 (en) Methods and apparatus for dynamically switching between polling and interrupt to handle network traffic
KR100842264B1 (ko) 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치
CN115695578A (zh) 一种数据中心网络tcp和rdma混合流调度方法、系统及装置
US9948533B2 (en) Interrupt management
Gu et al. StackPool: A high-performance scalable network architecture on multi-core servers
Tak et al. High performance communication software for standalone embedded systems based on flat memory model
CN115412500A (zh) 支持负载均衡策略的异步通信方法、系统、介质及设备

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: 20110609

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee