KR100290191B1 - 상대에러방식을이용하는흐름레이트에기초한스케줄링방법및장치 - Google Patents

상대에러방식을이용하는흐름레이트에기초한스케줄링방법및장치 Download PDF

Info

Publication number
KR100290191B1
KR100290191B1 KR1019960072712A KR19960072712A KR100290191B1 KR 100290191 B1 KR100290191 B1 KR 100290191B1 KR 1019960072712 A KR1019960072712 A KR 1019960072712A KR 19960072712 A KR19960072712 A KR 19960072712A KR 100290191 B1 KR100290191 B1 KR 100290191B1
Authority
KR
South Korea
Prior art keywords
flow
cell
flow rate
theorem
data
Prior art date
Application number
KR1019960072712A
Other languages
English (en)
Other versions
KR970056194A (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
Priority claimed from US08/579,393 external-priority patent/US6130878A/en
Priority claimed from US08/578,932 external-priority patent/US5781531A/en
Application filed by 피셔, 아더 더블유., 디지탈 이큅먼트 코포레이션 filed Critical 피셔, 아더 더블유.
Publication of KR970056194A publication Critical patent/KR970056194A/ko
Application granted granted Critical
Publication of KR100290191B1 publication Critical patent/KR100290191B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

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

Abstract

본 발명에 따른 흐름 레이트에 기초하여 스케줄링하는 신규한 구조는 ATM과 같은 컴퓨터 네트워트에서 흐름을 스케줄링하는데 적용할 수 있다. 또한, 컴퓨터 작업을 스케줄링할시에 중요도에 따른 공평한 서비스를 제공하는데 사용될 수도 있다. 네트워크 어댑터에서의 흐름 레이트 스케줄링에 보통 사용되는 많은 방법과는 달리, 본 발명의 방법은 모든 흐름에게 확실한 흐름 레이트를 보장해준다. 본 발명의 뛰어난 특징은 시간 변역이 아니라 주파수 변역에서 동작할 수 있다는 것이다.

Description

상대 에러 방식을 이용하는 흐름 레이트에 기초한 스케줄링 방법 및 장치{METHOD AND APPARATUS FOR RATE-BASED SCHEDULING USING A RELATIVE ERROR APPROACH}
본 발명은 흐름 레이트에 기초하여 스케줄링하고 공통 리소스를 중요도에 따라 공평하게 공유하는 방법 및 장치에 관한 것이다. 흐름 레이트에 기초하여 스케줄링하고 중요도에 따라 공평하게 공유하는 것에 있어서의 문제점이 서로 다른 많은 상황(context)에서 발생하고 있으며, 이러한 문제점은 예컨대 컴퓨터 네트워크 분야 또는 프로세서 디자인와 관련된다. 일반적으로 본 발명은 광범위한 상황 환경 및 어플리케이션에서 일정 흐름 레이트에 따라 작업을 스케줄링하는데 있어서의 문제점에 관한 것이다.
공통 리소스를 공유하는 서로 다른 작업을 스케줄링하는데 있어서의 문제점이 서로 다른 많은 상황에서 발생하고 있다. 개괄적으로 다음과 같이 정리할 수 있다:
임의 종류의 단일 리소스를 정수 i=1,2,...n으로 표시되는 수개의 엔티티가 공유한다. 모든 엔티티는 각기 관련된 흐름 레이트 R(i)를 갖는다. 이 흐름 레이트는 모든 R(i)의 합이 리소스의 용량을 초과하지 않도록 할당된다. 예컨대, 컴퓨터 네트워크에서 엔티티는 개별 흐름이고, 공유되는 리소스는 한정된 통신 링크 또는 서버 용량일 수 있다. 엔티티는 어떤 서비스 단위로 한 번에 하나씩 처리될 수 있다. 예컨대, 네트워크 흐름에 대한 서비스 단위는 하나의 패킷(또는 ATM 기술에서는 셀)이다. 스케줄러라고 하는 장치는 한 엔티티가 제공받는 평균 서비스 레이트가 엔티티에 할당된 흐름 레이트 R(i)가 되도록 서로 다른 엔티티에 대해 서비스 순서를 결정할 필요가 있다. 장기간의 평균 흐름 레이트를 보장하는 것은 차치하고, 각 개별 서비스 단위 즉, 각 흐름의 패킷의 이상적인 서비스 시간과 실제 서비스 시간간의 차를 최소화하는 것이 중요한 목표이다.
이러한 문제점이 발생하는 환경의 일예로는 프로세서 사이클에 대해 서로 경쟁하는 작업을 스케줄해야 하는 프로세서가 있다. 모든 작업이 동일하게 중요하다면, 모든 작업이 동일하게 프로세서 용량을 공유하게 하는 것이 바람직하다. 그러나, 작업이 서로 다른 중요도를 갖는다면, 가능한 방법은 모든 작업에 대해 그들 중요도에 대응하는 가중치를 할당하여 작업에 할당된 가중치에 비례하여 각 작업에게 프로세서 용량을 분배하는 것이다. 이러한 경우에, 소정의 서비스 레이트가 흐름의 가중치에 따라 결정된다. 특정 방법 및 본 문제점의 여건에 특수한 어떤 다른 규칙에 따라 서비스 레이트를 흐름에 할당하는 다른 방법도 있을 수 있다. 예컨대, 높은 우선 순위 작업에게 어떤 고정된 배분을 제공하고 낮은 우선 순위 작업들은 나머지 대역폭을 공유하는 규칙이 있을 수 있다.
상기한 바와 같이, 유사한 문제점이 발생할 수 있는 또 다른 예가 컴퓨터 네트워크에 존재한다. 예컨대, ATM 네트워크에는 보통 네트워크를 통과하는 모든 흐름과 연관된 일정 흐름 레이트가 있다. 이 흐름 레이트는 예컨대, 일정 비트 레이트(Constant Bit Rate:CBR) 트래픽에 있어서는 셋업시 네트워크와의 협상의 결과일 수 있으며, 또는 가용 비트 레이트(Available Bit Rate:ABR) 트래픽의 경우에 있어서는 트래픽 관리 피드백 제어의 결과일 수 있다. 이러한 흐름 레이트의 설정은 장기간의 CBR 흐름에 관해서는 비교적 정적일 수 있으며, 또는 ABR 흐름의 경우에 있어서는 혼잡에 반응하여 신속히 변할 수도 있다.
예컨대 많은 패킷-스위칭 네트워크에서의 경우와 같이 흐름 레이트가 명백히 할당되지 않더라도, 서로 다른 흐름은 서로 다른 중요도를 가질 수 있다. 예컨대, 어떤 흐름은 1000명의 사용자로부터의 데이타가 조합된 흐름일 수 있는 반면에, 다른 흐름은 하나의 사용자를 대표할 수 있다. 이러한 경우에 상대적인 중요도가 주어지는 서로 다른 흐름에 가증치를 할당하는 것이 합당할 것이다. 흐름의 전체 수요가 한정된 리소스, 통상적으로 통신 링크의 용량을 초과한다면, 가능한 방법은 프로세서를 공유하는 상기 일예에서 상술한 바와 같이 혼잡한 스위치를 그들의 가중치에 비례하여 모든 흐름에게 서비스 하는 것이다. 이는 각 흐름에게 흐름 레이트를 효과적으로 할당한다.
근래에, 컴퓨터 네트워크에서 스위칭점에서의 흐름 레이트에 기초한 스케줄링 기법이 주목을 받아왔다. Hui Zhang의 간행물인 Service Disciplines for Guaranteed Performance in Packet-Switching Networks(Proceedings IEEE:1995년 10월)에서 상기 구조에 대해 포괄적으로 찾아볼 수 있다. 이러한 구조는 일반적으로 네트워크 스위치에 적용 가능하며, 흐름에 할당되는 흐름 레이트를 보장해줄 수 있다.
컴퓨터 네트워크에서 서로 다른 흐름을 스케줄링하는데 있어서의 문제점은 네트워크의 스위치에서 뿐만 아니라 호스트 어댑터에도 존재한다. 예컨대, ATM 네트워크의 어댑터는 연관된 흐름 레이트를 각각 갖는 서로 다른 흐름을 스케줄해야만 한다. 통상적으로, 높은 우선 순위에 있는 CBR 흐름이 미리 계산된 스케줄에따라 서비스된다. CBR 스케줄을 미리 계산함에 있어서의 단점중 하나는 상기 스케줄이 CBR이 아닌 흐름에 대해서는 고려하지 않고 계산되므로 CBR이 아닌 흐름의 서비스가 불필요하게 CBR 버스트에 의해 불리한 영향을 받는다는 것이다. 스케줄을 미리 계산하는 것은 또한 계산상 비싸며 보통 소프트웨어로 느리게 행해진다는 단점을 갖는다. 이러한 스케줄 선계산은 일단 새로운 접속이 이루어지면 실행하기만 하면 되는 CBR 흐름에 대해서는 적합하지만, 자주 흐름 레이트가 변동되는 많은 흐름이 스케줄되어야 하는 경우에는 실행불가능하다.
흐름 레이트에 기초한 스케줄링에 대해 공지된 또 다른 구조로는 예컨대 ATM 포럼 트래픽 관리 명세 버전 4.0에 개시된 소위 ″리키 버킷(Leaky Bucket)″이 있다. 이 구조는 많은양의 단위 흐름 상태(per flow state)를 필요로 하므로 많은 수의 흐름에 대해서는 금지된다.
소위 ″타임-휠(time wheel)″ 즉, ″캘린더 큐(calendar queue)″라는 방법도 종종 사용된다, 캘린더 큐의 일예는 Brown., R, Calendar Queue:A fast 0(1) priority queue implementation for the simulation even set problem(Communications of the ACM, vol. 31, pp.1220-1227)에서 찾아볼 수 있다. ″리키 버킷″ 구조와는 달리, 캘린더 큐는 실시하기에 간단하다. 그러나, 불행히도, 캘린더 큐 방법은 일반적으로 흐름이 얻는 장기간 평균 서비스 레이트가 자신의 할당된 흐름 레이트와 동일하도록 보장할 수 없다.
따라서, 네트워크 어댑터에서 크게 변동하는 흐름 레이트를 갖는 흐름을 흐름 레이트에 기초하여 스케줄링하는데 사용될 수 있으며 흐름의 할당된 흐름 레이트를 보장할 수 있는 구조를 디자인하는 것이 바람직하다.
이러한 구조가 ATM 네트워크의 VBR(가변 비트 레이트) 트래픽(패킷 스위칭 네트워크에서의 예상 트래픽)뿐만 아니라 CBR형 트래픽(패킷 스위칭 네트워크에서 보장된 서비스) 및 ABR형 트래픽(적응 트래픽)용으로도 동시에 사용될 수 있는 것이 바람직하다. 또한, 이러한 구조가 상기한 바와 같이 더욱 일반적인 흐름 레이트에 기초한 스케줄링의 상황에서 사용가능한 것이 바람직하다.
스위치 스케줄링에 대한 Hui Zhang의 간행물에 개시되어 있는 방법들은 상기 어댑터에 쉽게 적용할 수 없다, 그 이유중 하나로는 스위치를 위한 스케줄링 구조들의 대부분은 패킷이 스위치에 도달하는 시간에 의거하여 서로 다른 흐름으로부터의 패킷의 스케줄링 순서를 결정하기 때문이다. 통상적으로 어댑터는 어플리케이션이 데이타를 전송할 준비가 되었을 때 어플리게이션으로부터 데이타를 요구하므로 도달시간이라는 개념은 어댑터에 대해서 항상 적절한 것은 아니다.
서로 다른 많은 환경에서 동작할 수 있는 흐름 레이트 스케줄링에 대한 일반적인 방법이 필요하다. 특히, 새로운 방법은 네트워크 스위치에 대해서 뿐만 아니라 네트워크 어댑터에 대해서도 잘 동작하여야 한다.
상대 에러(RE) 구조라고 하는 본 명세서에 개시되는 새로운 구조는 특히 네트워크 스위치뿐만 아니라 네트워크 어댑터에도 사용되어 엄격히 흐름 레이트를 보장할 수 있다. 그러나, 상기한 바와 같이 상기 구조의 사용은 컴퓨터 네트워크 분야에만 한정되지 않는다. 시간 변역에서 동작하는 상기한 대부분의 구조와는 달리 RE 구조는 주파수 변역에서 동작한다. 이로 인한 이점중 하나는 (흐름 레이트의 역을 구해야 하는) 흐름 레이트-시간 변환의 필요성을 제거한다는 것이다.
본 발명은 컴퓨터 시스템에서 리소스를 공유하며 복수의 데이타 셀을 각각 포함하는 복수의 데이타 흐름을 스케줄링하는 방법을 제공하고자 하는 것으로, 공유되는 리소스내에 복수의 링크 셀 슬롯을 갖는 스케줄러를 제공하는 단계와, 다수의 데이타 흐름을 수신하도록 스케줄러를 초기화하는 단계와, 요구되는 흐름 레이트를 각각 포함하는 복수의 데이타 흐름을 스케줄러내에 수신하는 단계와, 복수의 데이타 흐름 각각의 요구되는 각 흐름 레이트의 합이 공유되는 리소스의 가용 대역폭보다 작고 셀을 기본 단위로 하여 실제 스케줄링 시간과 이상적인 스케줄링 시간간의 상대 에러가 최소가 되도록 다수의 데이타 흐름을 각각 스케줄러를 이용하여 스케줄링하는 단계와, 상기 수신 단계와 스케줄링 단계를 반복하는 단계를 포함하는 방법을 제공한다. 본 발명은 청구 범위 제1항에 기술한 바와 같이 광의로 다수의 데이타 흐름을 스케줄링하는 방법에 속한다.
도 1은 본 발명이 사용되는 컴퓨터 네트워크의 일예를 나타내는 블록도.
도 2는 도 1의 호스트 노드(10)의 스케줄러(50)에 위치하고 있는 본 발명을 설명하는 플로우 챠트.
도 3은 도 1의 호스트 노드(10)의 스케줄러(50)에 대한 3가지 외부 이벤트의 영향을 나타내는 플로우 챠트.
〈도면의 주요 부분에 대한 부호의 설명〉
10, 12, 14, 16 : 호스트 노드
26, 28, 30, 32, 34, 36, 38, 40 : 사용자
18, 20, 22, 24, 25 : 링크
42, 44 : 스위치
50, 52, 54, 56, 58, 60, 62, 64, 66, 68 : 스케줄러
하기의 바람직한 실시예에 대한 설명과 첨부된 도면에 의해 본 발명에 대해 좀더 상세히 이해할 수 있을 것이다.
본 발명의 바람직한 실시예는 컴퓨터 네트워크의 상황에서 설명된다. 도 1을 참조하면, 4개의 호스트 노드(10,12,14,16)를 포함하는 네트워크의 일예가 도시되어 있다. 각 호스트 노드는 다수의 사용자들이 공유하고 있다. 구체적으로, 호스트 노드(10)는 사용자(26,28)를 가지고, 호스트 노드(12)는 사용자(30,32)를 가지며, 호스트 노드(14)는 사용자(34,36)를 가지고, 호스트 노드(16)는 사용자(38,40)를 가진다.
도 1의 네트워크는 2개의 스위치(42,44)를 포함하고 있다. 사용자는 네트워크를 통하여 서로 통신한다. 예컨대, 호스트 노드(10)의 사용자(26)는 호스트 노드(14)의 사용자(36)와 통신하고, 호스트 노드(10)의 사용자(28)는 호스트 노드(16)의 사용자(38)와 통신하며, 호스트 노드(12)의 사용자(30,32)는 호스트 노드(16)의 사용자(38,40)와 각각 통신한다.
호스트 노드는 스위치에 접속되어 있고, 스위치는 통신 링크에 의해 서로 접속되어 있다. 예컨대, 링크(18)는 호스트 노드(10)를 스위치(42)에 접속시키고, 스위치(42,44)는 링크(20)에 의해 접속되어 있다. 링크(22)는 호스트 노드(12)를 스위치(42)에 접속시키고, 링크(24)는 스위치(42)를 호스트 노드(14)에 접속시키며, 링크(25)는 스위치(44)를 호스트 노드(16)에 접속시킨다. 편의를 위해, 어떤 소스에서 어떤 목적지로의 데이타 흐름을 이 흐름의 소스와 연관시킨다. 예컨대, 사용자(26)로부터 사용자(36)으로의 흐름을 ″사용자(26)의 흐름″이라고 한다.
각 호스트 노드(10,12,14,16)는 스케줄러를 포함한다. 구체적으로, 호스트 노드(10)는 스케줄러(50)를 가지고, 호스트 노드(12)는 스케줄러(52)를 가지며, 호스트 노드(14)는 스케줄러(54)를 가지고, 호스트 노드(16)는 스케줄러(56)를 가진다. 통상적으로, 스케줄러는 호스트 어댑터 카드(도시생략)내에 있다.
스위치(42,44) 각각은 접속되어 있는 각 링크와 연관된 스케줄러를 갖는다. 예컨대, 스위치(42)는 링크(18)와 연관된 스케줄러(58)를 포함하고 있다. 스케줄러(60)는 링크(22)와 연관되고, 스케줄러(62)는 링크(24)와 연관되며, 스케줄러(64)는 링크(20)와 연관된다. 스위치(44)는 링크(20)와 연관된 스케줄러(66)를 포함하고 있으며, 스케줄러(68)는 링크(25)와 연관되어 있다.
도 1에 도시한 각 스케줄러는 이 네트워크내에서 공통 리소스를 공유하는 서로 다른 흐름을 스케줄링해야 한다.
예컨대, 한정(또는 ″병목″) 리소스가 링크의 용량이라고 가정하고, 네트워크내에서 링크(20)를 제외한 모든 링크의 용량이 155Mbs이고, 링크(20)의 용량은 50Mbs라고 가정한다. 따라서, 사용자(28,30,32)는 공통 병목성 링크 즉, 링크(20)를 공유한다. 공평하게 하기 위해, 이들 세 사용자는 각각 링크(20)의 용량의 1/3 즉, 대략 R(2)=R(3)=R(4)=16.67Mbs 속도로 데이타를 전송할 수 있다. 따라서, 사용자(26)는 링크(18)의 전체 잔여 밴드폭 즉, R(1)=138.33Mbs로 데이타를 전송할 수 있다. 그러나, 사용자(26,28)의 흐름 레이트의 합이 링크(18)의 용량인 155Mbs를 초과하지 않고 사용자(28,30,32)의 흐름 레이트의 합이 링크(20)의 용량인 50Mbs를 초과하지 않는한, 어떠한 다른 전송 레이트 할당도 가능하다. 스케줄러가 각 사용자에게 제공하는 평균 서비스 레이트는 이들 사용자에게 할당된 전송 레이트와 동일해야 한다. 이와 같이, 스케줄러(50)는 흐름 레이트 R(1) 및 R(2)로 사용자(26,28)가 호스트 노드(10)에 제공하는 흐름을 스케줄링해야 한다.
본 발명은 도 1에 도시한 스케줄러중 어느 하나에 내장될 수 있으며, 흐름 레이트에 기초하여 스케줄링하고 공통 리소스를 중요도에 따라 공평하게 공유하는 방법 및 장치에 관한 것이다.
예컨대, 본 발명의 일실시예는 도 1의 네트워크의 흐름의 상황에서 설명된다. 그러나, 본 발명은 컴퓨터 작업을 스케줄링하는데 있어서 중요도에 따른 공평한 흐름 레이트 서비스를 요하는 어떠한 컴퓨터 어플리케이션에도 적용될 수 있다. 본 실시예는 비동기 전송모드(ATM) 네트워크를 예로 사용한다. ATM 네트워크는 일반적으로 ATM 셀이라고 하는 고정된 길이의 데이타 패킷을 사용한다. 그러나, 상기한 바와 같이 본 발명은 가변길이 데이타 패킷으로 일반화될 수 있다.
특정 예로 ATM 네트워크를 사용하는 본 발명은 어댑터(도시생략)내에 있으며, 이 어댑터는 각 호스트 노드(10,12,14,16)에 내장된 스케줄러(50,52,54,56) 및/또는 스위치(42,44)의 스케줄러(58,60,66,68)를 갖는다.
후술하는 바와 같이, 본 발명의 주개념은 ATM 네트워크의 스위치 또는 어댑터를 통과하는 셀을 기본 단위로 하여 실제 스케줄링 시간과 ″이상적인″ 스케줄링 시간간의 차를 최소화하기 위한 상대 에러(RE) 방식을 사용한다는 것이다.
상기한 상황에서 스위치 또는 어댑터를 통과하며 이들에 의해 사용되는 흐름을 스케줄하는데 있어서의 문제점은 하기와 같이 정리될 수 있다.
가설:
정수 1,2,...,n으로 표시되는 n개의 흐름은 용량 C인 슬롯 링크(어떤 스위치 또는 어댑터)를 공유하며, 각 흐름 i는 흐름 레이트 R(i)가 할당되어
이다.
본 실시예에 있어서 예컨대 비동기 전송모드(ATM) 네트워크에서 모든 패킷의 크기는 동일하다고 가정한다. 고정 크기의 패킷을 표시하기 위해 ATM 단말기 셀을 사용한다. 링크 속도로 하나의 셀을 전송하는데 걸리는 시간을 ″셀 시간″ 또는 ″셀 슬롯″이라고 한다.
j번째 링크 셀-슬롯의 개시점에서 스케줄러는 (만약 있다면) 어떤 흐름의 셀이 전송을 위해 스케줄되어야 하는지를 결정할 필요가 있다. 이는 각 셀의 실제 전송 시간과 이상적인 전송 시간간의 차를 제한하면서 흐름 i의 장기간 흐름 레이트가 R(i)가 되도록 보장하는 것을 목표로 한다.
(네트워크의 흐름 스케줄링과 대조적으로) 프로세서 작업 스케줄링의 상황에있어서 흐름 레이트 R(i)는 통상적으로 작업의 중요도를 반영하고 C는 이들 작업을 위한 가용 프로세서 용량이며 상기 부등식은 등식이 됨을 유의하며, 서비스 단위는 보통 한 작업의 전용 프로세서 사이클수이다.
본 발명을 충분히 설명하기 위해 이후에는 RE 구조 또는 RE 스케줄러라고 하며, 다음의 변수가 사용된다:
D(i,j) 링크 셀 슬롯 j에서 흐름 i에 대한 에러항
R(i) 흐름 i에 대한 흐름 레이트(i=0는 ″가상 흐름″(다음에 상세히 설명함)에 해당하고 그 흐름 레이트는 가용 대역폭 C와 실제 모든 흐름 i=1,2,...,n의 흐름 레이트의 합간의 차이다.)
w(i) 전체 가용 대역폭 C에 비례하는 흐름 i의 흐름 레이트
주석: R(i)는 초기화와 흐름 레이트 변경에만 요구되며, 흐름 상태마다 기억될 필요는 없다. 변수 w(i) 및 D(i,j)는 흐름마다 기억된다.
제로로 표시되는 흐름은 소위 ″가상 흐름″이다. 이 흐름의 흐름 레이트는 단순히 모든 ″실제″ 흐름에 의해 사용되지 않는 링크 대역폭이다. 본 명세서에서는 흐름 0를 정규 흐름(regulaf flow)이라고 하며, 흐름 0의 셀을 전송하는 것을 유휴 셀을 전송하였다(″실제″ 흐름의 셀은 전송되지 않음)라고 한다.
프로시저 RE_Scheduler의 초기화는 다음과 같이 행해진다.
j=0;
R(0) = C -
for all i
{
w(i) = R(i)/C;
D(i,0) = 0;
}
RE 스케줄러는 다음의 의사코드에서 상기한 바와 같이 동작한다:
RE_Scheduler:
do forever
{
find flow f with D(f,j)=max_{i}D(i,j)
if ((f〉0) AND (cell of flow f available))
transmit next cell from flow f
else do not transmit (transmit an idle cell)
j=j+1;
D(f,j)=D(f,j)+w(f)-1;
for all i≠f
D(i,j)=D(i,j)+w(i);
}
하기 프로시저는 어떤 흐름의 흐름 레이트 변경시 적당한 변수를 갱신한다. 흐름 레이트 변경후 일련의 흐름 레이트는 여전히 실행가능하다고 즉, 모든 흐름 레이트의 합이 링크 대역폭 C를 초과하지 않는다고 가정한다.
Rate_Change:
if rate of flow i〉0 changed to Rnew(i)
wold(i) = w(i);
w(i) = Rnew(i)/C;
Dold(i,j) = D(i,j);
D(i,j) = w(i) - 1;
w(0) = wold(0) + wold(i) - w(i)
`D(0,j) = D(0,j) + Dold(i,j) - D(i,j);
새로운 흐름이 입력되거나 이전 흐름이 존재한다면 w(i)=0를 어떤 비활동 흐름에 할당함으로써 프로시저 Rate_Change가 사용될 수 있음을 유의한다. 또한, 흐름 레이트의 변화가 모든 ″실제″ 흐름의 흐름 레이트의 합이 링크 용량을 초과하지 않는다는 필요조건을 위반하지 않는다고 가정함을 유의한다. 이와 유사하게, 새로운 흐름이 일정 흐름 레이트로 입력될 때 모든 흐름 레이트의 합은 여전히 링크 용량을 초과하지 않는다. 수개의 흐름의 흐름 레이트가 동시에 변경된다면, 프로시저 Rate_Change는 모든 흐름에 대해 한 번에 하나씩 실행된다.
상기한 RE 스케줄러는 수개의 성질을 갖는다. 성질 1이라고 일컫는 제 1 성질은 다음과 같다:
B(i,m)은 독립되어 있는 흐름 i의 m번째 셀을 전송하는 ″이상적인″ 개시시간을 표시한다. 제로번째의 셀 전송이 시간 제로에서 시작된다고 가정하면, m번째 셀 전송은 정확하게 시간 mT(i)에서 시작하는데, T(i)-cell_len/R(i)이다. 여기서, cell_len은 비트단위의 한 셀의 길이이고, R(i)는 시간단위 즉, 초단위의 흐름 i의 할당된 흐름 레이트이다. A(i,m)은 스케줄러 RE하에서 흐름 i의 m번째 셀의 실제 전송 시간의 개시시점을 나타낸다. 그러면, 임의의 m에 대해
-T(i)+cell_time ≤ A(i,m)-B(i,m) ≤ (n/2+1)T(i)
여기서 n은 지원되는 흐름의 수이다.
T(i)=cell_len/R(i)는 흐름 레이트 R(i)에서 셀 전송간의 간격이고, cell_time =cell_len/C는 링크 속도에서 셀 전송 시간이다. 흐름이 스케줄되었을 때 데이타가 사용가능하지 않아서 흐름 i가 k 스케줄링 기회를 놓쳤다면, m번째 셀이 마지막으로 이용가능하게 될 때 상기 셀 전송의 개시시간은 다음을 만족하게 된다.
-T(i)+cell_time ≤ A(i,m+k)-B(i,m+k) ≤ (n/2+1)T(i)
이는 단순히 RE 스케줄러가 놓친 셀 기회를 마치 셀이 실제로 전송된 것처럼 처리하여 k 셀 기회를 놓친다면 m번째 셀을 m+k번째 셀과 구별할 수 없음을 의미한다.
상기한 성질 1은 분석 증명될 수 있는 가장 최악의 차 한도를 제공한다, 실제 시뮬레이션 실행시, 모든 흐름의 모든 셀에 대해 측정된 차는 추측에 의해 아래에 정리한 제약을 훨씬 더 엄격하게 만족시켰다.
추측은 RE 구조의 차 한도가
-T(i)+cell_time ≤ A(i,m)-B(i,m) ≤ T(i)+cell_time을 만족한다는 것이다. 여기서, 기호표시는 성질 1에서와 동일하다.
상기한 RE 스케줄러에 의해 나타나는 성질 2 즉, 제 2 성질은 RE 스케줄링하에서 흐름 f에 의해 얻어지는 장기간 흐름 레이트가 엄밀히 흐름 f의 할당된 흐름 레이트 R(f)인데, 즉, RE 스케줄러는 모든 흐름에게 흐름에 할당된 일련의 임의 흐름 레이트에 대해 확실한 흐름 레이트를 보장해준다는 것이다.
각 셀이 자신의 이상적인 전송 시간으로부터 고정된 한도내에서 전송되기 때문에 상기 제 2 성질은 바로 제 1 성질으로부터 직접 유도된다.
상기한 RE 구조의 유도는 부록 A에 있다. 상기한 성질 1의 증명은 부록 B에 있다.
이제 도 2를 참조하면, 도 1의 어떤 스케줄러내에서 실행하는 RE 구조의 동작을 나타내는 플로우차트가 나타나 있다. 도 2는 정적 흐름 레이트상의 RE 구조동작을 설명한다. 본 처리는 스케줄러가 초기화를 행하는 단계 100에서 개시된다. 초기화동안, 스케줄러에 의해 다음의 내용이 실행된다. 링크 셀 슬롯 제로는 0로 설정된다. 가상 흐름 레이트 R(0)는 가용 대역폭 C와 실제 흐름 i=1,2,...n의 모든 흐름 레이트의 합간의 차로 설정된다. 마지막으로, 모든 흐름 레이트 i=1,2,...,n에 대해 전체 대역폭 C에 비례하는 각 흐름 i에 대한 흐름 레이트를 흐름 i의 흐름 레이트와 전체 가용 대역폭 C의 몫으로 설정하며, 링크 셀 슬롯 0에서의 각 흐름 i에 대한 에러항을 0로 설정한다.
단계 104에서 RE 스케줄러는 모든 흐름 i의 세트에서 모든 에러항 D(i,j)에 대해 최대인 에러항 D(f,j)를 갖는 흐름 f를 찾는다.
단계 108에서, 스케줄러는 흐름 f가 가상 흐름(f=0)인가 또는 f가 ″실제″ 흐름(f〉0)인가를 체크한다. 가상 흐름이거나 가용 셀을 갖지 않는 실제 흐름이라면 단계 112에서 유휴 셀이 전송된다. 실제 흐름이라면, 단계 116에서 흐름 f로부터의 다음 셀이 전송된다.
단계 120에서 링크 셀 슬롯 인덱스 j는 1씩 증가하고, 링크 셀 슬롯 j에서의 흐름 f에 대한 에러항은 링크 셀 슬롯 j에서의 흐름 f에 대한 에러항 + 흐름 f의 상대적인 에러율 w(i) - 1 로 설정된다.
단계 124에서, 흐름 f의 흐름 레이트와 동일하지 않은 흐름 i의 모든 흐름 레이트에 대해 링크 셀 슬롯 j에서의 흐름 i에 대한 에러항은 링크 셀 슬롯 j에서의 흐름 i에 대한 에러항 + 전체 가용 대역폭 C에 비례하는 흐름 i의 흐름 레이트로 설정된다. 스케줄러는 단계104로 복귀하여 계속 처리를 행한다.
도 3을 참조하면, 단계 200, 202, 204인 하기의 3가지 외부 이벤트중 하나가 발생했을 때 취해지는 행동을 나타내는 블록도가 도시되어 있다.
(1) 단계 200에서, 할당된 흐름 레이트 Rnew(i)를 갖는 새로운 흐름 i가 입력된다. 이 경우에 변수 w(i)와 R(i,j)가 배정되어 제로로 초기화되며, 프로시저 Rate_Change가 단계 206에서 스케줄러에 의해 실행된다.
(2) 단계 202에서, 스케줄러는 흐름 i가 존재했음을 검출한다(또는 통지된다). 이 경우에, Rnew(i)는 제로로 설정되고, 프로시저 Rate_Change는 단계 206에서 실행되며, 그 다음에 변수 w(i)와 D(i,j)는 단계 208에서 재배정된다.
(3) 단계 204에서, 흐름 i의 흐름 레이트가 Rnew(i)로 변한다. 이경우에, 프로시저 Rate_Change는 단계 206에서 실행된다.
단계 200,202,204에서 설명한 이들 3가지 이벤트는 단계 206에서의 RE_Scheduler의 실행과 완전히 동시에 발생할 수 있다. 그러나, 단계 206에서의 프로시저 Rate_Change의 실행 결과가 단계 206에서 스케줄러가 사용하는 변수 w(i), w(0), D(i,j) 및 D(0,j)에 영향을 주므로, 이들 변수는 상기 이벤트가 발생된후 어떤 (바람직하게는 가장 근접한) 셀 슬롯 시간의 개시점에서 갱신되며 이러한 갱신은 단계 206에서의 RE_Scheduler의 결정보다 선행한다고 가정한다.
본 발명의 바람직한 실시예를 설명하였는데, 본 발명의 개념을 내포하는 다른 실시예가 제공될 수 있음이 당업자에게 명백할 것이다. 따라서, 본 발명은 개시된 실시예에 한정되어서는 안되며 본 발명의 청구범위에 의해서만 한정되어야 한다.
본 발명에 따르면, 리소스를 공유하며 다수의 데이타 셀을 포함하는 다수의 데이타 흐름을 확실한 흐름 레이트를 보장해 주면서 스케줄링할 수 있다.

Claims (6)

  1. 컴퓨터 시스템에서 리소스를 공유하며 복수의 데이타 셀을 각각 포함하는 복수의 데이타 흐름을 스케줄링하는 방법에 있어서,
    복수의 링크 셀 슬롯을 갖는 스케줄러를 공유되는 리소스에 제공하는 단계와,
    상기 다수의 데이타 흐름을 수신하기 위해 상기 스케줄러를 초기화하는 단계와,
    요구되는 흐름 레이트를 각각 포함하는 복수의 데이타 흐름을 상기 스케줄러내에 각각 수신하는 단계와,
    복수의 데이타 흐름 각각의 요구되는 각 흐름 레이트의 합이 공유되는 리소스의 가용 대역폭보다 작고 셀을 기본 단위로 하여 실제 스케줄링 시간과 이상적인 스케줄링 시간간의 상대 에러가 최소가 되도록 상기 다수의 데이타 흐름을 각각 상기 스케줄러를 이용하여 스케줄링하는 단계와,
    상기 수신 단계와 스케줄링 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 스케줄러를 초기화하는 단계는
    링크 셀 슬롯의 값을 0으로 설정하는 단계와,
    가상 흐름 레이트의 값을 공유되는 리소스의 가용 대역폭값과 모든 데이타 흐름의 흐름 레이트의 합값간의 차가 되도록 설정하는 단계와,
    상기 각 데이타 흐름에 대한 흐름 레이트를 상기 각 데이타 흐름의 흐름 레이트와 상기 전체 가용 대역폭의 몫으로 설정하는 단계와,
    링크 셀 슬롯 0에서의 각 흐름 레이트에 대한 에러항을 0의 값으로 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 복수의 데이타 흐름을 스케줄링하는 단계는
    데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능한가를 판정하는 단계와,
    상기 판정 단계가 상기 데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능하지 않다고 판정할 때 널셀을 송출하는 단계와,
    상기 판정 단계가 상기 데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능하다고 판정할 때 상기 셀을 전송하는 단계와,
    상기 링크 셀 슬롯을 증가시키는 단계와,
    상기 링크 셀 슬롯에서의 상기 데이타 흐름에 대한 에러항을 상기 링크 셀 슬롯에서의 데이타 흐름에 대한 에러항 + 전체 가용 대역폭에 비례하는 데이타 흐름 레이트 - 1로 설정하는 단계와,
    상기 흐름 레이트와 동일하지 않은 모든 데이타 흐름 레이트에 대해 링크 셀 슬롯에서의 데이타 흐름에 대한 에러항을 링크 셀 슬롯에서의 흐름에 대한 에러항 + 전체 가용 대역폭에 비례하는 흐름 레이트로 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 컴퓨터 시스템에서 리소스를 공유하며 복수의 데이타 셀을 각각 포함하는 복수의 데이타 흐름을 스케줄링하는 장치에 있어서,
    복수의 링크 셀 슬롯을 갖는 스케줄러를 공유되는 리소스내에 제공하는 수단과,
    상기 복수의 데이타 흐름을 수신하기 위해 상기 스케줄러를 초기화하는 수단과,
    요구되는 흐름 레이트를 각각 포함하는 복수의 데이타 흐름을 상기 스케줄러내에 각각 수신하는 수단과,
    복수의 데이타 흐름 각각의 요구되는 각 흐름 레이트의 합이 공유되는 리소스의 가용 대역폭보다 작고 셀을 기본 단위로 하여 실제 스케줄링 시간과 이상적인 스케줄링 시간간의 상대 에러가 최소가 되도록 상기 복수의 데이타 흐름을 스케줄링하는 스케줄러와,
    상기 수신과 스케줄링을 반복하는 수단을 포함하는 것을 특징으로 하는 장치.
  5. 제4항에 있어서, 상기 스케줄러를 초기화하는 수단은
    링크 셀 슬롯의 값을 0으로 설정하는 수단과,
    가상 흐름 레이트의 값을 공유되는 리소스의 가용 대역폭값과 모든 데이타 흐름의 흐름 레이트의 합값간의 차가 되도록 설정하는 수단과,
    상기 각 데이타 흐름에 대한 흐름 레이트를 상기 각 데이타 흐름의 흐름 레이트와 전체 가용 대역폭의 몫으로 설정하는 수단과,
    링크 셀 슬롯 0에서의 각 흐름 레이트에 대한 에러항을 0의 값으로 설정하는 수단을 포함하는 것을 특징으로 하는 장치.
  6. 제4항에 있어서, 상기 복수의 데이타 흐름을 스케줄링하는 수단은
    데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능한가를 판정하는 수단과,
    상기 판정 수단이 상기 데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능하지 않다고 판정할 때 널셀을 송출하는 수단과,
    상기 판정 수단이 상기 데이타 흐름과 상기 데이타 흐름의 셀이 이용 가능하다고 판정할 때 상기 셀을 전송하는 수단과,
    상기 링크 셀 슬롯을 증가시키는 수단과,
    상기 링크 셀 슬롯에서의 상기 데이타 흐름에 대한 에러항을 상기 링크 셀 슬롯에서의 데이타 흐름에 대한 에러항 + 전체 가용 대역폭에 비례하는 데이타 흐름 레이트 - 1로 설정하는 수단과,
    상기 흐름 레이트와 동일하지 않은 모든 데이타 흐름 레이트에 대해 상기 링크 셀 슬롯에서의 데이타 흐름에 대한 에러항을 링크 셀 슬롯에서의 흐름에 대한 에러항 + 전체 가용 대역폭에 비례하는 흐름 레이트로 설정하는 수단을 포함하는 것을 특징으로 하는 장치.
    〈부록 A〉
    RE 구조의 유도
    링크의 j번째 셀 슬롯의 개시 시간을 S(j)라고 표시한다(S(0)=0라고 가정). 그러면,
    S(j) = j cell_time (1)
    여기서, cell_time은 링크 속도로 1 셀을 전송하는데 소요되는 초단위의 시간이다.
    시간 S(j)까지 스케줄러가 어떤 흐름 i에게 m(j)-1 전송 스케줄링 기회를 부여했다면 흐름 i의 m번째 셀은 S(j) 또는 그후에 스케줄된다고 가정한다. 그리고, S(j)에 또는 그 이후에 다음으로 스케줄될 셀의 이상적인 전송 개시시간을 L(i,j)라고 표시한다. 할당된 흐름 레이트 R(i)bits/sec을 갖는 어떤 흐름 i를 생각한다. 이 흐름의 0번째 셀이 시간 T=0초에서 전송된다고 가정한다. 흐름 i가 항상 전송할 셀을 가진다고 가정하면, 어떤 다른 흐름의 부재시 흐름 i의 m(j)번째 셀의 이상적인 전송 개시 시간은 간단히 B(i,m(j)) = m(j) cell_len/R(i)이며, 여기서 cell_len은 비트단위의 한 셀의 길이임을 쉽게 알 수 있다. 그러면, 정의에 의해,
    L(i,j) = B(i,m(j)) (2)
    j번째 링크 셀 슬롯의 개시점에서 흐름 i에 의해 누적되는 전송 시간에 있어서의 상대 에러를 D(i,j)로 표시한다. 즉,
    D(i,j) = (S(j)-L(i,j))/T(i) (3)
    여기서, T(i) = cell_len/R(i) (4)
    는 간단히 흐름 레이트 R(i)에서 흐름 i의 셀간의 ″이상적인″ 간격 또는 R(i)로 한 셀 정도의 비트수를 전송하는데 필요한 시간이다. 마지막으로, 링크용량 C에 비례하는 흐름 i의 흐름 레이트를 w(i)라고 표시하면,
    w(i) = R(i)/C = cell_time/T(i) (5)
    여기서 cell_time은 링크 속도로 한 셀을 전송하는 시간이다.
    이는 L(i,j)의 정의에 의해 흐름 i의 스케줄링 기회시에 스케줄될 흐름 i의 다음 셀의 이상적인 시간임을 주목한다.
    L(i,j+1) = L(i,j) i의 셀이 슬롯 j에서 전송되지 않는다면 (6a)
    L(i,j+1) = L(i,j)+T(i) i의 셀이 슬롯 j에서 전송된다면 (6b)
    따라서, S(j) = S(j-1)+cell_time을 유의하면, (3)과 (6a,6b)으로부터
    D(i,j) = (S(j-1)-L(i,j-1)+cell_time)/T(i) ; i의 셀이 슬롯 j에서 전송되지 않는다면 (7a)
    D(i,j) = (S(j-1)-L(i,j-1)+cell_time-T(i))/T(i) ; i의 셀이 슬롯 j에서 전송된다면 (7b)
    마지막으로, (7a,7b), (3) 및 (5)로부터
    D(i,j) = D(i,j-1)+w(i) ; i의 셀이 슬롯 j에서 전송되지 않는다면 (8a)
    D(i,j) = D(i,j-1)+w(i)-1 ; i의 셀이 슬롯 j에서 전송된다면 (8b)
    〈부록 B〉
    성질 1의 증명
    먼저 정적인 경우(즉, 흐름 레이트가 변하지 않는 경우)를 고려해보자.
    먼저, (3)으로부터 S(j)-L(i,j) = D(i,j)T(i)임을 주목한다. 셀 슬롯 j에서 m(j)번째 셀이 실제로 전송된 흐름 i를 고려해 본다. 그러면, 셀 m(j)의 실제 전송 개시시간은 A(i,m(j))=S(j)였고, 따라서 (2)을 이용하여 식(3)을 다음과 같이 쓸 수 있다.
    A(i,m(j))-B(i,m(j)) = D(i,j)T(i) (9)
    다음의 부등식
    -1+w(i) ≤ D(i,j) ≤ n/2 +1 (10)
    을 보일 수 있는데, 이 부등식은 (5)와 결합하여,
    -T(i)+cell_time ≤ A(i,m(j))-B(i,m(j)) ≤ (n/2 +1)T(i) (11)
    이는 성질 1을 성립시킨다.
    (10)이 유효하다는 것을 보이기 위해 5개의 보조정리를 필요로 한다.
    보조정리:
    보조정리 1 : 모든 j에 대해
    보조정리 1의 증명
    초기에, 모든 i에 대해 D(i,0)=0. 따라서,
    각각의 새로운 반복시 셀이 스케줄되지 않은 어떤 흐름 i의 D(i,j)가 w(i)만큼 증가되는 반면에, 셀이 스케줄된 흐름에 대한 D(i,j)은 w(i)-1만큼 증가된다. 따라서, 모든 흐름 i에 대한 D(i,j)의 합은 변하지 않는데, 이는만큼 증가하고 1만큼 감소하기 때문이다.
    보조정리 2 : D(i,j) ≥ w(i)-1
    보조정리 2의 증명
    어떤 흐름 i를 고려해보자. w(i)≤1이고, 따라서 w(i)-1 ≤ 0이다. 이와 같이, D(i,j) ≥ 0인 한, 상기 보조정리는 유효하다. D(i,j) ≤ 0인 경우에도 상기 보조정리가 유효함을 증명하고자 한다. D(i,j)가 음이 아닌 부호에서 음의 부호로 변하는 j에 대해 고려해보자. 모든 i에 대해 초기에 D(i,j)=0이므로, 이러한 j는 반드시 존재해야 한다. 이것은 단계 j-1에서 흐름 i가 스케줄되었다면 오직 일어날 수 있다는 것이 알고리즘의 동작으로부터 명백하므로,
    D(i,j) = D(i,j-1)+w(i)-1 ≥ w(i)-1 이다.
    보조정리 1은 어떤 반복 j에서 적어도 하나의 흐름 k가 D(k,j)≥0을 가짐을 의미한다. 그러므로, D(i,j)〈0인 흐름 i는 단계 j에서 스케줄러에 의해 선택될 수 없다. 따라서, 단계 j+1에서 D(i,j+1) = D(i,j)+w(i) ≥ D(i,j) ≥ w(i)-1이다. 이제, 이러한 논거를 계속하여 D(i,j)의 부호가 음으로 변한 후 D(i,j)가 j에 따라 부호가 양이 될 때까지 반복적으로 증가함을 보일 수 있다. 부호가 음으로 변할때 보조정리 2가 유효함을 이미 보였으므로, D(i,j)가 음인 어떤 j에 대해서 유효하다.
    보조정리 2는 (10)의 좌측을 증명한다.
    보조정리 3
    어떤 임의의 k〉0 와 어떤 반복 j를 고려해보자. 반복 j에서 D(i,j)〈0인 흐름의 수를 n1(j,k), 0≤D(i,j)≤k+1인 흐름의 수를 n2(j,k), D(i,j)〉k+1인 흐름의 수를 n3(j,k)라고 표시한다. 그러면,
    n3(j,k) ≤ n1(j,k)/(k+1)이다.
    보조정리 3의 증명
    보조정리 1 및 2에 의해,
    따라서, n1(j,k) ≥ (k+1)n3(j,k)이고, 보조정리 3은 다음과 같다.
    추론 1: 모든 j에 대해 n3(j,k) ≤ n/(k+2), 여기서 n은 전체 흐름수이다.
    추론 1의 증명
    n = n1(j,k)+n2(j,k)+n3(j,k) ≥ n1(j,k)+n3(j,k), 따라서, 보조정리 3으로부터 n3(j,k) ≤ n1(j,k)/(k+1) ≤ (n-n3(j,k))/(k+1) 즉, n3(i)(k+2) ≤ n이고, 이는 상기 추론을 의미한다.
    보조정리 4
    어떤 k ≥ n/2 -1와 어떤 j에 대해 보조정리 3에는 D(i,j)〉k+1 즉, n3(j,k)≤1인 흐름이 기껏해야 하나있다.
    보조정리 4의 증명
    보조정리 3의 추론 1에 의해,
    n3(j,k) ≤ n/(k+2) ≤ n/(n/2-1+2) = 2n/(n+2) 〈 2
    n3(j,k)는 정수이므로, 상기 부등식은 n3(j,k) ≤ 1을 의미한다.
    추론 2 : 어떤 j에 대해 D(i,j)〉n/2인 흐름은 기껏해야 하나 존재한다.
    추론 2의 증명
    k=n/2 -1로 함으로써 보조정리 4로부터 성립한다.
    보조정리 5
    D(i,j) ≥ n/2 +1인 흐름은 존재하지 않는다.
    보조정리 5의 증명
    D(i,j) ≥ n/2 + 1 (12)
    인 어떤 i, j가 존재한다고 가정하자.
    (12)가 적어도 하나의 흐름 i에 대해 발생하는 최초의 시간 j를 고려해보자. 따라서, D(i,j-1) 〈 n/2 + 1이므로 j번째 단계에서 D(i,j)의 값이 증가한다. 이는
    D(k,j-1) ≥ D(i,j-1) (13)
    인 어떤 다른 흐름 k가 시간 j-1에서 스케줄되었음을 의미한다는 것을 쉽게 알 수 있다. 그러므로, D(i,j-1) = D(i,j)-w(i) 〉 n/2 + 1 - w(i) 〉 n/2 이다. 그러나, 슬롯 j-1에서 스케줄된 흐름 k는 D(k,j-1) ≥ D(i,j-1)이었어야 하며, 따라서 (13)은 D(k,j-1) ≥ n/2 이고, 또한 D(i,j-1) ≥ n/2이고 D(k,j-1) ≥ n/2인 두개의 흐름 i와 k가 존재한다. 그러나, 이는 추론 2와 모순된다. 이렇게 얻어진 모순은 보조정리 5의 증명을 완성한다.
    이제 (10)의 우측도 증명되어 정적인 경우에 대한 성질 1에 대한 증명을 완료하였다. 이제 프로시저 Rate_Change가 보조정리 1에 의해 주어지는 불변식을 성립시킴을 주목한다. 보조정리 1의 증명을 반복함으로써 보조정리 1이 흐름 레이트 변화후에도 유효함을 알 수 있다.
    보조정리 2도 유효하다는 것을 보기 위해, 흐름 레이트 변경후 흐름 i가 아닌 어떤 다른 흐름의 D(i,j)와 ″가상″ 흐름 0가 여전히 변하지 않은 상태이고 D(i,j) =wnew(i)-1이며 Dnew(0,j)=Dold(0,j)+Dold(i,j)-Dnew(i,j)임을 주목한다. 흐름 레이트가 변하기 전에 보조정리 2가 유효하다고 가정한다. 그러면, 모든 k에 대해 Dold(k,j) ≥ wold(k)-1이다. 따라서, Dnew(O,j)=Dold(0,j)+Dold(i,j)-Dnew(i,j) ≥ wold(0)-1+wold(1)-1-wnew(i)+1=wnew(0)-1이다. 그러므로, 흐름 레이트가 변한 직후 모든 흐름에 대해 보조정리 2는 유효하다. 보조정리 2의 증명의 논거를 반복하여 흐름 레이트가 변한후 후속 반복에 대해 유효함을 알 수 있다. (첫 흐름 레이트 변화이전에) 초기에 보조정리 2가 유효함을 보였으므로 흐름 레이트 변화 시퀀스의 유도에 의해 보조정리 2는 흐름 레이트 변화 존재시에도 유효하다. 이와 같이, (10)의 좌측은 흐름 레이트 변화 존재시에도 유효하다.
    보조정리 3 및 4의 증명은 보조정리 1에만 의거하므로 흐름 레이트 변화 존재시에 유효함을 쉽게 알 수 있다.
    마지막으로, 흐름 레이트 변화 직후에 보조정리 4가 유효하므로 보조정리 5의 증명도 변형없이 반복할 수 있음을 주목한다. 그러므로, (10)은 흐름 레이트 변화의 존재시에도 유효하다. 이로써 (10)의 우측이 증명된다.
    흐름 레이트 변화시 흐름 레이트 변화후 다음 셀의 이상적인 종료시간이 잘 정의되지 않는데, 이는 이전 셀과 다음 셀간에 경과하는 시간이 이전 흐름 레이트에도 좌우되기 때문이다. 따라서, 이를 다음과 같이 정의한다. 새로운 D(i,j) 값이 주어지면, (3)에 따라 먼저 흐름 레이트 변화후 다음 셀의 전송이 개시하는 새로운 이론적인 시간 L(i,j)를 정의한다. 주어진 상기 정의에 의해 흐름 레이트가 다시 변하기전까지 (8a,8b)의 유도가 여전히 유효함을 쉽게 알 수 있다. 그러므로, 성질 1은 흐름류 변화의 존재시에도 유효하다.
KR1019960072712A 1995-12-21 1996-12-27 상대에러방식을이용하는흐름레이트에기초한스케줄링방법및장치 KR100290191B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP33344395 1995-12-21
JP95-333443 1995-12-21
US08/579,393 1995-12-27
US8/579,393 1995-12-27
US08/579,393 US6130878A (en) 1995-12-27 1995-12-27 Method and apparatus for rate-based scheduling using a relative error approach
US08/578,932 1995-12-27
US08/578,932 US5781531A (en) 1995-12-27 1995-12-27 Method and apparatus for hierarchical relative error scheduling

Publications (2)

Publication Number Publication Date
KR970056194A KR970056194A (ko) 1997-07-31
KR100290191B1 true KR100290191B1 (ko) 2001-05-15

Family

ID=66382720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960072712A KR100290191B1 (ko) 1995-12-21 1996-12-27 상대에러방식을이용하는흐름레이트에기초한스케줄링방법및장치

Country Status (1)

Country Link
KR (1) KR100290191B1 (ko)

Also Published As

Publication number Publication date
KR970056194A (ko) 1997-07-31

Similar Documents

Publication Publication Date Title
EP0782301B1 (en) Method and apparatus for rate-based scheduling using a relative error approach
KR100290190B1 (ko) 이산 레이트 및 비례 레이트 스케일링을 사용하는 상대 에러 스케줄링 방법 및 장치
US5781531A (en) Method and apparatus for hierarchical relative error scheduling
US5787086A (en) Method and apparatus for emulating a circuit connection in a cell based communications network
Berger et al. Extending the effective bandwidth concept to networks with priority classes
WO2003090420A1 (en) Method and system for dynamically allocating bandwidth to a plurality of network elements
Ozveren et al. Reliable and efficient hop-by-hop flow control
US6003062A (en) Iterative algorithm for performing max min fair allocation
US6449253B1 (en) Method and system for dynamic allocation of bandwidth in asynchronous transfer mode (ATM) switching systems
EP0894380A1 (en) Method for flow controlling atm traffic
Kang et al. Fluid and Brownian approximations for an Internet congestion control model
KR100290191B1 (ko) 상대에러방식을이용하는흐름레이트에기초한스케줄링방법및장치
US8467401B1 (en) Scheduling variable length packets
Rubin et al. Performance analysis and design of CQBT algorithm for a ring network with spatial reuse
Law The bandwidth guaranteed prioritized queuing and its implementations
Altman et al. Optimal open-loop control of vacations, polling and service assignment
KR100289825B1 (ko) 계층적 상대 에러 스케줄링 방법 및 장치
Georgiadis et al. Stability analysis of quota allocation access protocols in ring networks with spatial reuse
Towsley et al. Congestion avoidance in high-speed interconnection systems
Katevenis et al. Multi-queue management and scheduling for improved QoS in communication networks
Chlamtac et al. A counter based congestion control (CBC) for ATM networks
KR100257933B1 (ko) 비동기 전송 모드 망에서 최대 셀 전송율을 준수하기 위한 트래픽 쉐이핑 방법
Mateescu On Allocation Schemes for the Interconnection of LANs and Multimedia Sources over Broadband Networks
Raha et al. performance evaluation of admission policies in ATM based embedded real-time systems
AU750013B2 (en) Explicit rate marking for flow control in ATM networks

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130201

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 16

EXPY Expiration of term