KR101345373B1 - 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치 - Google Patents

실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치 Download PDF

Info

Publication number
KR101345373B1
KR101345373B1 KR1020070001644A KR20070001644A KR101345373B1 KR 101345373 B1 KR101345373 B1 KR 101345373B1 KR 1020070001644 A KR1020070001644 A KR 1020070001644A KR 20070001644 A KR20070001644 A KR 20070001644A KR 101345373 B1 KR101345373 B1 KR 101345373B1
Authority
KR
South Korea
Prior art keywords
deadline
socket
transmission
task
packet
Prior art date
Application number
KR1020070001644A
Other languages
English (en)
Other versions
KR20080064578A (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 삼성전자주식회사
Priority to KR1020070001644A priority Critical patent/KR101345373B1/ko
Priority to US11/979,737 priority patent/US8194658B2/en
Publication of KR20080064578A publication Critical patent/KR20080064578A/ko
Application granted granted Critical
Publication of KR101345373B1 publication Critical patent/KR101345373B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치에 관한 것으로, 본 발명에 따른 실시간 시스템의 송신 방법은 소켓에 지정된 소정 송신 옵션에 기초하여 소켓에 속하는 태스크를 스케쥴링하는 단계 및 스케쥴링된 태스크에 의해 생성된 패킷을 소정 송신 옵션에 기초하여 송신하는 단계를 포함하는 것을 특징으로 한다. 본 발명에 따르면, 네트워크 통신의 실시간성을 보장할 수 있으며, 시스템의 자원을 효율적으로 사용하면서, 요구되는 송수신 특성에 따라 데이터를 송수신할 수 있다.

Description

실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치{Transmission/reception method and apparatus for real-time system}
도 1은 본 발명의 일 실시예에 따른 실시간 시스템의 송수신 장치의 전체 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 소켓 스케쥴러의 상세 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 송신 패킷 매니저의 상세 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 수신 패킷 매니저의 상세 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라 소켓 레지스터가 소켓의 데드라인을 결정하고 소켓 스케쥴러 테이블에 소켓을 등록하는 과정을 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따라 태스크 셀렉터가 태스크를 선택함으로써 태스크를 스케쥴링하는 과정을 나타내는 흐름도이다.
본 발명은 실시간 시스템에 관한 것으로, 특히 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치에 관한 것이다.
오늘날, 실시간 시스템은 센서 네트워크, 원격 모니터링, 네트워크 멀티미디어, 통신용 제어 로봇, 홈 네트워크 등 다양한 분야에 적용되고 있으며, 이러한 실시간 시스템에서 네트워크를 이용하여 데이터를 송수신하는 기술은 필수 불가결한 핵심 기술로 자리잡고 있다. 특히 실시간 시스템에서 데이터를 송수신할 때 실시간성이 요구되는 경우가 많이 있는데, 예를 들면, 멀티미디어 데이터를 일정 대역폭으로 주기적으로 전송하여야 하는 경우라든지 혹은 센서 데이터를 일정 시간 안에 전송하여야 하는 경우 등이다.
종래의 실시간 시스템에서는 실시간성을 보장하기 위한 여러 가지 방법을 제시하고 있다. 예를 들면 태스크의 우선순위를 정하여 보다 중요한 태스크의 실행을 우선 처리하거나, 타이머를 이용하여 실시간성 이벤트를 생성하는 등 실시간 운영체제에서 제공되는 API(application programming interface)를 이용하여 미션 크리티컬한 태스크의 실행을 보장하였다. 그러나 이러한 우선순위의 자원 분배 방식으로는 네트워크 통신에서의 실시간성을 보장할 수 없으며, 요구되는 송수신 특성에 따라 실시간성을 만족시킬 수 없는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 네트워크 통신의 실시간성을 보장하고, 시스템의 자원을 효율적으로 사용하면서 요구되는 송수신 특성에 따라 실시간성을 만족시킬 수 있는 실시간 시스템의 송신 방법 및 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 네트워크 통신의 실시간성을 보장하고, 시스템의 자원을 효율적으로 사용하면서 요구되는 송수신 특성에 따라 실시간성을 만족시킬 수 있는 실시간 시스템의 수신 방법 및 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 네트워크 통신의 실시간성을 보장하고, 시스템의 자원을 효율적으로 사용하면서 요구되는 송수신 특성에 따라 실시간성을 만족시킬 수 있는 실시간 시스템의 송신 방법 또는 수신 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 실시간 시스템의 송신 방법은 소켓에 지정된 소정 송신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계; 및 상기 스케쥴링된 태스크에 의해 생성된 패킷을 상기 소정 송신 옵션에 기초하여 송신하는 단계를 포함하는 것을 특징으로 한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 실시간 시스템의 수신 방법은, 수신된 패킷을 상기 패킷에 해당하는 소켓에 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크에 전달하는 단계; 및 상기 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 실시간 시스템의 송신 장치는, 소켓에 지정된 소정 송신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 소켓 스케쥴러; 및 상기 스케쥴링된 태스크에 의해 생성된 패킷을 상기 소정 송신 옵션에 기초하여 송신하는 패킷 매니저를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 실시간 시스템의 수신 장치는, 수신된 패킷을 상기 패킷에 해당하는 소켓에 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크에 전달하는 패킷 매니저; 및 상기 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 소켓 스케쥴러를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 컴퓨터로 읽을 수 있는 기록 매체는, 소켓에 지정된 소정 송신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계; 및 상기 스케쥴링된 태스크에 의해 생성된 패킷을 상기 소정 송신 옵션에 기초하여 송신하는 단계를 실행시키기 위한 프로그램을 기록한 것이 바람직하다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 컴퓨터로 읽을 수 있는 기록 매체는, 수신된 패킷을 상기 패킷에 해당하는 소켓에 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크에 전달하는 단계; 및 상기 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계를 실행시키기 위한 프로그램을 기록한 것이 바람직하다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설 명한다. 이하 설명 및 첨부된 도면들에서 중 동일한 구성요소들은 각각 동일한 부호들로 나타내기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 실시간 시스템의 송수신 장치의 전체 구성을 개략적으로 도시한 도면이다.
도 1을 참조하면, 본 실시예에 따른 실시간 시스템의 송수신 장치는 소켓 스케쥴러(110), 프로토콜 스택(120), 송신 패킷 매니저(130), 네트워크 인터페이스(140), 및 수신 패킷 매니저(150)를 포함하여 이루어진다.
소켓 스케쥴러(110)는 태스크들(160)이 네트워크와 통신하고자 할 경우 소켓을 생성한다. 이 때 소켓 스케쥴러(110)는 생성할 소켓에 패킷의 송신 또는 수신에 관한 옵션을 지정한다. 그리고 지정된 옵션에 따라서 소켓에 속하는 태스크를 스케쥴링한다.
프로토콜 스택(120)은 송신할 패킷 또는 수신된 패킷의 흐름을 제어하고 패킷에 헤더를 부가하거나 패킷에 부가된 헤더를 패킷과 분리하는 등의 역할을 수행한다. 프로토콜 스택(120)은 예를 들어, 유니캐스트, 멀티캐스트, TCP/IP, UDP 등의 각종 프로토콜을 지원할 수 있다.
송신 패킷 매니저(130)는 소켓 스케쥴러(110)에 의해 스케쥴링된 태스크로부터 생성된 패킷을 네트워크 인터페이스(140)를 통하여 네트워크로 송신한다. 이 때 송신 패킷 매니저(130)는 송신할 패킷에 해당하는 소켓에 지정된 옵션에 기초하여 네트워크로 송신한다.
수신 패킷 매니저(150)는 네트워크 인터페이스(140)와 프로토콜 스택(120)을 거쳐 수신된 패킷을 해당하는 소켓에 지정된 옵션에 기초하여 해당하는 소켓에 속하는 태스크, 즉 수신된 패킷의 목적지인 태스크에 전달한다.
도 2는 본 발명의 일 실시예에 따른 소켓 스케쥴러(110)의 상세 동작을 설명하기 위한 도면이다. 소켓 스케쥴러(110)는 소켓 생성부(210), 소켓 레지스터(220), 소켓 스케쥴러 테이블(230), 태스크 셀렉터(240)를 포함하여 이루어진다.
소켓 생성부(210)는 소켓을 생성한다. 이 때 소켓 생성부(210) 생성하고자 하는 소켓에 송신 또는 수신에 관한 옵션을 지정한다. 지정되는 옵션을 예를 들어 다음과 같다.
SO_TXCYCLE : 송신 특성이 주기적인 경우 송신 주기를 의미한다.
SO_RXCYCLE : 수신 특성이 주기적인 경우 수신 주기를 의미한다.
SO_TXDEADLINE : 송신 특성이, 송신 요청이 발생된 후 일정 시간, 즉 송신 데드라인 내에 패킷이 송신되어야하는 경우 이 송신 데드라인을 의미한다.
SO_RXDEADLINE : 수신 특성이, 네트워크 인터페이스를 통하여 들어온 패킷을 일시 저장하여 두는 수신 패킷 큐(queue)에 패킷이 들어온 후 일정 시간, 즉 수신 데드라인 내에 특정 태스크에 패킷이 전달되어야 하는 경우 이 수신 데드라인을 의미한다.
SO_PRIORITY : 소켓의 우선 순위를 의미한다.
상기 옵션들 중 SO_TXCYCLE, SO_RXCYCLE, SO_TXDEADLINE, 및SO_RXDEADLINE은 시스템의 타이머 틱이나 시간 단위로 표현될 수 있다.
또한, 상기 옵션들은 일반적인 소켓 API에서 제공되는, 소켓에 옵션을 설정하는 함수인 setsockopt 함수를 이용해서 지정할 수 있다. setsockopt 함수는 다음과 같은 형태를 가진다.
int setsockopt (int socket, int level, int optname, void *optval, socklen_t optlen);
setsockopt 함수의 인자들 중 두 번째 인자인 "level"은 소켓의 레벨, 즉 어떤 옵션을 설정할 것인지를 의미하며, 소켓의 레벨에는 SOL_SOCKET, IPPROTO_IP, IPPROTO_TCP 등이 있다. 이 중 상기 옵션들을 지정하기 위한 소켓의 레벨로는 SOL_SOCKET을 사용할 수 있다. 한편 상기 옵션 값들은 위와 같이 소켓 생성시에 지정할 수도 있으나, 소켓 생성 후에도 필요에 따라 변경할 수 있다.
송신 과정에서 소켓 스케쥴러(110)가 태스크를 스케쥴링하는 과정을 설명하면 다음과 같다.
우선 소켓 레지스터(220)는 소켓에 지정된 옵션들 중 송신 주기, 송신 데드라인, 또는 시스템 타임을 이용하여 각 소켓의 데드라인을 결정한다. 편의상 송신 주기를 Tp, 송신 데드라인을 Tdl, 시스템 타임을 Ts, 데드라인을 Dn이라 하기로 한다. 소켓 레지스터(220)는 소켓 옵션에 송신 주기만 지정되어 있는 경우 데드라인 Dn을 Dn = Ts + Tp 로 결정하고, 송신 데드라인만 지정되어 있는 경우 데드라인 Dn을 Dn = Ts + Tdl 로 결정한다. 그리고 송신 주기와 송신 데드라인이 모두 지정되어 있는 경우 데드라인 Dn을 Dn = min{Ts + Tp, Ts + Tdl}, 즉 Ts + Tp와 Ts + Tdl 중 작은 값으로 결정한다. 그리고 소켓 레지스터(220)는 소켓 스케쥴러 테이블(230)에 소켓을 등록한다.
태스크 셀렉터(240)는 시스템 타임과 동기하여, 소켓 스케쥴러 테이블(230)에 등록된 각 소켓에 속하는 태스크를 상기 결정된 데드라인 Dn에 따라서 선택함으로써 태스크를 스케쥴링한다. 보다 구체적으로 설명하면 다음과 같다. 태스크 셀렉터(240)는 소켓 스케쥴링 테이블(330)에 등록된 소켓들에 속하는 태스크들 중 가장 데드라인 Dn이 임박한 태스크, 즉 시스템 타임과 가장 가까운 Dn을 가지는 소켓에 속하는 태스크를 선택하여 실행시킴으로써 선택된 태스크가 송신과 관련된 처리를 수행할 수 있도록 한다. 한편, Dn이 동일한 태스크가 둘 이상 존재할 경우 상기 옵션들 중 우선 순위가 높은 태스크를 선택하여 실행시킨다. Dn과 우선 순위가 모두 일치하는 태스크가 둘 이상 존재하는 경우에는 라운드 로빈(Round-Robin) 방식으로 처리한다. 라운드 로빈 방식이란 태스크들에 매 타임 슬라이스마다 돌아가면서 CPU 타임을 배정해 주는 스케쥴링 방식을 말한다.
수신 과정에서 소켓 스케쥴러(110)가 태스크를 스케쥴링하는 과정은 소켓의 데드라인을 송신 주기와 송신 데드라인 대신에 수신 주기와 수신 데드라인을 이용하여 구한다는 점 외에는 송신 과정에서의 태스크 스케쥴링과 마찬가지이다. 다만 수신 패킷 매니저(150)로부터 패킷을 수신하여야 작업을 비로소 처리할 수 있는 태스크의 경우에는 패킷을 수신하지 않은 상태에서는 실행되지 않는다.
도 3은 본 발명의 일 실시예에 따른 송신 패킷 매니저(130)의 상세 동작을 설명하기 위한 도면이다.
프로토콜 스택(120)으로부터 나온 송신 패킷은 송신 요청을 한 소켓의 특성, 즉 소켓 ID(Sn), 데드라인(Dn), 우선 순위(Pn)를 그대로 가진다. 소켓 ID(Sn)는 소켓 생성시에 소켓에 부여되는 식별자이고, 데드라인(Dn)은 소켓 레지스터(220)에서 결정된 값이며, 우선 순위(Pn)는 소켓 생성부에서 소켓에 지정된 우선 순위이다.
송신 패킷 매니저(130)는 각 패킷의 데드라인(Dn)과 우선 순위(Pn)에 따라서 각 패킷을 송신 패킷 큐(310)에 정렬한다. 이 때 정렬 방법으로는 적용되는 시스템에 적합한 정렬 알고리즘을 사용하며, 예를 들어 Timing sort algorithm을 사용할 수 있다. 그리고, 송신 패킷 매니저(130)는 시스템 타임에 동기하여, 송신 패킷 큐(310)에 정렬된 패킷들을 각 패킷의 데드라인(Dn)과 우선 순위(Pn)에 따라서 네트워크 인터페이스(140)를 통하여 송신한다. 보다 구체적으로 설명하면, 데드라인(Dn)이 임박한 패킷, 즉 시스템 타임과 가장 가까운 데드라인(Dn)을 가지는 패킷을 전송한다. 한편, 데드라인(Dn)이 동일한 패킷이 둘 이상 존재할 경우 우선 순위가 높은 패킷을 전송한다. 데드라인(Dn)과 우선 순위가 모두 일치하는 패킷이 둘 이상 존재하는 경우에는 라운드 로빈(Round-Robin) 방식으로 처리한다.
도 4는 본 발명의 일 실시예에 따른 수신 패킷 매니저(150)의 상세 동작을 설명하기 위한 도면이다.
프로토콜 스택(120)으로부터 나온 수신 패킷은 수신 요청을 한 소켓의 특성, 즉 소켓 ID(Snㅄ), 데드라인(Dnㅄ), 우선 순위(Pnㅄ)를 그대로 가진다. 소켓 ID(Snㅄ)는 소켓 생성시에 소켓에 부여되는 식별자이고, 데드라인(Dnㅄ)은 소켓 레지스터(220)에서 결정된 데드라인 값이며, 우선 순위(Pnㅄ)는 소켓 생성부에서 소켓에 지정된 우선 순위이다.
수신 패킷 매니저(150)는 각 패킷의 데드라인(Dnㅄ)과 우선 순위(Pnㅄ)에 따라서 각 패킷을 수신 패킷 큐(410)에 정렬한다. 이 때 정렬 방법으로는 적용되는 시스템에 적합한 정렬 알고리즘을 사용하며, 예를 들어 Timing sort algorithm을 사용할 수 있다. 그리고, 수신 패킷 매니저(150)는 시스템 타임에 동기하여, 수신 패킷 큐(410)에 정렬된 패킷들을 각 패킷의 데드라인(Dnㅄ)과 우선 순위(Pnㅄ)에 따라서 소켓 스케쥴러(110)의 특정 태스크, 즉 해당 패킷의 수신을 요청한 소켓에 속하는 태스크에 전달한다. 보다 구체적으로 설명하면, 데드라인(Dnㅄ)이 임박한 패킷, 즉 시스템 타임과 가장 가까운 데드라인(Dnㅄ)을 가지는 패킷을 전달한다. 한편, 데드라인(Dnㅄ)이 동일한 패킷이 둘 이상 존재할 경우 우선 순위가 높은 패킷을 전달한다. 데드라인(Dnㅄ)과 우선 순위가 모두 일치하는 패킷이 둘 이상 존재하는 경우에는 라운드 로빈(Round-Robin) 방식으로 처리한다.
도 5는 본 발명의 일 실시예에 따라 소켓 레지스터(220)가 소켓의 데드라인을 결정하고 소켓 스케쥴러 테이블(230)에 소켓을 등록하는 과정을 나타낸 흐름도이다. 도 5는 송신을 요청한 소켓의 데드라인을 결정하는 경우이다.
편의상 송신 주기를 Tp, 송신 데드라인을 Tdl, 시스템 타임을 Ts, 데드라인을 Dn이라 하기로 한다.
510단계에서 소켓이 생성되면, 520단계에서 소켓 레지스터(220)는 소켓 옵션을 체크한다. 530단계에서 송신 주기가 지정되어 있는 것으로 판단되면 540단계로 진행하여 송신 데드라인이 지정되어 있는지 판단한다. 이 때 송신 데드라인이 지정 되어 있는 것으로 판단되면, 즉 송신 주기 옵션과 송신 데드라인 옵션이 모두 지정되어 있는 경우 560단계로 진행하고, Dn = min{Ts + Tp, Ts + Tdl}로 결정한다. 540단계에서 송신 데드라인이 지정되어 있지 않은 것으로 판단되면, 즉 송신 주기만 지정되어 있는 경우 570단계로 진행하고, Dn을 Dn = Ts + Tp 로 결정한다.
530단계에서 송신 주기가 지정되어 있지 않은 것으로 판단되면 550단계로 진행하여 송신 데드라인이 지정되어 있는지 판단한다. 이 때 송신 데드라인이 지정되어 있는 것으로 판단되면, 즉 송신 데드라인만 지정되어 있는 경우 580단계로 진행하고, Dn = Ts + Tdl 로 결정한다. 550단계에서 송신 데드라인이 지정되어 있지 않은 경우 595단계로 진행하여 소켓 생성부(210)에 소켓 재생성을 요청한다.
수신을 요청한 소켓의 데드라인을 결정하는 경우는 소켓의 데드라인을 송신 주기와 송신 데드라인 대신에 수신 주기와 수신 데드라인을 이용하여 구한다는 점 외에는 위에서 설명한 송신을 요청한 소켓의 데드라인을 결정하는 경우와 마찬가지이다.
도 6은 본 발명의 일 실시예에 따라 태스크 셀렉터(240)가 태스크를 선택함으로써 태스크를 스케쥴링하는 과정을 나타내는 흐름도이다.
610단계에서 태스크 셀렉터(240)는 소켓 스케쥴러 테이블(710) 내의 태스크 중 가장 임박한 데드라인, 즉 시스템 타임과 가장 가까운 데드라인을 가지는 태스크를 검색한다.
620단계에서 태스크 셀렉터(240)는 가장 임박한 데드라인을 가지는 태스크가 복수 개인지 판단한다. 이 때 복수 개가 아닌 것으로 판단되면 630단계로 진행한 다. 630단계에서 태스크 셀렉터(240)는 검색된 가장 임박한 데드라인을 가지는 태스크를 선택하여 실행시킨다.
620단계에서 가장 임박한 데드라인을 가지는 태스크가 복수 개인 것으로 판단되면, 즉 동일한 데드라인을 가지는 태스크가 둘 이상 존재하면 640단계로 진행한다.
640단계에서 태스크 셀렉터(240)는 검색된 복수 개의 태스크가 동일한 우선 순위를 가지고 있는지 판단한다. 이 때 동일한 우선 순위를 가지고 있지 않은 것으로 판단되면, 650단계로 진행한다. 650단계에서 태스크 셀렉터(240)는 우선 순위가 가장 높은 태스크를 선택하여 실행시킨다.
640단계에서, 검색된 태스크가 동일한 우선 순위를 가지고 있는 것으로 판단되면 660단계로 진행한다. 660단계에서 태스크 셀렉터(240)는 검색된 태스크들을 라운드 로빈 방식으로 처리한다.
670단계에서 소켓 레지스터(770)가 각 소켓의 데드라인을 업데이트하고, 다시 610단계로 진행하여 각 단계들이 반복된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 소켓에 지정된 송수신 옵션에 기초하여 소켓에 속하는 태스크를 스케쥴링하고, 태스크에 의해 생성된 패킷을 송수신 옵션에 기초하여 송수신함으로써 네트워크 통신의 실시간성을 보장할 수 있으며, 시스템의 자원을 효율적으로 사용하면서 요구되는 송수신 특성에 따라 데이터를 송수신할 수 있다.

Claims (23)

  1. 실시간 시스템의 송신 방법에 있어서,
    (a) 소켓에 지정된 소정 송신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계; 및
    (b) 상기 스케쥴링된 태스크에 의해 생성된 패킷을 상기 소정 송신 옵션에 기초하여 송신하는 단계를 포함하고,
    상기 소정 송신 옵션은 송신 주기, 송신 데드라인, 우선 순위 중 적어도 하나를 포함하며,
    상기 (a) 단계는
    (a1) 상기 송신 주기와 상기 송신 데드라인 중 적어도 하나와 시스템 타임에 의해 데드라인을 결정하는 단계; 및
    (a2) 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 태스크를 스케쥴링하는 단계를 포함하는 것을 특징으로 하는 송신 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 (a1) 단계는 상기 송신 주기와 상기 시스템 타임의 합 및 상기 송신 데드라인과 상기 시스템 타임의 합 중 어느 하나를 상기 데드라인으로 결정하는 것을 특징으로 하는 송신 방법.
  5. 제1항에 있어서 상기 (a2) 단계는,
    상기 결정된 데드라인에 가장 임박한 태스크를 검색하는 단계; 및
    상기 검색된 태스크의 개수가 1인 경우 상기 검색된 태스크를 실행하고, 상기 검색된 태스크의 개수가 2 이상인 경우 상기 검색된 태스크 중 우선 순위가 가장 높은 태스크를 실행하는 단계를 포함하는 것을 특징으로 하는 송신 방법.
  6. 제1항에 있어서 상기 (b) 단계는,
    상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 패킷을 송신하는 것을 특징으로 하는 송신 방법.
  7. 제1항에 있어서,
    상기 소정 송신 옵션은 setsockopt 함수를 사용하여 지정되는 것을 특징으로 하는 송신 방법.
  8. 제1항 및 제4항 내지 제7항 중 어느 한 항에 기재된 송신 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 실시간 시스템의 수신 방법에 있어서,
    (a) 수신된 패킷을 상기 패킷에 해당하는 소켓에 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크에 전달하는 단계; 및
    (b) 상기 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 단계를 포함하고,
    상기 소정 수신 옵션은 수신 주기, 수신 데드라인, 우선 순위 중 적어도 하나를 포함며,
    상기 (b) 단계는
    (b1) 상기 수신 주기와 상기 수신 데드라인 중 적어도 하나와 시스템 타임에 의해 데드라인을 결정하는 단계; 및
    (b2) 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 태스크를 스케쥴링하는 단계를 포함하는 것을 특징으로 하는 수신 방법.
  10. 삭제
  11. 삭제
  12. 제9항에 있어서,
    상기 (b1) 단계는 상기 수신 주기와 상기 시스템 타임의 합 및 상기 수신 데드라인과 상기 시스템 타임의 합 중 어느 하나를 상기 데드라인으로 결정하는 것을 특징으로 하는 수신 방법.
  13. 제9항에 있어서 상기 (b2) 단계는,
    상기 결정된 데드라인에 가장 임박한 태스크를 검색하는 단계; 및
    상기 검색된 태스크의 개수가 1인 경우 상기 검색된 태스크를 실행하고, 상기 검색된 태스크의 개수가 2 이상인 경우 상기 검색된 태스크 중 우선 순위가 가장 높은 태스크를 실행하는 단계를 포함하는 것을 특징으로 하는 수신 방법.
  14. 제9항에 있어서,
    상기 소정 수신 옵션은 setsockopt 함수를 사용하여 지정되는 것을 특징으로 하는 수신 방법.
  15. 제9항 및 제12항 내지 제14항 중 어느 한 항에 기재된 수신 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  16. 실시간 시스템의 송신 장치에 있어서,
    소켓에 지정된 소정 송신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 소켓 스케쥴러; 및
    상기 스케쥴링된 태스크에 의해 생성된 패킷을 상기 소정 송신 옵션에 기초하여 송신하는 패킷 매니저를 포함하고,
    상기 소정 송신 옵션은 송신 주기, 송신 데드라인, 우선 순위 중 적어도 하나를 포함하며,
    상기 소켓 스케쥴러는 상기 송신 주기와 상기 송신 데드라인 중 적어도 하나와 시스템 타임에 의해 데드라인을 결정하고, 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 태스크를 스케쥴링하는 것을 특징으로 하는 송신 장치.
  17. 삭제
  18. 삭제
  19. 제16항에 있어서,
    상기 패킷 매니저는 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 패킷을 송신하는 것을 특징으로 하는 송신 장치.
  20. 실시간 시스템의 수신 장치에 있어서,
    수신된 패킷을 상기 패킷에 해당하는 소켓에 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크에 전달하는 패킷 매니저; 및
    상기 지정된 소정 수신 옵션에 기초하여 상기 소켓에 속하는 태스크를 스케쥴링하는 소켓 스케쥴러를 포함하고,
    상기 소정 수신 옵션은 수신 주기, 수신 데드라인, 우선 순위 중 적어도 하나를 포함하며,
    상기 소켓 스케쥴러는 상기 수신 주기와 상기 수신 데드라인 중 적어도 하나와 시스템 타임에 의해 데드라인을 결정하고, 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 태스크를 스케쥴링하는 것을 특징으로 하는 수신 장치.
  21. 삭제
  22. 삭제
  23. 제20항에 있어서,
    상기 패킷 매니저는 상기 결정된 데드라인 또는 상기 우선 순위에 따라 상기 패킷을 상기 태스크에 전달하는 것을 특징으로 하는 수신 장치.
KR1020070001644A 2007-01-05 2007-01-05 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치 KR101345373B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070001644A KR101345373B1 (ko) 2007-01-05 2007-01-05 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치
US11/979,737 US8194658B2 (en) 2007-01-05 2007-11-07 Transmitting and receiving method and apparatus in real-time system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070001644A KR101345373B1 (ko) 2007-01-05 2007-01-05 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080064578A KR20080064578A (ko) 2008-07-09
KR101345373B1 true KR101345373B1 (ko) 2013-12-24

Family

ID=39594199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070001644A KR101345373B1 (ko) 2007-01-05 2007-01-05 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치

Country Status (2)

Country Link
US (1) US8194658B2 (ko)
KR (1) KR101345373B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940183B1 (ko) * 2007-12-11 2010-02-04 한국전자통신연구원 저전력 센서망에서 다중 라우팅 기법에 적용 가능한 공용 패킷 블록 구성 장치 및 그 제공 방법
US8351449B1 (en) * 2008-08-07 2013-01-08 Bee Networx Inc. Scheduling data communication for mobile communication devices with multiple wireless network interfaces associated with differing costs
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
JP7000088B2 (ja) * 2017-09-15 2022-01-19 株式会社東芝 通知制御装置、通知制御方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160971A1 (en) 2002-11-27 2004-08-19 Edward Krause Apparatus and method for dynamic channel mapping and optimized scheduling of data packets

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6448978B1 (en) * 1996-09-26 2002-09-10 Intel Corporation Mechanism for increasing awareness and sense of proximity among multiple users in a network system
US5892856A (en) * 1996-12-23 1999-04-06 Intel Corporation Method of presence detection using video input
US6801943B1 (en) * 1999-04-30 2004-10-05 Honeywell International Inc. Network scheduler for real time applications
ES2557892T3 (es) * 1999-07-15 2016-01-29 Telefonaktiebolaget Lm Ericsson (Publ) Control de admisión y planificación de tráfico de datos por paquetes
KR20020019697A (ko) 2000-09-06 2002-03-13 윤종용 상용 플랫폼에서의 무선호처리를 위한 리얼타임운영방법과 시스템
US20070253430A1 (en) * 2002-04-23 2007-11-01 Minami John S Gigabit Ethernet Adapter
US7277392B2 (en) * 2002-10-01 2007-10-02 Motorola, Inc. Method and apparatus for managing the usage of data link resources
JP4390710B2 (ja) * 2002-11-27 2009-12-24 アールジービー・ネットワークス・インコーポレイテッド 複数のデジタルビデオプログラムの時間多重化処理のための方法及び装置
JP4029804B2 (ja) * 2003-09-02 2008-01-09 ブラザー工業株式会社 ネットワーク装置、および送信出力レベル変更方法
KR20060068517A (ko) 2004-12-16 2006-06-21 한국전자통신연구원 커널 영역에 rtp 모듈이 구현된 노드에서의 rtp지원 방법
KR100631516B1 (ko) 2005-01-05 2006-10-11 엘지전자 주식회사 스트리밍 시스템 및 적응적 대역 할당 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160971A1 (en) 2002-11-27 2004-08-19 Edward Krause Apparatus and method for dynamic channel mapping and optimized scheduling of data packets

Also Published As

Publication number Publication date
KR20080064578A (ko) 2008-07-09
US20080165770A1 (en) 2008-07-10
US8194658B2 (en) 2012-06-05

Similar Documents

Publication Publication Date Title
US6647419B1 (en) System and method for allocating server output bandwidth
US7385986B2 (en) Packet transfer method and apparatus
US6205150B1 (en) Method of scheduling higher and lower priority data packets
Chung et al. NS by Example
US11080090B2 (en) Method and system for scalable job processing
US20080310301A1 (en) SYSTEM AND METHOD FOR MANAGING PRE-EMPTION OF QUALITY OF SERVICE (QoS) ALLOCATIONS IN A NETWORK
US20100017523A1 (en) Communication control apparatus and communication control method
US7991905B1 (en) Adaptively selecting timeouts for streaming media
CN103986764A (zh) 用于多客户端协同文件上传的设备和方法
KR101345373B1 (ko) 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치
EP2523392A1 (en) System and method for unified polling of networked devices and services
JPWO2009093473A1 (ja) 中継装置、端末、優先通信制御方法、プログラム及び記録媒体
Zhang et al. Providing data transfer with QoS as agreement-based service
WO2011155945A1 (en) Http-based client-server communication system and method
Gopalakrishnan et al. Hard real-time communication in bus-based networks
Tseng et al. Coflow deadline scheduling via network-aware optimization
JP4319539B2 (ja) マルチキャストサポートのための方法及び装置
JP2007074218A (ja) パケット送信制御プログラム、パケット送信制御装置、及びパケット送信制御方法
CN113626161B (zh) 一种分布式多用户的数据调度方法及系统
US20190319880A1 (en) Software defined network and method for operating the same
WO2012034607A1 (en) A multi-hop and multi-path store and forward system, method and product for bulk transfers
Sedaghat et al. R2T-DSDN: reliable real-time distributed controller-based SDN
Zhang et al. Data rate guarantee for coflow scheduling in network function virtualization
US8027346B1 (en) Method and system for scheduler dominated merge of state changes
WO2012155642A1 (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: 20161121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191129

Year of fee payment: 7