KR20010023653A - 프로세서 자원분배기 및 방법 - Google Patents

프로세서 자원분배기 및 방법 Download PDF

Info

Publication number
KR20010023653A
KR20010023653A KR1020007002305A KR20007002305A KR20010023653A KR 20010023653 A KR20010023653 A KR 20010023653A KR 1020007002305 A KR1020007002305 A KR 1020007002305A KR 20007002305 A KR20007002305 A KR 20007002305A KR 20010023653 A KR20010023653 A KR 20010023653A
Authority
KR
South Korea
Prior art keywords
processor
task
time
level
tasks
Prior art date
Application number
KR1020007002305A
Other languages
English (en)
Other versions
KR100625779B1 (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 KR20010023653A publication Critical patent/KR20010023653A/ko
Application granted granted Critical
Publication of KR100625779B1 publication Critical patent/KR100625779B1/ko

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

두 개 이상의 작업 또는 쓰레드 사이에 디지털 프로세서 이용가능시간을 분배하고 그 실행계획을 정하는 장치 및 방법. 각각의 작업은 다수의 프로세서 시간 이용레벨을 정하여 작동하며, 최대시간을 이용하는 최고품질의 서비스와 최소시간을 이용하는 최저품질의 서비스가 있다. 이 발명에 따른 시스템 및 방법은 각각의 작업이 적어도 그 최저품질의 서비스에서 실행될 수 있는 것을 항상 보장하며, 모든 작업으로부터 최적품질의 서비스를 얻는 방법을 포함한다.

Description

프로세서 자원분배기 및 방법 {Processor Resource Distributor and Method}
소프트 실시간 요구에 의해 프로세서 요구계획을 정하는 것은 스마트(SMART), 리알토(Rialto) 및 프로세서용량예약수단(Processor Capacity Reserves)을 포함하는 종래의 몇몇 시스템에서 다루고 있다.
스탠포드대학에서 설계된 SMART 스케줄러는 통상적인 응용프로그램 및 소프트 실시간 응용프로그램의 동시실행을 지원한다. 대화식 응용프로그램은 응답성이 양호해진다. 그 것은 변형된 Best Effort 스케줄러를 이용하며, 여기에서, 언더로드시에는 모든 기한이 충족되고, 오버로드시에는 저순위의 작업에 대한 서비스를 거부함으로써 성능을 은연하게 낮추기 위해(to gracefully degrade) 작업우선권이 이용된다. 그 것은 실행하는 하나의 작업을 위해 진행되는 가상시간의 개념을 이용한다.
마이크로소프트연구소에서 설계된 Rialto 스케줄러는 분산환경에서 통상적인 응용프로그램 및 소프트 실시간 응용프로그램의 동시실행을 지원한다. Rialto에서 응용프로그램들은 독립적으로 저작되며, 그러므로, 다수의 작업들이 그들의 스케줄링요구에 관해 추론하기 위해 타이밍 및 스케줄링의 모듈화가 요구된다. Rialto는 가장 느슨한 스케줄러를 이용하며, 그 것은 중간 파이프라인 속에 접근되는 구성요소를 위한 기한의 개념이 전혀 없는 분산응용프로그램을 위한 Earliest Deadline First(EDF: 최선기한우선처리방식) 보다 양호하다. Rialto는 시작제약요건메커니즘과 끝제약요건 메커니즘의 조합체 및, 사용효율을 제한하며, 오버로드조건들을 계획하고 관리하는 예약시스템을 이용한다. 오버로드조건들은 대부분의 로드분담상황을 미리 회피시킨다.
CMU에서 개발된 프로세서용량예약시스템도 통상적인 동작 및 실시간동작의 동시실행을 지원한다. 응용프로그램들은 그 것들이 요구하는 시간을 예약해 두고, 시스템은 작업들이 그 예약을 초과하지 않는 것과 예약이 시스템의 능력을 초과하지 않는 것을 보장한다. 예약은 각각의 주기에서 사용되는 시간의 양으로 이루어지고, 스케줄링은 EDF(earliest deadline first)이다. 예약은 작업의 분배를 지원하는 프로세스경계를 초과할 수 있다. 프로세서용량예약시스템(Processor Capacity Reserves system)은 스케줄링의 명료한 분리선 및 QOS 관리자를 갖는다.
이 발명은 두 개 이상의 택일적 작업(work) 또는 쓰레드(thread) 사이에 디지털 프로세서 이용가능시간을 분배하고 그 실행계획을 정하는 장치 및 방법에 관한 것이다.
도 1은 프로세서 자원분배기의 스케줄링 구성요소들을 도시한 블록선도이고,
도 2는 3 개의 작업을 위한 프로세서 자원분배기의 스케줄러에 의해 만들어진 예시적인 스케줄을 도시하며,
도 3은 자원관리자의 작동을 도시한 흐름도이고,
도 4는 스케줄러의 작동을 도시한 흐름도이다.
이 발명에 따른 프로세서 자원분배기는 무수한 작업에 대해 프로세서 이용가능시간을 할당한다. 그 것은 3개의 구성요소로 이루어진다. 이른바 자원관리자(Resource Manager)라고 지칭되는 제1 구성요소는 어떤 작업에 얼마 만큼의 시간이 주어질 것인지를 결정한다. 이른바 스케줄러라고 지칭되는 제2 구성요소는 각각의 작업이 그 것에 할당된 시간을 갖게 하는 방식으로 작업에 시간을 준다. 이른바 방침박스(Policy Box)라고 지칭되는 제3 구성요소는 모든 작업의 요구를 충족할 시간이 부족하면 사용자 및 자원관리자와 상호작용한다.
프로세서는 호스트나 사용자에 대해 한 세트의 장치의 외관을 제공하는 작업 등과 같은 한 세트의 작업을 실행할 것이 요청된다. 호스트머신은 DOS 박스이거나, 컴퓨터작동윈도우즈이거나 또는 다른 것일 수 있다.
선택적으로는, 프로세서가 셋톱박스(set-top box) 안에 있을 수 있고, 그러한 경우에는 호스트가 없다. PC 사용자는 오디오와 비디오, 모뎀 및 그래픽장치의 지원을 받을 수도 있다.
어느 하나의 시스템에 지원된 한 세트의 작업은 정적(DOS box에 지원된 경우)일 수도 있고, 동적(원도우즈 또는 자바애플릿을 갖는 셋톱박스에 지원된 경우)일 수도 있다. 이러한 작업은 동시작동장치들의 외관을 나타내기 위해 실시간적으로 프로세서를 공유해야 한다.
프로세서 자원분배기는 작업을 승인하고 스케줄링할 책임이 있다: 그 것은 어떤 작업이 실행될 수 있는지를 결정하고, 실행될 수 있다면, 그 것이 소비할 수 있는 이용시간이 얼마나 많은지(그 것이 각각의 세션에서 얼마나 오래 실행될 수 있는지)를 결정한다. 그 것은 사용자가 한 세트의 실제적 장치가 지원되고 있고 무수한 장치들이 시뮬레이션되는 것이 가시적이지 않다는 사실을 계속 믿도록 프로세서 이용가능시간을 관리한다.
이러한 환경에는 소프트 실시간 요구가 있다. 작업이 기한을 가질지라도, 기한을 놓치는 것은 불행스럽기는 하지만 파국적인 것은 아니다. 셋톱환경에서는 통상적인 워크스테이션이나 시분할적 작업을 어느 정도 가질지라도, 이러한 제한적인 환경에는 통상적인 워크스테이션이나 시분할적 작업이 없을 것이다. 거의 모든 작업은 그 것들에 해당하는 고유의 주기를 갖는다. 주기적인 작업은 일반적으로 드물게 실행되는 명령에 관련된 것이다.
종래의 시스템과의 대조:
승인제어가 보장된다. 이 발명의 시스템에서는 작업이 승인되면 그 종료시까지 적어도 자체적으로 정해진 최소시간을 확보하는 것이 보장된다.
자원할당은 계단함수(step function)이다. 다른 시스템들은 평활함수(smooth function)로 자원할당을 한다. 다른 시스템들에서는 오버로드에서 실행작업의 성능을 은연하게 저하시키기 위해 우선권이 이용된다. 이러한 접근방법이 갖는 문제점은 그 사용효율이 조금만 변경되면 어떤 작업도 은연하게 저하(gracefully degrade)되지 않는다는 것이다. 오히려, 대응하는 자원할당단계를 요구하는 명백한 서비스품질단계가 있다. 이러한 단계들 중의 하나가 아닌 할당은 저레벨 품질에 대한 자원낭비 또는 고레벨 품질에 대한 기한도과로 귀결된다.
승인제어 및 허여설정을 위한 최소 재계산. 이 발명은 스케줄에 영향을 미치는 경우가 발생될 때에만 스케줄링 정보를 재계산한다. 시작 제약요건과 끝 제약요건 쌍을 이용하는 Rialto 등과 같은 시스템은 매 주기마다 매 작업에 대한 스케줄의 실행가능성을 재계산한다.
이 발명에 따르면, 시스템이 오버로드 상태에 있거나 기한이 도과될 상태에 있을 때에 스케줄을 재계산하거나 승인에 대한 방침결정을 시도하지 아니 한다. 이 것은 Rialto 등과 같은 시스템의 접근방법이다. 그 것은 스케줄링 결정이 이루어질 때 기한이 이미 도과되었을 수도 있다는 단점을 가진다.
이 발명은 정지상태작업을 지원한다. 이러한 작업은 실행을 원할 때는 승인제어를 재계산할 필요 없이 승인이 보장되지만, 정지상태를 벗어나기까지는 어떤 자원도 소모하지 아니 한다. 어떤 시스템은 이러한 작업들이 최대량을 사용하지 않을 때에도 최대의 용량예약을 하게 하며, 이 것은 자원낭비로 귀결된다. 어떤 시스템은 작업이 실제 실행을 원할 때에 중재를 요구하게 하며, 그 것은 이미 승인된 다른 작업이 종료되게 할 수도 있다.
작업이 로드를 줄이거나 기한을 도과시키는 포괄적 방침결정. 어떤 시스템은 일시적인 오버로드가 탐지되면 포괄적인 결정을 할 것이지만, 그 것은 일부의 작업이 이미 기한을 도과한 시점에서 이루어진다. 사실상, 그 것은 로드를 줄일 것이 요구된다. 그리고, 이러한 작업을 위한 선택 프로세스는 거의 무작위적이며, 오버로드가 발생한 다음에 실행할 작업이 무엇이건 무관하다.
이 발명의 한 실시예는 프로세서에서 수행될 작업의 승인을 제한하는 방법이며, 여기에서 각각의 작업은 하나 이상의 시간이용레벨을 갖고, 고이용레벨에서는 고품질의 성능을 제공하며 저이용레벨에서는 저품질의 성능을 제공한다. 작업은 그 작업을 위한 최저이용레벨의 합이 프로세서 이용가능시간의 전체를 초과하지 않는 한 처리가 허용된다. 작업이 처리를 요구하지만 프로세서 이용가능시간을 확보할 수 없으면 (이미 승인된 작업의 최저이용레벨의 합이 새로운 작업을 승인하기에 너무 크면), 새로운 작업은 배제된다. 그러나, 더 낮은 최저이용레벨을 갖는 작업은 이용레벨이 이용가능시간을 확보하기에 충분히 낮다면 승인될 수도 있을 것이다.
작업이 승인되면, 실행이 시작된다. 작업들 중의 하나가 일시적으로 실행요구를 중지하고, 그럼으로써 프로세서 이용가능시간을 늘리면 최고이용레벨보다 낮은 레벨에서 실행되었던 다른 작업이 그 실행을 더 높은 레벨로 전환하여 비어 있는 시간을 이용할 것이다. 또한, 어떤 작업이 실행을 일시적으로 중지하고 사용되지 않는 프로세서 이용가능시간을 만들면, 이 발명에 따른 방법의 중요한 특징은 실행요구가 일시적으로 중지된 작업을 포함한 모든 작업의 최저이용레벨의 합이 새로 승인되는 작업을 위한 시간을 허용하지 않는 한 어떤 추가적인 작업도 이용시간의 이익을 취하는 것이 승인되지 않을 것이라는 것이다. 즉, 하나 이상의 작업이 실행요구를 중지할 때에 프로세서 이용가능시간이 충분하다는 사실만으로 다른 작업이 비어 있는 시간을 이용할 것이 허락되지는 않는다. 그 대신, 이전에 승인된 작업들 중의 하나가 종료되고 나머지의 승인된 작업들의 최저이용레벨들의 합이 충분히 작아서 새로운 작업이 프로세서 이용가능시간을 초과함이 없이 승인될 수 있어야 한다.
이 발명의 또다른 특징으로는, 이 발명에 따른 방법이 다수의 응용프로그램에 대해 응용프로그래밍 인터페이스를 제공한다는 것이다. 각각의 응용프로그램은 자원분배기에 대해 그 응용프로그램을 호출하는 두 개 이상의 기능을 열거하며, 그 기능들은 상이한 각각의 프로세서 이용레벨을 요구한다. 이 방법에서는 프로세서 자원분배기가 각각의 작업을 그 기능들 중의 하나와 함께 호출하고 프로세서 이용가능시간에 기초하여 작업을 호출하기 위해 이용할 기능을 선택한다. 응용프로그램들이 프로세서에 대해 그들의 호출기능들을 제공함에 따라, 각각의 응용프로그램은 회수(call back)기능들의 목록과, 각각의 회수기능과 관련해서 실시간분할을 위한 사이클 길이 및, 각각의 사이클 길이에 대해 그 기능이 호출되었을 때 작업에 의해 이용될 각각의 사이클부분의 명세를 제공한다. 그 정보는 사이클 길이 및 이용될 각각의 사이클부분으로 이루어진다. 이 정보는 프로세서 자원분배기에서 각각의 응용프로그램에 대해 프로세서 이용가능시간을 할당하는 스케줄을 정하기 위해 이용된다.
이 발명의 또다른 특징은 한 작업으로부터 다른 작업으로 시간을 이동시키는 방법을 포함한다. 적어도 둘 이상의 시간이용레벨을 갖는 제1 작업이 높은 레벨에서 작동하고, 제2 작업이 특정 주기동안 이 작업에 할당된 시간보다 많은 시간을 요구하면, 이 발명은 제1 작업이 낮은 이용레벨로 이동하여 제2 작업이 이용가능시간을 확보할 수 있게 한다. 또한, 한 작업으로부터 다른 작업으로 시간을 이동시키는 대신에, 제2 작업은 특정주기 또는 사이클에서 처리를 완료하기에 충분한 시간을 갖지 못하고 있는 것을 프로세서 자원분배기에 보고할 수 있고, 다른 작업이 조기에 완료하면 이용할 수 있게 되는 어떤 시간이든지 주어질 것이다. 차기 사이클 또는 주기를 시작하기 전에 완료를 위해 충분한 시간을 확보할 수 없으면, 이러한 사실은 자원관리자에게 보고되며, 자원관리자는 차기 사이클에서 낮은 이용레벨을 열거하는 회수기능으로 그 작업을 호출할 수 있다.
제1 원리.
도 1에 보이듯이, 프로세서 자원분배기(1)는 다음 3개의 제1 원리들을 고수한다.
1. 작업(2)이 이용자에 의해 성공적으로 시작되면, 이용자의 예상대로, 작업이 계속되어 자연적으로 종료하거나 이용자가 작업을 종료시킨다.
이용자는 명령 행, 다이얼로그, 버튼 또는 기타의 수단(예를 들어, CD 플레이어의 재생버튼을 누름)에 의해 작업을 개시한다. 작업이 시작(예를 들어, 사운드트랙이 스피커로부터 흘러나오기 시작)되면, 작업은 종료(CD의 끝에 도달)할 때까지 계속되거나 이용자가 작업을 종료(CD 플레이어의 정지버튼을 누름으로써)시킨다. 프로세서(3) 상에서 이러한 작동을 담당하는 작업들은 CD가 재생중일 때 계속 실행되지 않을 수도 있지만(실상, 실행되지 않는 것이 이상적임), 이용자는 스피커음으로부터 그 것을 알아차릴 수 없다.
주목할 것은 이러한 원리가 일시적인 오버로드가 있을 때에 실행중인 작업을 종료할 수 있는 모든 시스템에 의해 충족되지는 않는다는 것이다.
이 것은 작업이 선취(preemption) 없이 실행할 것을 보장하는 것이 아니며, 연속작동상태를 유지하기에 충분한 빈도와 충분한 시간이 주어지는 것만을 보장한다. 프로세서 자원분배기(1)는 시간을 이용하기 위해 대기중인 작업(2)이 있는 한 프로세서(3)의 이용가능시간의 (거의) 100%를 할당할 것이다.
2. 작업(2)이 실행대기하고 있고, 순환하는 타이밍 사이클(도 2에서 주기)의 일부가 사용되지 않고 있으면, 그 만큼의 시간은 실행대기중인 작업에 이용될 수 있을 것이다. 즉, 프로세서가 부분적으로 쉬고 있고, 작업이 더 많은 프로세서 시간을 원하면, 작업에 더 많은 시간이 주어질 것이다. 이 것은 한 작업이 과잉 프로세서 시간을 보유하지 않을 것이 요구됨을 의미한다. 한 작업이 보유하고 있지만 이용하고 있지 않은 어떤 시간을 다른 한 작업이 요구하면, 그 작업에 시간이 주어질 것이다.
3. 이용자의 요구에 따라 서비스품질의 변경이 이루어져야 하고, 그러한 방침결정은 시스템 전체를 이해하고 이루어져야 한다.
작업설정에 의해 과도한 프로세서 시간이 요구되기 때문에 시스템이 오버로드 되면, 일부의 작업은 종료되거나 서비스품질을 낮춤으로써 로드를 줄일 것이 요구되어야 한다. 어떤 작업들이 로드를 줄일 것이 요구되고 그 것들이 얼마 만큼의 서비스품질을 저하시킬 것이 요구되는지의 결정은 이용자의 선호도에 기초하여 이루어져야 한다. 그러므로, 작업설정이 이용자의 요구를 충족시키는 방법에 대한 전체적인(시스템 전반에 걸친) 이해가 있어야 하고, 서비스품질결정은 단일작업의 요구들에 대한 이해만으로 이루어지지 않아야 한다.
프로세서 자원분배기의 설계원리
프로세서 자원분배기(1)의 설계에서는 중요한 두 가지의 선택사항이 있다.
스케줄링 및 승인제어의 분리
실행할 작업을 결정하는 것(자원관리자(5))과 그 것들을 실제적으로 실행하는 것(스케줄러(4))은 분리된다.
실행할 작업(및 그 작업을 양호하게 실행할 방법)을 결정하는 프로세스는 자원관리자(5)에 의해 수행되며, 두 가지의 구성요소로 세분된다. 제1 구성요소인 승인제어 프로세스(6)는 어떤 작업이 시스템에 수용되는 것이 승인될 수 있는지의 여부를 결정하는 프로세스이다. 승인된 작업은 최소의 프로세서 시간이 보장된다. 응용프로그램 작성자는 제로 최소치(a zero minimum)를 정하는 선택권을 갖는다. 제2 구성요소인 교부제어 프로세스(7)는 각각의 작업에 많은 프로세서 시간이 주어지는 방법을 결정한다. 교부사항은 시간주기 및 소모될 수 있는 주기의 양으로 이루어진다. 예를 들어, 어떤 교부행위는 30 ms 주기에서 10 ms를 할당한다. 교부행위는 작업(2)에 대해 각각의 지명된 주기에 그 만큼의 시간이 할당될 것이라는 것을 보장하는 행위이다.
작업실행을 실제로 주문하고 교부된 시간할당이 배달되는 것을 보장하는 프로세스는 스케줄러(4)에 의해 수행된다. 스케줄러는 아무런 방침결정도 하지 아니 하며, 그 것은 단지 교부제어 프로세스(7)에 의해 정해진 작업설정에 따라 순환한다.
이용자 제어식 스케줄링 방침
어떤 작업이 실행되는지를 결정하는 방침과 그러한 선택을 하기 위해 이용하는 수단은 분리된다. 마찬가지로, 특정작업이 어떤 레벨의 서비스품질을 제공하는지를 결정하는 방침과 서비스품질레벨을 선택하기 위해 이용하는 수단도 분리된다.
이용자(8; 또는 호스트)는 스케줄링을 위해 어떤 작업이 선택되는지와 각각의 작업이 어떤 레벨의 서비스품질을 제공할 것이 요구되는지를 제어한다. 자원관리자(5)는 스케줄링 방침결정이 이루어져야 할 때에 방침박스(9)의 이용자 제어식스케줄링 방침에 접근하기 위한 훅(hook)을 갖는다.
프로세서 자원분배기(1)는 실행될 작업설정 또는 작업이 양호하게 실행되는 방법을 결정함에 있어서 우연 및 시기가 아무런 역할도 아니 하게 설계된다. 할당방침결정은 항상 명시적으로 이루어지고, 이 것은 주기적인 작업의 유효기간에 매 주기마다 새로운 스캐쥴링결정이 유효하게 이루어지는 시스템들과 대조된다. 새로운 작업이 시작되거나 정지될 때 또는 작업이 그 사용효율패턴을 변경할 것이 요구될 때 등과 같이, 자원분배에 중대한 경우가 일어날 때만 할당방침이 결정된다.
프로세서 자원분배기(1)에서, 방침결정은 방침박스(9)를 참고해서 자원관리자(5)에 의해 이루어진다. 방침박스는 시스템설계자들에 의해 미리 설정되지만, 이용자(8)에 의해 각자의 개인적 선호도에 맞게 변경될 수도 있다. 예를 들어, 표준값(default)에 의하면, 비디오처리는 오디오처리 전에 성능이 저하될 것이지만, 청각장애의 이용자는 그 것을 역전시키기를 원할 것이다.
프로세서 상의 시간분배의 개요
자원분배기(1)의 기능은 3개의 구성요소, 즉, 스케줄러(4), 자원관리자(5) 및 방침박스(9)로 분할된다.
자원관리자(5)는 승인제어(6), 교부설정(7) 및 이용자를 대신하여 다수의 작업들의 사이에서 시간사용효율을 협의하는 것을 담당한다.
스케줄러(4)는 자원관리자(5)에 의해 만들어진 할당을 존중하는 스케줄을 구현하고, 시간할당을 적용하며, 자원관리자(5)에게 실제사용효율을 통지하는 것을 담당한다.
작업(2)이 프로세서(3) 상에서 시작될 것을 요구할 때, 자원관리자(5)에게 프로세서 시간에 대한 요청이 이루어진다. 프로세서 사이클에 대한 요청은 프로세서 시간이 요구되는 (반복적인) 주기 및 각각의 주기에서 필요한 시간의 양으로 주어진다. 예를 들어, MPEG 디코더 작업은 각각 30 밀리초 주기의 프로세서 시간의 10 밀리초를 요구할 것이다. 도 2 참조.
요청된 시간에 대해 충분한 잉여용량이 있다면, 자원관리자(5)는 작업(2)에 의해 만들어진 요청대로 교부할 것이다. 작업은 계획된 설정에 부가될 것이고, 작업이 이용자나 다른 외적 사건에 의해 종료될 때까지 거기에 머물 것이다.
오버로드상황이 일어나면, 특별조치가 취해져야 한다. 이 경우에, 자원관리자(5)는 방침박스(9)를 참고하여 어떤 작업이 저품질의 서비스를 제공하여 로드를 줄일 것인지를 결정한다. 충족될 수 없는 요청을 한 작업이 로드를 줄일 것을 요청 받는 작업이 될 것이라는 암시는 전혀 없다. 오히려, 이러한 결정을 돕기 위해 작업들의 독립적 순서 및 그 서비스품질이 방침박스에 의해 제공된다.
엄격한 승인제어를 한다는 사실의 암시는 스케줄러(4)가 계획될 수 있는 것으로 알려진 작업설정만 계획하도록 요청될 것이 보장된다는 것이다. 이 것은 Earliest Deadline First(EDF)와 같이 단순한 스케줄링 방침을 이용할 수 있고 또한 그런다는 것을 의미한다. EDF는 이론상 계획될 수 있는 모든 작업설정을 소정의 제한조건 내에서 효율적으로 계획할 수 있음이 증명되어 있다. 제한조건은 선취성 및 작업들 사이의 동기화의 부재를 포함한다. 더 작은 주기를 갖는 작업은 더 길게 실행하는 작업을 위한 단일주기 동안에 수회의 실행을 할 수도 있다. 이 것은 더 길게 실행하는 작업이 선취할 수 있을 것을 요구한다. 어떤 주기의 모든 시기에 작업들의 사용효율을 승인할 수 없는 한, 스케줄링은 보장될 수 없다. 이 것은 주기적인 작업이 그들의 주기 내에서 동기화 상태로 대기할 수 없음을 암시한다. 프로세서 자원분배기에 관한 통상적인 작업설정의 주기적인 작업들, 비디오와 오디오 및 통신을 제어하는 작업들은 이러한 요건들을 충족한다.
수행방법
실행중인 작업을 종료시키지 않는 목표를 충족시키기 위하여, 작업이 이용하건 안 하건 간에 작업을 위한 적절한 시간을 유지해야 한다. 시스템이 오버로드 되면, 비록 거부될 수 있을지라도, 작업이 그 시간사용효율을 줄일 것을 요구할 방법이 필요하다.
이러한 상충적일 수 있는 목표를 충족시키기 위하여, 아래의 표 1과 같은 자원목록을 소개한다. 이 데이터구조는 어떤 작업이 지원할 수 있는 각각의 서비스레벨에서 작업에 대해 요구되는 시간사용효율을 정한다. 각각의 엔트리는 주기, 사용효율, 속도 및 기능을 포함한다. 주기는 작업이 실행해야 할 사이클 길이를 밀리초 또는 시스템의 단위시간으로 정한다. 사용효율은 각각의 주기에서 소모되어야 할 밀리초 또는 시스템의 단위시간의 수를 정한다. 속도는 사용효율을 주기로 나누어 계산되며 이 작업에 의해 이용되는 시간의 퍼센트 측정치이다. 기능 파리미터는 특정 주기/사용효율 조합이 그 작업에 교부되었을 때 호출될 기능을 정한다. 작업은 호출되는 기능에 기초하여 어떤 주기 및 사용효율이 교부되어야 하는지를 결정한다.
작업이 단일레벨의 서비스품질만을 지원할 수 있다면, 그 것은 자원목록에서 단지 하나의 앤트리만을 가질 것이다. 표에 여러 엔트리가 있다면, 그 것은 속도순으로 될 것이다. 가장 큰 속도를 갖는 엔트리는 작업에 대한 최상의 성능을 나타내며, 가장 작은 속도를 갖는 엔트리는 작업이 합리적으로 취할 수 있는 최소의 처리량을 나타낸다. 응용프로그램 개발자들은 자원관리자(5)에 대해 호출되는 자원목록의 엔트리를 변경할 수 있다.
작업에 교부된 실제속도는 표의 엔트리 중 하나로 나타나는 것일 것이다. 자원관리자는 어떤 작업에 대해 자원목록에 존재하지 않는 주기/사용효율 조합을 교부하지 않을 것이다.
아래의 표 1은 자원목록의 양식을 나타낸 것이다.
각각의 작업은 자원관리자(5)에게 적어도 하나 이상의 엔트리를 갖는 자원목록을 제공한다. 응용프로그램은 스케줄러(4)가 이 작업을 실행할 때 실행될 회수기능을 제공한다. 캘리브레이션 기간 동안에, 사용효율은 이용자에 의해 생략될 수 있고, 자원관리자(5)가 그 것을 기입할 것이다.
자원관리자의 임무
자원관리자(5)는 승인제어 및 교부설정을 정하는 것을 담당한다.
자원관리자는 각각의 작업에 어떤 할당이 주어질 것인지를 결정한다. 작업에 주어진 시간할당은 교부라고 칭해진다. 교부는 해당 작업의 자원목록의 엔트리들 중 하나에 대응한다.
어떤 작업을 위한 교부는 세 가지 경우들 중의 하나가 발생하면 변할 수 있다. 제1 경우는 어떤 작업이 시스템에 들어가거나 떠날 때이다. 제2 경우는 어떤 작업이 그 자원목록을 변경할 때이다. 제3 경우는 일부의 작업이 정지 상태로 들어가거나 떠날 때이다. 정지상태는 장래에 실행할 작업들을 위해 보류된 것이며, 그러한 작업들이 후에 승인되는 것이 거부되지 않도록 그러한 작업들을 위해 일부의 프로세서 시간 할당을 보류하고자 하는 것이다.
그러나, 이러한 작업들은 정지상태에 있는 현재는 아무런 시간도 사용하지 않으며, 그러므로, 그러한 시간할당을 다른 작업들이 사용하도록 비우고자 한다.
도 3에 보이듯이, 단계 21에서 새로운 작업이 시작되면, 그 작업은 단계 22에서 자원관리자를 그 자원목록과 접촉시킨다. 그러면, 자원관리자는 승인제어를 한다. 새로운 작업은 단계 23에서 시스템의 모든 작업(현재 실행할 수 있는 것 및 정지상태인 것)의 최소교부의 합이 100%보다 작거나 같을 경우에만 시스템에 들어가는 것이 허용된다.
단계 22에서 어떤 작업이 시스템에 들어가거나 시스템을 떠나거나 단계 25에서 정지작업이 상태를 변화시키면, 자원관리자는 모든 승인된 작업에 대해 새로운 교부설정을 만들어야 한다. 이 때, 어떤 작업에 대한 교부는 증가되거나 감소될 수도 있다. 이 프로세스의 제1 단계로서, 단계 26에서 모든 작업이 최대교부를 얻을 수 있을지를 결정한다. 불가능하다면, 방침박스는 단계 27에서 이용자의 성능선호도를 얻기 위해 접근하며, 단계 28에서 타협된 교부설정이 계산된다. 새로운 교부설정이 정해지면, 다음 단계인 단계 29는 스케줄러로 기존의 교부를 제거하거나 감소시켜 자원을 비워 두는 것이며, 최종단계인 단계 30은 스케줄러에게 새롭거나 증가된 교부를 통지하는 것이다. 작업은 다음 주기에서의 그 사용효율이 새로운 교부와 관련된 기능의 호출과 함께 시작될 것이기 때문에 간접적으로 알려질 것이다. 자원관리자가 교부의 합이 100%를 초과하지 않는 것을 보장하기 때문에, 스케줄러(4)는 교부를 적용하기만 하면 되므로 모든 작업을 성공적으로 계획하기 위한 단순 EDF 계획을 이용할 수 있다.
승인제어에는 아래의 수학식 1이 이용된다.
교부제어에는 아래의 수학식 2가 이용된다.
스케줄러의 임무
스케줄러(4)는 도 4에 보이듯이 다음에 실행할 작업을 결정하고 교부를 적용하며 자원관리자에게 자원계산내용을 제공해주는 것을 담당한다.
스케줄러에 대한 입력은 교부설정이다. 이 것은 실행가능한 작업들의 교부된 자원목록의 엔트리들의 설정이다. 스케줄러는 {다음 주기의 시작, 다음 주기의 끝}에 대한 정해진 시간에 의해 {주기, 사용효율}의 설정을 증대시킨다.
다음에 실행할 작업을 결정하기 위하여, 스케줄러는 EDF 알고리즘을 이용한다. 기한은 그 교부에 관한 주기의 끝이다. 이 주기에 대한 완전한 교부를 아직 받지 못한 바로 다음 주기의 끝을 갖는 모든 작업이 선택된다.
차기의 상황전환은 세 가지 이유들 중의 하나로 인해 일어난다. 제1 이유는 작업이 프로세서(그 교부를 완료하건 안 하건 간에)를 양보할 수도 있기 때문이다. 제2 이유는 작업 그 교부를 초과할 수도 있기 때문이다. 제3 이유는 다른 하나의 최종주기가 현재의 주기에 선행해서 일어날 수 있기 때문이다.
작업이 선택되면, 그 작업으로 전환하기 전에, 스케줄러는 단계 48에서 타이머 인터럽트를 설정함으로써 제어를 다시 얻도록 주선한다. 스케줄러는 (1) 선택된 작업에 대한 교부의 끝, 또는 (2) 가장 빨리 오는 다음 주기의 끝 시간을 갖는 (현존 작업이 아닌) 어떤 작업에 대한 다음 주기의 시작 시간 중에서 가장 선행하는 것에 대해 타이머 인터럽트를 설정한다.
타이머가 제1 경우를 벗어나면, 작업은 그 교부를 초과했다. 타이머가 제2 경우를 벗어나면, 현재 실행중인 것보다 더 짧은 주기를 갖는 작업은 새로운 주기를 시작했고 실행중인 작업보다 더 빨리 오는 기한을 갖는다.
어떤 교부의 끝, 또는 작업이 프로세서를 양보하고 이 주기에 그 것이 행해지지 않았음을 나타낼 때, 다음 주기가 시작되고 다음 주기의 끝이 갱신된다. 그 것들은 작업에 프로세서가 교부될지라도 작업이 선취될 수도 있기 때문에 갱신되지 않는다.
도 4에 보이듯이, 프로세스는 단계 41에서 한 인터럽트와 함께 시작되며, 단계 42에서 미교부에 대한 체크와 함께 시작된다. 교부가 미교부상태이면, 단계 47에서 그 작업에 대해 시간이 제공되며, 단계 48에서 차기 인터럽트가 설정되고, 작업이 실행된다. 미교부가 없으면, 교부설정이 갱신되고, 더 많은 자원이 최근에 요구되었는지를 결정한다. 이 것이 미교부를 산출해 내면, 처리는 단계 47로 복귀한다. 여전히 미교부가 없으면, 시스템은 그 교부 내에 완료하기 않고 초과시간요구를 한 작업을 체크한다. 그러한 작업이 있으면, 단계 46에서 그 것에 대해 시간이 제공되며, 단계 48에서 처리가 계속된다. 초과시간이 요구되지 않았으면, 단계 50에서 시간이 산재성 서버에 주어진다.
아래의 표 2에 나타낸 것은 3개의 작업들을 위한 예시적인 스케줄이며, 모뎀, 3차원그래픽표시장치 및 MPEG 3 디코더를 포함한다. 시간 0에서 , 그 작업을 위한 교부설정은 아래와 같다.
아래의 표 2는 모뎀과 MPEG 압축해제 및 3D 그래픽이라는 세 가지의 작업을 위한 초기 교부설정을 나타낸 것이다.
아래의 표 3은 모뎀과 MPEG 압축해제 및 3D 그래픽이라는 세 가지의 작업을 위한 순서적인 시작 및 끝 주기를 나타낸 것이다.
위 표 3에 나타낸 것은 실행중인 작업에 대한 제1 70밀리초 동안의 스케줄이다. 66밀리초를 초과하는 이 스케줄은 도 2에 그래프로 도시되어 있다.
다음은 스케줄러의 작동에 관한 의사코드이다.
while (1) {
task_to_run = find_task ( min "period_end" AND "period_begin" 〈= time_now);
if (preempting_task = find_task ( "period_end" 〈 task_to_run ("period_end") AND min ("period_begin") ) ) { alarm_time = preempting_task ("period_begin");
} else {
alarm_time = time_now + task_to_run ("utilization");
}
set_timer (alarm_time);
run (task_to_run);
/* if the user returns here, they have finished their grant for this period */ task_to_run (period_begin) += task_to_run (period);
task_to_run (period_end) += task_to_run (period);
주목할 것은 3D 그래픽 작업은 도시된 5개의 주기들 중의 3개에 대한 선취가 없이 실행하지만, MPEG 디코딩 작업은 적어도 한 번은 항상 선취된다.
방침박스의 임무
방침박스(9)는 모든 작업이 최고레벨의 프로세서 시간을 얻기에는 자원이 불충분한 경우에 한 작업이 다른 작업과 거래하는 방법에 관한 정보의 출처이다.
작업(2)의 지원된 설정마다, 방침박스(9)는 각각의 작업의 상대적 중요성을 이용자에게 알린다. 제품에는 초기설정등급인 표준값 설정치(default set)가 있다. 이 등급설정은 이용자나 시스템 관리자에 의해 무시될 수 있다.
그러한 방침박스가 구현되는 방법은 여러 가지가 있다. 요즈음 선호되는 실시예는 각각의 작업에 대한 프로세서 시간의 상대적인 할당에 대응하는 비율의 설정을 유지하는 것이다. 이러한 비율은 자원목록(21)에 의해 지원될 수 있는 실제속도에 무관하다. 시스템이 오버로드 되면, 비율설정은 방침박스(9)에 의해 자원관리자(5)로 회송된다.
각각의 승인된 작업마다 자원관리자(5)가 두개의 자원목록엔트리를 선택하며, 그 것들은 방침박스(9)에 의해 지명된 비율보다 즉시 높아지거나 낮아진다. 그렇게 선택된 각각의 작업에 대한 상대적으로 높은 엔트리의 합이 프로세서 시간의 100%보다 작다면, 모든 작업은 그러한 높은 엔트리를 얻는다. 그 합이 너무 크다면, 고레벨과 방침박스(9)에 의해 지명된 비율 사이의 거리가 가장 큰 작업은 저레벨이 주어진다. 교부의 합이 프로세서 이용가능시간의 100%보다 작아질 때까지 이 프로세스를 반복한다.
교부의 합이 100%보다 작아지면, 최종적인 추가경로가 만들어진다. 가능하다면, 작업에 대한 교부를 증가시켜 거의 100% 가깝게 이용될 수 있게 한다. 현재 선택된 레벨에 가장 가까운 차기의 고레벨을 갖는 작업에 추가적인 프로세서 시간이 우선적으로 주어진다.
아래에서는 작업(2)의 전망으로부터 스케줄러(4) 및 자원관리자(5)가 하는 것이 무엇인지에 관해 설명한다. 작업으로는 정상상태작업 및 정지상태작업의 두 가지가 있다. 정상상태작업은 실행대기중인 작업이다. 정지상태작업은 스케줄에 포함될 권리를 일시적으로 포기한 것으로서, 그 것들은 다음 주기의 시작 시간이 정해져 있지 않다.
정상상태작업
우선, 작업이 시작되면, 그 것은 단계 22에서 그 자원목록(21)으로 자원관리자를 호출한다. 이 시점에서 작업이 캘리브레이션 루프를 실행하거나, 또는 자원목록의 속도를 제외한 엔트리들이 채워질 수도 있다. 어떤 경우이든지, 적어도 기능은 채워져야 하며, 결국, 주기와 사용효율 및 속도도 채워진다.
작업이 제어되는 차기는, 도 1에 보이듯이, 자원목록에 지명된 기능들 중의 하나가 호출되었을 때이다. 작업은 이러한 기능들 중의 하나에 의하지 않은 어떠한 방식으로도 제어되지 아니 한다. 기능은 하나의 프레임을 계산하거나 한 세트의 프레임을 계산하는 것 등과 같이 완료되어야 할 미량의 작업에 대응하는 것이다. 프레임이 완료되면, 기능은 프로세서를 양보하는 것으로 복귀되고, 작업은 이 주기를 완료한다.
작업은 그 작업에 대한 다음 주기의 어느 때에 동일한 기능이나 자원목록에 지명된 다른 어떤 기능에 의해 다시 호출될 것이다. 이러한 기능들 중의 하나에 의해 작업이 호출될 때는 언제나 최종주기에서의 실제사용효율에 대해 보고된다. 이 것은 작업이 자원목록을 조정하기 위해 이용될 수 있다.(주목할 것은 어떤 두개의 주기 사이에서 주기의 이용기간은 다를 수 있다는 것이다.)
작업은 정해진 최소속도가 이전의 최소속도보다 클 필요가 없다는 단순한 예고로 언제든지 그 자원목록을 조정할 수 있고, 시스템진입이 승인될 것이 항상 보장된다. 엔트리는 추가되거나 제거되거나 변경될 수 있고, 또한, 필요하다면 새로운 기능들이 정해질 수 있다. 새로운 엔트리는 다음의 주기에 대해 유효할 것이다.
작업이 교부를 초과하면(즉, 작업이 교부가 초과되기 전에 양보하지 않으면), 작업은 즉시 선취되고, 작업은 그 것이 실행되는 차기에 초과실행이 통지될 것이다. 작업이 실행되는 차기 주기에서, 작업은 동일한 처리를 계속할지, 로드를 줄일지, 또는 다른 어떤 적절한 조치를 취할지를 선택할 수 있다. 도 4의 단계 45 ?? 46에 보이듯이, 잉여자원이 있는 경우에는, 완료되지 않은 어떤 작업이든지 교부가 만료되기 전에 실행하는 것이 허용될 것이다. 그러한 작업들이 두 개 이상이라면, 가장 선행하는 기한을 갖는 작업이 그 기한에 도달할 때까지 실행되는 것이 우선적으로 허용된다. 그러나, 응용프로그램 작성자는 교부를 초과하는 잉여자원이 있을 것을 감안하여 계획하지 말아야 한다.
정지상태작업
시스템은 즉시 실행할 것이 요구되지 않지만 실행을 요구할 때에는 승인이 거부될 수 없는 작업에 대한 시간을 보류할 수 있다. 그러한 작업이 자원관리자(5)에게 등록할 자원이 요구될 때까지 기다렸다면, 단계 23에서 작업설정을 위한 최소시간의 합은 이미 100%로 될 수 있다. 그러면, 단계 20에서 이러한 작업을 거부해야 하거나(할 수 없다고 가정해서), 이미 실행중인 (제1 원리 중 하나와 충돌하는)어떤 작업을 소멸시켜야 한다. 선택적으로, 이러한 작업은 실제로 정지상태이고 싶지만 다른 제1 원리와 충돌할 때에 어떤 종류의 휴식루프에서 선회되며, 그 것은 이용할 수 있는 작업이 존재한다면 기계의 시간의 100%를 확실히 사용하는 것이다.
이 문제는 정지상태작업의 개념을 도입하여 해결한다. 시작할 때에, 이러한 작업은 단계 22에서 자원관리자에 등록하는 것이 일반적이다. 그 자원목록(21)은 그 것이 실제로 실행중이었을 때의 시간과 일치하며, 정지상태에 대한 특수한 엔트리는 없다. 그 최소요구치가 승인제어에 이용될 것이다. 자원관리자에 대한 호출의 인자는 정지상태작업을 식별하고, 작업은 그 것이 시스템에 진입하는 것이 승인되었을 때에 연기될 것이다.
주목할 것은 휴지상태(sleeping)는 정지상태(quiescence)와 근본적으로 다르다는 것이다. 휴지상태(저지상태)의 작업은 주기적인 작업으로서 유효하게 스케줄 될 수 없다. 아래에서 설명하는 산발성 서버(Sporadic Server)는 휴지상태의 작업을 스케줄 할 수 있지만, 프로세서 자원분배기는 어떤 작업이 저지되어 있는 어던 주기에서든 해당 작업을 위한 어떤 스케줄링도 보장할 수 없다. 정지상태작업은 자원관리자에 의해 할당되어 있지만 그 것이 정지상태인 동안에는 스케줄 되지 않는 것이다.
어떤 외적 사건에의 그 작업이 정지상태로부터 깨어나면, 교부설정은 재계산될 것이지만, 승인제어작업은 이미 이루어져 있다. 정지상태작업이 깨어났을 때, 새로 깨어난 작업을 실행할 시간이 불충분하면, 단계 29에서 다른 작업들이 차기 주기에 대해 감소된 교부가 주어질 것이다. 그러나, 승인제어공식으로 인해 이용가능시간에 적합한 교부설정이 이루어지는 것이 보장된다. 최악의 경우에 모든 작업은 그 최소치에서 실행된다.
정지상태작업은 교부설정을 재구성하고 그 작업을 연기시키는 자원관리자(5)에 대한 호출에 의해 정지상태로 복귀할 수도 있다.
정상상태작업의 예: MPEG 2 비디오 디코딩
MPEG 2 비디오 디코딩은 정상상태작업의 한 예이다. 그 것은 MPEG 표준에 의해 정해진 프레임재생속도인 30 밀리초의 고유주기를 갖는다. 이 발명이 이용될 특정 프로세서에서, 프로세서 시간의 약 33%가 이러한 작업을 수행하기 위해 이용될 것이다.
MPEG 디코딩에는 세 종류의 프레임이 관련되어 있고, 이러한 세 종류의 프레임은 아주 다른 사용효율을 갖는다. 초기(I) 프레임들은 최소의 압축분해도를 가지며, 최소의 프로세서 시간을 요구하고, P 프레임들은 I 프레임들로부터 계산되며, 중간치의 프로세서 시간을 요구하고, B 프레임들은 선행하는 I 또는 P 프레임들의 쌍으로부터 계산되며, 최대의 프로세서 시간을 요구한다. B와 I 프레임의 사이에 요구되는 프로세서 시간의 상대적인 차이는 약 2:1이다. 어떤 I 프레임이 계산되지 않으면, 1/2 초 이내에 차기의 I 프레임이 수신되기까지는 어떤 갱신도 할 수 없다. 요약하면, B 프레임들이 드롭 되면 최대의 로드가 감축될 수 있고, I 프레임들이 드롭 되면, 이용자는 1/2 초 정도의 돌발사고(glitch)를 경험할 것이다.
비디오 표준이 다르면 다른 MPEG 프레임들의 조합을 요구하지만, 표시장치는 프레임 종류의 임의적인 선택을 포함할 수 있다. 예를 들어, (IPBBPBBPBBPBBPB)(반복)의 순서로 MPEG 프레임들을 압축해제할 것을 요구하는 표준을 고려하자. 이 것으로부터 아래의 표 4에 나타낸 것과 같은 MPEG 작업시간표가 얻어질 수 있다.
아래의 표 4는 MPEG 비디오 디코딩 작업을 위해 이용할 수 있는 자원목록(프레임의 1/4, 1/3 또는 1/5의 로드감축드롭)을 나타낸 것이다.
표 4의 MPEG 비디오 디코딩 작업을 위해 가능한 자원목록에서, 로드감축은 프레임들의 1/4 , 1/3 또는 1/5을 드롭한다.
오버로드되지 않은 시스템에서는, 완전한 압축해제를 제공하는 최상의 자원목록엔트리가 이용될 수 있다. 오버로드상황에서는, 이용자가 초 당 더 적은 수의 프레임들을 볼 것을 선택할 권리를 갖는다. 로드감축선택권이 있다는 것이 어떤 상황에서든 수용할 수 있는 시각적 품질을 제공한다는 것을 의미하지는 않지만, 계산상으로는 가능하고 의미심장한 선택사항이다.
주목할 것은 이 자원목록은 MPEG 작업이 프레임 전체가 동일한 방식으로 압축해제될 것을 요구하는 것을 의미한다는 것이다. 단일프레임 내에서 사용효율을 변경할 수는 없다. 이 작업이 그 기능들 중 어느 것과 함께 호출되었을 때, 더 짧은 주기를 갖는 다른 작업이 있으면, 가장 짧은 주기일지라도 30 밀리초의 아주 긴 주기이므로, 선취될 것이 거의 확실하다. 선취가 최적으로 발생해야 할 때를 조정하기 위해서는 독립된 직각법을 이용한다. 그 것은 다음 섹션에서 좀더 상세히 설명된다.
MPEG 작업이 어떤 이유로 인해 그 교부를 초과실행하면, 그 것은 선취되고 다음 주기에서 통지를 수신할 것이다. 그 것이 제어를 다시 획득할 때 취하는 행동은 압축해제된 프레임의 종류에 의존한다. 그 것이 B 프레임이면, 그 것은 단지 드롭시키는 것을 선택할 수 있고 차기 프레임으로 연속한다. 그 것이 I 프레임이면, 그 것은 완료할 것이며 아마 차기 B 프레임을 드롭할 것을 통지할 것이다. 해야 할 것이 정확히 무엇이건 간에, MPEG 작업은 그 자체의 결정을 만들 것이다. 그 것이 여전히 그 교부를 초과실행하면, 그 것은 아마 그 자원목록의 기능에 관련된 사용효율요구를 변경하는 것이 필요할 것이다.
정지상태작업의 예: 전화응답
이용자는 전화에 응답하고 송화자와의 모뎀연결을 이루는 작업을 가질 수 있다. 전화벨이 울릴 때까지 아무런 작업도 하지 않는다. 전화벨이 울리면, 작업은 연결을 이루고 유지하기에 충분한 프로세서 시간이 할당되어야 한다.
할당전망으로는, 이 것은 실행하기를 원할 때 승인제어에 의해 승인이 거부될 수 없는 작업이다. 실제로, 그 것을 위한 시간을 보류하고 있다. 이 것은 정지상태작업으로 간단히 수행할 수 있다.
전화벨이 울리기 전에 언제든지 전화응답작업은 실행시의 최소요건을 정해서 자원관리자에 등록한다. 그 것은 호출이 들어올 때 구동시스템이 깨울 때까지 연기된다. 자원관리자는 교부설정을 재계산할 것이지만, 승인제어알고리즘으로 인해 작업 가능한 스케줄을 찾는 것이 보장된다. 전화응답작업이 실행되지 않을 때에, 그 시간은 시스템에서 다른 작업에 대해 고레벨의 서비스를 제공하기 위해 이용될 수 있다.
초과실행관리: 로드이동
이 교부할당 및 스케줄링 방법은 주기 당 요구시간이 비교적 일정할 때에 이상적으로 작동한다. MPEG 및 오디오 등과 같은 일부의 주기적인 작업들은 이 모델이 지극히 잘 맞는다. 처리요건이 스크린의 화소수 등과 같은 고정치에 의존하지 않고 장면의 다각형의 수 등과 같은 매우 변화무쌍한 값에 의존하는 3D 작업 등과 같은 작업도 있다. 대부분의 3D 작업은 이러한 문제를 억제하려는 시도인 다각형 부젯(Polygon Budget)을 갖지만, 프레임 당 5,000 내지 10,000 의 현재의 부젯은 여전히 2:1의 성능변화율을 나타낸다.
3D 응용프로그램 설계자가 10,000 다각형을 처리하기에 충분한 할당을 요구할지라도, 이러한 수를 초과하는 프레임이 있을 수 있다는 문제는 여전하다. 물론, 프레임 집합체가 5000 다각형만을 이용한다면, 3D 작업을 위해 보류된 처리용량의 거의 절반이 소비된다.
이러한 문제에 대해, 이 발명은 부하이동의 개념을 제공한다. 많은 시스템들은 어떤 작업이 로드를 줄이기를, 아마, 한 프레임을 위한 계산 도중에 부분적으로 처리된 다각형들을 드롭시키기를 기대한다. 그러한 로드감축에 더하여, 제한된 기간동안 한 작업을 위한 시간을 다른 작업으로 적절히 제어된 방식으로 이동시키는 로드이동을 허용한다. 이 것은 정상적인 상황에서 3D 작업 등과 같은 작업에 대해 더 적은 양의 시간을 할당하는 것을 허용하며, 요구에 따라서는 잉여시간을 거기에 이용할 수 있게 하고, 다른 작업의 성능을 해치지 않는다.
로드이동의 가능성은 우선 방침박스(9)에 정해져 있다. 작업설정은 서로 링크되어 한 작업이 그 교부를 초과실행할 수도 있음을 나타낸다. 초과실행(이미 지나거나 예기되는)의 경우에 스케줄러(4)는 그 설정의 이 단일주기를 위해 다른 작업으로부터 초과실행작업으로 시간을 이동시킬 수 있다. 이 주기에 대해, 시간이 증여된 작업은 주어진 것보다 더 작은, 다시 말해서, 현재의 교부보다 작은 시간에 관련된 회수를 수신할 것이다. 증여하는 작업에 주어진 시간은 자원목록에 기재된 것이고, 이 주기에서 실행이 이미 시작되었고 선취되었다면 증여를 하는 작업에 대한 할당을 변경할 수 없다. 이런 이유로, 도 5의 단계 61 및 62에 보이듯이 초과실행할 주기에 대한 사용효율을 조기에 보고할 수 있다면 3D 작업 등과 같은 작업이 매우 유리하다. 3D 작업의 경우에, 사용효율은 주기의 초기에 알려지는 처리되어야 할 다각형 수의 비례함수이므로, 이 것은 아주 쉬운 것이다.
로드이동이 수행되는지의 여부는 방침박스에 의해 관리된다. 로드이동은 이용자 또는 이동로드가 추가될 수 있는 새로운 작업설정에 의해 무효(disable)로 될 수 있다.
비주기적인 작업의 관리
일부의 작업들은 프로세서 자원분배기의 가장 단순한 형태인 주기적이고 고도로 잠복적인 모델에 완전하게 맞지 않는다. 이 것은 비주기적인 작업 및 아주 낮은 잠복요건을 갖는 작업을 포함한다. 이러한 특성을 갖는 작업들은 다른 방식으로 처리된다.
비주기적인 작업
비주기적인 작업들은 고유주기를 갖지 않는다. 정지상태작업은 정지상태가 아닌 실행중일 때의 특성을 제외하고는 비주기적인 작업의 일례가 될 수 있을 것이다. 비주기적 정지상태작업이 있을 수 있지만, 대부분의 정지상태작업은 주기적이다. 비주기적 모델은 작업창작 및 예견할 수 없는 기타의 가계작업을 지원하기 위해 이용될 수 있다.
비주기적인 작업은 산발성 서버에 의해 처리된다. 산발성 서버는 작업을 위한 대기행렬을 검사하여 지극히 작은 사용효율로 주기적으로 실행된다. 작업이 이용할 수 있으면, 그 것은 좀더 큰 교부를 요청하기 위하여 자원관리자(5)와 접촉한다. 주기적 서버를 위한 자원목록의 최소 엔트리가 도 4의 단계 50에 보이듯이 산발성 서버가 쉬고 있지만 해야 할 일을 검사하는 모드를 위해 이용된다. 작업이 도달하면, 동일한 최소 엔트리를 갖지만 증가된 사용효율을 요구하는 엔트리도 갖는 새로운 자원목록이 자원관리자에게 제공된다. 시스템이 오버로드되어 있지 않으면, 비주기적 작업을 할 산발성 서버에 대한 교부가 만들어질 것이다. 작업이 완료되고 대기행렬이 비워지면, 산발성 서버는 자원목록의 최소 엔트리만으로 자원관리자에 대한 다른 호출을 만든다.
산발성 서버에 의해 실행중인 작업에 대해 성취될 수 있는 최상의 잠복성은 새로운 교부를 구현하기 위해 소요되는 시간의 함수이다. 최악의 경우에, 이 것은 모든 미교부 주기의 합이다. 단일의 비주기적인 작업만 시스템에 있을지라도 최악의 경우는 승인제어가 새로운 자원목록에 대한 엔트리를 거부할 수 있다는 것이다. 이 것은 시스템이 오버로드 되고 방침박스가 모든 실행중인 작업이 산발성 서버보다 우선권이 주어져야 한다는 것을 나타내고 있을 경우에만 일어난다. 그러한 방침은 이용자에 의해 변경될 수 있다.
낮은 잠복성 및 높은 빈발성 작업
프로세서 자원분배기(1)에 의해 지원될 수 있는 최소의 잠복성은 문맥전환을 하기 위해 소요되는 시간만큼 부분적으로 결정되었다. 그 것은 또한 실행중인 정지상태작업이 괴잉데이터통행을 회피하기 위한 선취들의 사이에서 요구되는 시간의 최소단위에 의해 간접적으로 제한되기도 한다.(예를 들어, 데이터는 작업의 한 단계에서는 수시로 접근되는 캐시 속에 있을 수도 있지만, 다른 단계에서는 그렇지 않다. 이상적인 문맥전환시간은 이러한 두 단계의 사이이다.)
프로세서 자원분배기는 약 500 마이크로초의 단위시간(microsecond granularity)을 제공한다. 그러나, 초 당 1000 회 이상(또는 2000회 이상까지도) 실행할 것이 요구되는 작업이 있으며, 그러한 경우에 이 메커니즘은 작동하지 않을 것이다. 명백히, 초 당 1000회 이상 실행하는 작업은 매 반복주기 당 1 밀리초 이하를 사용한다. 이러한 작업은 잠복성이 낮고 빈발성이 높은 작업이다. 일례로 오디오 명령 스트림을 위해 발생하는 DMA 인터럽트가 있으며, 그 것은 초 당 2800회 또는 8000회까지 인터럽트할 것이지만, 매 반복주기에서 아주 소수의 지시만이 실행된다. 또한, 이러한 경우에 응답하기 위한 잠복요구는 1 마이크로초 정도이다.
이러한 작업은 문맥전환을 하기 위한 시간 자체가 시스템을 오버로드시킬 수도 있기 때문에 인터럽트처리기로서 실행된다. 인터럽트처리기는 완전한 문맥전환을 하지 않을 것이고, 인터럽트레벨에서 이용될 수 있는 레지스터들의 설정도 마찬가지로 제한되어 있다. 스케줄링을 위해, 일부의 프로세서가 인터럽트처리용으로 보류되어 있다. 이러한 보류량은 어떤 작업설정이 실행되는가에 따라 증가되거나 감소된다. 이 것은 프로세서의 100%를 이용하려는 목표에 한계적인 영항을 미치지만, 이러한 작업이 그 자체의 잠복성 요구보다 작은 사용효율을 가질 것이므로, 전체적인 사용효율은 그다지 크지 않다.
정적 및 동적 작업설정: 유증 응용프로그램
프로세서 자원분배기는 작업이 시작되면 승인제어할 수 있음에 의존한다. 이 밖에, 실행을 계속할 수 있음에 대한 보장이나, 이용자가 어떤 작업이 성공적으로 실행될 것인지에 관한 방침에 실제로 영향을 미칠 수 있음에 대한 보장도 할 수 없다.
윈도우환경 및 셋톱박스환경에서는 이 것이 가능한데, 그 것은 어떤 작업이든지 결국 드라이버를 통해 요구를 개시해야 하기 때문이다. 또한, 요구는 이용자에 의해 대화식으로(적어도 간접적으로) 발생된다. 예를 들어, 이용자는 CD 플레이어로부터의 재생을 선택한다.
DOS 환경에서는 그러한 보장을 할 수 없다. 하드웨어포트에 직접 접근할 수 있을 것으로 기대되는 DOS 환경에서는 유증 응용프로그램(legacy application)이 있다. 드라이버나 다른 어떤 OS API를 통해서든 아무런 설정도 수행되지 않는다. 프로세서는 프로세서드라이버를 DOS 박스에 프리로딩(preloading) 함으로써 이러한 응용프로그램을 지원할 것이다. 각각의 가능한 작업마다 자원목록이 프리로드 된다. 승인제어는 구동시스템로드시간에 정적으로 유효하게 행해진다. 초기의 교부설정이 미리 정해지면, 그 것은 모든 프리로드 된 장치들이 실행중이라고 가정한다. 주목할 것은 윈도우가 DOS의 상위에 로드 되면, 이러한 할당 및 스케줄이 동적으로 창작된 것으로 교체될 것이며, 그 것은 작업의 창작 및 삭제를 수용할 것이다.
교부항목
작업에 대해 교부가 이루어질 때, 시스템은 매우 특수한 보장을 만들었다. 프로세서 사용효율의 교부를 위해, 시스템은 프로세서 시간의 교부된 양이 지명된 매 주기마다 작업에 할당될 것임을 약속한다. 일례로, 3D 그래픽장치는 매 14 밀리초 중에서 7 밀리초가 할당되었다. 매 14 밀리초마다, 3D 그래픽장치는 7 밀리초가 주어질 것이다. 7 밀리초는 주기의 시작에서 주어지거나, 주기의 끝에서 주어지거나, 몇 개의 섹션으로 분할되어 작업이 그 사이에서 선취되기도 할 것이다. 작업에 할당된 시간이 전혀 지나지 않을 수 있는 최장시간은 (2*주기 - 2*사용효율)이다. 이 작업의 경우에, 그 것은 28-14=14 밀리초일 것이다. 작업은 이러한 경우를 처리하기에 충분한 버퍼링을 가져야 한다.
양보
이 시스템의 주기적인 작업에 관해 이루어진 가정들 중의 하나는 선취요구에 응답하는 것을 제외하고는 이 주기에 대한 작업을 완료하기까지는 프로세서(블록)을 양보하지 않을 것이라는 것이다. 외적 사건으로 인해 대기를 저지하지는 않는다. 산발성 서버의 문맥에서 실행되는 비주기적인 작업은 어떤 시간도 저지시킬 수 있다. 작업이 깨어나면, 산발성 서버의 작업대기행렬에 배치될 것이고, 대기행렬에 배치된 대로 실행될 것이다.
비주기적인 작업이 저지되면, 이 주기에 대한 교부의 나머지를 수신하는 것을 기대할 수 없다. 문제는 승인제어 보장이 시스템이 프로세서 시간의 매 밀리초마다 이용할 수 있음에 의존한다는 것이다. 예를 들어, 두 개의 작업을 감안하자. 하나는 매 3 밀리초마다 1 밀리초가 교부되었고(33 % 속도), 다른 것은 매 10 밀리초마다 5 밀리초가 교부되었다(50% 속도). 전체 사용효율은 단지 83%이다.
이제 10 밀리초의 작업이 어떤 사건을 1 밀리초 동안 기다린 후에 프로세서를 양보하고, 7 밀리초에서 그 사건이 회복되어 실행을 계속할 수 있다고 가정하자. 3 밀리초 작업은 밀리초 1 및 밀리초 4에서 실행된다. 이론상으로, 사건이 회복될 때, 10 밀리초 작업은 밀리초 7부터 밀리초 10까지 4 밀리초를 이용할 수 있고, 그 기한을 충족시킨다. 그러나, 3 밀리초의 주기를 갖는 제2 작업도 그러한 밀리초7, 밀리초 8 또는 밀리초 9 중의 하나를 이용해야 한다. 이 스케줄은 충족될 수 없다.
저지에 관한 좀더 단순한 문제는 단일작업만으로 살명될 수 있다. 작업은 기한이 더 이상 충족될 수 없을 때 깨어날 수 있는데, 그 것은 기한이 이미 경과되었거나 사용효율의 잔여시간이 기한까지의 시간보다 많기 때문이다.
용어해설
승인제어 새로운 작업이 실행되는 것이 허용될 것인지를 결정하는 프로세스.
비주기적인 작업 고유주기를 갖지 않는 작업. 예를 들어, 짧은 이용자 명령 요구들을 실행하는 작업.
캘리브레이션 루프 얼마만큼의 프로세서 사용효율을 요구하는지를 결정하기 위해 실행되는 자원목록에 정해진 한 세트의 반복적인 기능. 캘리브레이션 루프의 결과는 자원목록 엔트리를 채우기 위해 이용될 수 있다.
문맥전환 - 프로세서 상에서 실행중인 작업이 하나로부터 다른 것으로 변경되는 때.
EDF - Earliest Deadline First 가장 빠른 기한을 갖는 실행 대기행렬 상의 작업이 차기를 실행하게 선택되는 스케줄링 방침. 단순한 경우에, 이 알고리즘은 어떤 방법에 의해서는 계획(schedule)할 수 있는 어떤 작업설정이든 계획할 수 있는 것으로 증명되어 있다.
예외 역외통지(out-of-band notification). 예외가 수신되면, 작업 PC는 그 예외처리기로 설정된다.
교부 (반복적인) 시간주기 상의 시간의 양도. 예를 들어, 매 30 밀리초 마다 프로세서의 10 밀리초.
교부설정 시스템에 대한 진입이 승인된 모든 작업에 대한 교부의 설정.
최소 엔트리 - 어떤 작업의 자원목록에서 최소속도의 사용효율을 갖는 엔트리.
최선 엔트리 - 어떤 작업의 자원목록에서 최대속도의 사용효율을 갖고, 이용자에게 최고품질의 서비스를 제공하는 엔트리.
주기의 시작 어떤 주기적인 작업에 대한 차기 주기의 시작.
주기의 끝 현재의 교부가 만료되는 시각.
방침박스 - 작업의 오더링 및 이용자가 요구하는 서비스레벨을 회복시키는 기능. 시스템이 오버로드상태에 있을 때, 어떤 작업이 어떤 서비스품질레벨에서 실행되어야 하는지를 결정하기 위해 이용된다.
선취 프로세서가 현재 실행중인 작업으로부터 취해져서 다른 작업으로 주어질 때, 실행중이었던 작업은 선취되었다고 말해지고, 프로세서로부터 그 작업을 제거하는 조치를 선취라고 칭한다.
서비스품질(QOS: Quality of Service) 응용프로그램으로부터 제공되는 품질의 레벨. 응용프로그램이 로드를 줄일 때, 응용프로그램은 더 낮은 서비스품질을 제공한다.
정지상태작업 시스템에 대한 진입이 승인되어 있지만 현재 계획(schedule)되기에 적합하지 못한 작업. 정지상태작업은 그 주기가 주어져 있다. 그 것이 깨어나면, 새로운 교부설정이 계산되어야 하지만, 승인제어가 행해질 필요는 없다.
자원목록 주어진 작업에 대해 의미심장하고 유용한 주기/사용효율 조합을 규정한 명세. Used to manage 승인제어 및 오버로드 상태에서의 로드감축을 관리하기 위해 이용된다.
자원관리자 시스템의 작업들에 대해 시간을 배분하는 것을 담당하는 코드. 방침에 대해서는 방침박스가 조회된다. 자원관리자는 승인제어 및 교부설정을 결정하는 것을 담당한다.
스케줄러 - 어떤 미리 정해진 작업설정이 차기에 실행되어야 하는지를 선택하고 프로세서 사용효율 교부를 적용하는 것을 담당하는 기능.
셋톱박스 이용자 인터페이스를 가질 것이고 이용가능한 매개장치를 만드는 PC가 아닌 비분산적 시스템. 셋톱은 TV 세트의 상부에 있는 것을 말한다.
산발성 서버(Sporadic Server) 주기적으로 실행하는 작업. 그 것은 원래 비주기적인 작업을 위해 실행시간을 제공한다.
작업 이용자를 위해 일을 하는 단일스트림의 실행. 예를 들어 다중작업 사이의 동기화가 그 주기성에 의해 관리될지라도, MPEG 디코딩에 관련된 다중작업이 있을 수 있다.
양보 어떤 작업이 프로세서를 포기하고, 불활성 상태로 들어갈 때.
위에서 설명한 실시예는 다만, 이 발명을 예시하기 위한 것일 뿐이다. 많은 선택적 실시예가 있을 수 있다. 이 발명은 첨부된 특허청구범위에 의해 정의된다.

Claims (51)

  1. 컴퓨터시스템에서 작업이 프로세서에서 수행되는 것을 승인하는 방법에 있어서,
    적어도 3개 이상의 작업이 존재하고, 각각의 작업은 상기 프로세서 상에서의 시간을 이용함에 있어서 적어도 하나 이상의 고이용레벨을 가지며, 상기 고이용레벨은 고품질의 성능을 제공하고, 상기 3개 이상의 작업들 중의 적어도 2개 이상의 작업들은 상기 프로세서 상에서의 시간을 이용함에 있어서 저이용레벨을 요구하는 하나의 저이용레벨을 부가적으로 가지며, 상기 저이용레벨은 저품질의 성능을 제공하는 조건에서, 상기 3개 이상의 작업들로부터 상기 프로세서 상에서의 실행을 위한 요구를 수신하는 단계와,
    상기 3개 이상의 작업들 중에서 적어도 2개 이상이지만 전부는 아닌 작업을 선택하고, 선택된 2개 이상의 작업들은 상기 하나의 저이용레벨을 부가적으로 갖는 상기 2개 이상의 작업들 중에서 적어도 하나 이상의 작업을 포함하며, 상기 선택된 2개 이상의 작업들은 그 작업들의 저이용레벨의 합이 상기 프로세서 이용가능시간의 전체를 초과하지 않고, 선택되지 않은 나머지 작업들 중의 어느 하나라도 그 작업의 저이용레벨에서 처리하는 것을 승인하기에는 상기 프로세서 이용가능시간 중 비어 있는 시간이 불충분한 조건에서, 상기 선택된 2개 이상의 작업들의 처리를 승인하는 단계 및,
    상기 나머지 작업들의 처리의 승인을 배제하는 단계를 포함하는 것을 특징으로 하는 작업수행승인방법.
  2. 제1항에 있어서,
    상기 승인단계에서 승인된 모든 작업들을 그 작업들의 고이용레벨에서 실행하기에는 상기 프로세서 이용가능시간이 충분하지 못한 조건에서,
    상기 승인단계에서 승인된 작업들 중 적어도 하나 이상의 작업을 그 작업의 저이용레벨에서 실행하면서 상기 승인된 작업들의 실행을 개시하는 단계 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 저이용레벨에서 실행하던 어떤 작업을 그 작업의 고이용레벨에서 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행을 그 작업의 고이용레벨에서의 실행으로 전환하는 단계를 부가적으로 포함하는 것을 특징으로 하는 작업수행승인방법.
  3. 제1항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 단계 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 이전에 승인되지 않았지만 실행을 요구하는 어떤 작업을 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행이 승인되는 것을 배제하는 단계를 부가적으로 포함하는 것을 특징으로 하는 작업수행승인방법.
  4. 제1항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 단계 및,
    이미 배제된 작업이 다시 승인을 요구하면, 상기 승인된 작업들 중 하나 이상이 종료되고, 나머지 승인된 작업들의 저이용레벨의 합이 충분히 작아서 상기 프로세서 이용가능시간을 초과함이 없이 상기 이미 배제된 작업의 실행이 승인될 수 있지 않는 한, 해당 작업의 승인을 다시 배제하는 단계를 부가적으로 포함하는 것을 특징으로 하는 작업수행승인방법.
  5. 제1항에 있어서,
    상기 승인된 작업들 중 적어도 하나 이상이 적어도 3개 이상의 이용레벨을 갖는 것을 특징으로 하는 작업수행승인방법.
  6. 컴퓨터시스템에서 프로세서 자원분배기가 작업들에 대해 프로세서 이용가능시간을 할당하는 방법에 있어서,
    프로세서 시간에 대한 2개 이상의 작업요구가 존재하고, 적어도 하나 이상의 상기 작업요구는 해당 작업요구와 관련된 2단 레벨 작업 (bi-level task)을 위한 2개 이상의 프로세서 이용레벨의 명세를 포함하며, 상기 2개 이상의 이용레벨의 각각은 실시간분할을 위해 사이클 길이에 의해 정의되고, 각각의 사이클 기간동안 각각의 사이클의 일부의 명세가 상기 2단 레벨 작업에 할당되는 조건에서, 상기 2개 이상의 작업요구를 수신하고,
    상기 2개 이상의 작업요구에 기초해서 2개 이상의 작업의 각각에 대해 프로세서 시간을 할당하고 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 하나를 선택함으로써 상기 2단 레벨 작업의 각각에 대해 프로세서 시간을 할당하는 것을 특징으로 하는 시간할당방법.
  7. 제6항에 있어서,
    상기 2개 이상의 레벨의 각각은 상기 2단 레벨 작업을 위한 회수기능과 관련되어 있고, 상기 작업은 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 상기 선택된 하나와 관련된 회수기능을 이용하여 호출되는 것을 특징으로 하는 시간할당방법.
  8. 제6항에 있어서,
    상기 선택은 프로세서 이용가능시간에 기초하고, 선택된 레벨은 프로세서 이용가능시간 내에 수용될 수 있는 각각의 사이클의 최대부분인 레벨인 것을 특징으로 하는 시간할당방법.
  9. 컴퓨터시스템에서 적어도 2개 이상의 작업 사이의 프로세서 이용가능시간의 할당을 조정하는 방법에 있어서,
    상기 프로세서 이용가능시간을 제1 시리즈의 주기들로 분할하고, 상기 프로세서 상에서 제1 작업을 개시하며, 상기 제1 작업에 대해 상기 제1 시리즈의 주기들의 각각의 일부를 할당하는 제1 단계와,
    상기 프로세서 이용가능시간을 상기 제1 시리즈의 주기들과 같거나 다를 수 있는 제2 시리즈의 주기들로 분할하고, 상기 제2 시리즈의 주기들의 고이용레벨 또는 저이용레벨에서 실행할 수 있고 상기 저이용레벨은 상기 고이용레벨보다 낮은 프로세서 시간을 이용하고 상기 고이용레벨보다 저품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며, 상기 제2 작업에 대해 상기 제2 시리즈의 주기의 각각의 일부를 할당하는 제2 단계 및,
    상기 제1 작업이 한 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 제2 작업을 저이용레벨로 전환하고, 상기 프로세서 상에서 상기 제1 작업에 의해 이용되게 할당된 시간의 적어도 일부를 재할당하는 제3 단계를 포함하는 것을 특징으로 하는 시간할당조정방법.
  10. 제9항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 것을 특징으로 하는 시간할당조정방법.
  11. 제9항에 있어서,
    상기 제1 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 제1 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환 및 재할당은 상기 제1 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 것을 특징으로 하는 시간할당조정방법.
  12. 제11항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 것을 특징으로 하는 시간할당조정방법.
  13. 제9항에 있어서,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제3 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 제2 단계와 제3단계의 사이에서 개시하는 제4 단계 및,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제3 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 제3 단계에서 상기 제3 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 제5 단계를 부가적으로 포함하는 것을 특징으로 하는 시간할당조정방법.
  14. 컴퓨터시스템에서 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 방법에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 한 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 주기들의 각각의 일부를 상기 작업에 할당하고,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 작업을 그 저이용레벨로 전환하는 것을 특징으로 하는 시간이용조정방법.
  15. 제14항에 있어서,
    상기 작업이 다음의 주기 동안에 그 저이용레벨로 전환되는 것을 특징으로 하는 시간이용조정방법.
  16. 제14항에 있어서,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환은 상기 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 것을 특징으로 하는 시간이용조정방법.
  17. 컴퓨터시스템에서 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 방법에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제1 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 주기들의 각각의 일부를 상기 제1 작업에 할당하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제1 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 상기 제1 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 것을 특징으로 하는 시간이용조정방법.
  18. 컴퓨터시스템에서 실행되어 프로세서 상에서 작업이 수행되는 것을 승인하는 컴퓨터프로그램이 기록된 컴퓨터용 기록매체에 있어서,
    적어도 3개 이상의 작업이 존재하고, 각각의 작업은 상기 프로세서 상에서의 시간을 이용함에 있어서 적어도 하나 이상의 고이용레벨을 가지며, 상기 고이용레벨은 고품질의 성능을 제공하고, 상기 3개 이상의 작업들 중의 적어도 2개 이상의 작업들은 상기 프로세서 상에서의 시간을 이용함에 있어서 저이용레벨을 요구하는 하나의 저이용레벨을 부가적으로 가지며, 상기 저이용레벨은 저품질의 성능을 제공하는 조건에서, 상기 3개 이상의 작업들로부터 상기 프로세서 상에서의 실행을 위한 요구를 수신하는 단계와,
    상기 3개 이상의 작업들 중에서 적어도 2개 이상이지만 전부는 아닌 작업을 선택하고, 선택된 2개 이상의 작업들은 상기 하나의 저이용레벨을 부가적으로 갖는 상기 2개 이상의 작업들 중에서 적어도 하나 이상의 작업을 포함하며, 상기 선택된 2개 이상의 작업들은 그 작업들의 저이용레벨의 합이 상기 프로세서 이용가능시간의 전체를 초과하지 않고, 선택되지 않은 나머지 작업들 중의 어느 하나라도 그 작업의 저이용레벨에서 처리하는 것을 승인하기에는 상기 프로세서 이용가능시간 중 비어 있는 시간이 불충분한 조건에서, 상기 선택된 2개 이상의 작업들의 처리를 승인하는 단계 및,
    상기 나머지 작업들의 처리의 승인을 배제하는 단계를 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  19. 제18항에 있어서,
    상기 승인단계에서 승인된 모든 작업들을 그 작업들의 고이용레벨에서 실행하기에는 상기 프로세서 이용가능시간이 충분하지 못한 조건에서,
    상기 승인단계에서 승인된 작업들 중 적어도 하나 이상의 작업을 그 작업의 저이용레벨에서 실행하면서 상기 승인된 작업들의 실행을 개시하는 단계 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 저이용레벨에서 실행하던 어떤 작업을 그 작업의 고이용레벨에서 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행을 그 작업의 고이용레벨에서의 실행으로 전환하는 단계를 부가적으로 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  20. 제18항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 단계 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 이전에 승인되지 않았지만 실행을 요구하는 어떤 작업을 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행이 승인되는 것을 배제하는 단계를 부가적으로 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  21. 제18항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 단계 및,
    이미 배제된 작업이 다시 승인을 요구하면, 상기 승인된 작업들 중 하나 이상이 종료되고, 나머지 승인된 작업들의 저이용레벨의 합이 충분히 작아서 상기 프로세서 이용가능시간을 초과함이 없이 상기 이미 배제된 작업의 실행이 승인될 수 있지 않는 한, 해당 작업의 승인을 다시 배제하는 단계를 부가적으로 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  22. 제18항에 있어서,
    상기 승인된 작업들 중 적어도 하나 이상이 적어도 3개 이상의 이용레벨을 갖는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  23. 컴퓨터시스템에서 실행되어 프로세서 자원분배기가 작업들에 대해 프로세서 이용가능시간을 할당하는 컴퓨터프로그램이 기록된 컴퓨터용 기록매체에 있어서,
    프로세서 시간에 대한 2개 이상의 작업요구가 존재하고, 적어도 하나 이상의 상기 작업요구는 해당 작업요구와 관련된 2단 레벨 작업 (bi-level task)을 위한 2개 이상의 프로세서 이용레벨의 명세를 포함하며, 상기 2개 이상의 이용레벨의 각각은 실시간분할을 위해 사이클 길이에 의해 정의되고, 각각의 사이클 기간동안 각각의 사이클의 일부의 명세가 상기 2단 레벨 작업에 할당되는 조건에서, 상기 2개 이상의 작업요구를 수신하고,
    상기 2개 이상의 작업요구에 기초해서 2개 이상의 작업의 각각에 대해 프로세서 시간을 할당하고 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 하나를 선택함으로써 상기 2단 레벨 작업의 각각에 대해 프로세서 시간을 할당하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  24. 제23항에 있어서,
    상기 2개 이상의 레벨의 각각은 상기 2단 레벨 작업을 위한 회수기능과 관련되어 있고, 상기 작업은 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 상기 선택된 하나와 관련된 회수기능을 이용하여 호출되는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  25. 제23항에 있어서,
    상기 선택은 프로세서 이용가능시간에 기초하고, 선택된 레벨은 프로세서 이용가능시간 내에 수용될 수 있는 각각의 사이클의 최대부분인 레벨인 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  26. 컴퓨터시스템에서 실행되어 적어도 2개 이상의 작업 사이의 프로세서 이용가능시간의 할당을 조정하는 컴퓨터프로그램이 기록된 컴퓨터용 기록매체에 있어서,
    상기 프로세서 이용가능시간을 제1 시리즈의 주기들로 분할하고, 상기 프로세서 상에서 제1 작업을 개시하며, 상기 제1 작업에 대해 상기 제1 시리즈의 주기들의 각각의 일부를 할당하는 제1 단계와,
    상기 프로세서 이용가능시간을 상기 제1 시리즈의 주기들과 같거나 다를 수 있는 제2 시리즈의 주기들로 분할하고, 상기 제2 시리즈의 주기들의 고이용레벨 또는 저이용레벨에서 실행할 수 있고 상기 저이용레벨은 상기 고이용레벨보다 낮은 프로세서 시간을 이용하고 상기 고이용레벨보다 저품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며, 상기 제2 작업에 대해 상기 제2 시리즈의 주기의 각각의 일부를 할당하는 제2 단계 및,
    상기 제1 작업이 한 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 제2 작업을 저이용레벨로 전환하고, 상기 프로세서 상에서 상기 제1 작업에 의해 이용되게 할당된 시간의 적어도 일부를 재할당하는 제3 단계를 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  27. 제26항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  28. 제26항에 있어서,
    상기 제1 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 제1 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환 및 재할당은 상기 제1 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  29. 제28항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  30. 제26항에 있어서,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제3 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 제2 단계와 제3단계의 사이에서 개시하는 제4 단계 및,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제3 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 제3 단계에서 상기 제3 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 제5 단계를 부가적으로 포함하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  31. 컴퓨터시스템에서 실행되어 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 컴퓨터프로그램이 기록된 컴퓨터용 기록매체에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 한 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 주기들의 각각의 일부를 상기 작업에 할당하고,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 작업을 그 저이용레벨로 전환하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  32. 제31항에 있어서,
    상기 작업이 다음의 주기 동안에 그 저이용레벨로 전환되는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  33. 제31항에 있어서,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환은 상기 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  34. 컴퓨터시스템에서 실행되어 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 컴퓨터프로그램이 기록된 컴퓨터용 기록매체에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제1 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 주기들의 각각의 일부를 상기 제1 작업에 할당하고,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제1 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 상기 제1 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 방법을 컴퓨터시스템이 수행하게 하는 것을 특징으로 하는 컴퓨터용 기록매체.
  35. 컴퓨터시스템에서 작업이 프로세서에서 수행되는 것을 승인하는 장치에 있어서,
    적어도 3개 이상의 작업이 존재하고, 각각의 작업은 상기 프로세서 상에서의 시간을 이용함에 있어서 적어도 하나 이상의 고이용레벨을 가지며, 상기 고이용레벨은 고품질의 성능을 제공하고, 상기 3개 이상의 작업들 중의 적어도 2개 이상의 작업들은 상기 프로세서 상에서의 시간을 이용함에 있어서 저이용레벨을 요구하는 하나의 저이용레벨을 부가적으로 가지며, 상기 저이용레벨은 저품질의 성능을 제공하는 조건에서, 상기 3개 이상의 작업들로부터 상기 프로세서 상에서의 실행을 위한 요구를 수신하는 수단과,
    상기 3개 이상의 작업들 중에서 적어도 2개 이상이지만 전부는 아닌 작업을 선택하고, 선택된 2개 이상의 작업들은 상기 하나의 저이용레벨을 부가적으로 갖는 상기 2개 이상의 작업들 중에서 적어도 하나 이상의 작업을 포함하며, 상기 선택된 2개 이상의 작업들은 그 작업들의 저이용레벨의 합이 상기 프로세서 이용가능시간의 전체를 초과하지 않고, 선택되지 않은 나머지 작업들 중의 어느 하나라도 그 작업의 저이용레벨에서 처리하는 것을 승인하기에는 상기 프로세서 이용가능시간 중 비어 있는 시간이 불충분한 조건에서, 상기 선택된 2개 이상의 작업들의 처리를 승인하는 수단 및,
    상기 나머지 작업들의 처리의 승인을 배제하는 수단을 포함하는 것을 특징으로 하는 작업수행승인장치.
  36. 제35항에 있어서,
    상기 승인수단에서 승인된 작업들 중 적어도 하나 이상의 작업을 그 작업의 저이용레벨에서 실행하면서 상기 승인된 작업들의 실행을 개시하는 수단 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 저이용레벨에서 실행하던 어떤 작업을 그 작업의 고이용레벨에서 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행을 그 작업의 고이용레벨에서의 실행으로 전환하는 수단을 부가적으로 포함하는 것을 특징으로 하는 작업수행승인장치.
  37. 제35항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 수단 및,
    상기 승인된 작업들 중 하나 이상이 실행요구를 일시적으로 중지하고, 상기 프로세서가 이전에 승인되지 않았지만 실행을 요구하는 어떤 작업을 실행하기에 충분한 비어 있는 시간을 가질 때, 해당 작업의 실행이 승인되는 것을 배제하는 수단을 부가적으로 포함하는 것을 특징으로 하는 작업수행승인장치.
  38. 제35항에 있어서,
    상기 승인된 작업들의 실행을 개시하는 수단 및,
    이미 배제된 작업이 다시 승인을 요구하면, 상기 승인된 작업들 중 하나 이상이 종료되고, 나머지 승인된 작업들의 저이용레벨의 합이 충분히 작아서 상기 프로세서 이용가능시간을 초과함이 없이 상기 이미 배제된 작업의 실행이 승인될 수 있지 않는 한, 해당 작업의 승인을 다시 배제하는 수단을 부가적으로 포함하는 것을 특징으로 하는 작업수행승인장치.
  39. 제35항에 있어서,
    상기 승인된 작업들 중 적어도 하나 이상이 적어도 3개 이상의 이용레벨을 갖는 것을 특징으로 하는 작업수행승인장치.
  40. 컴퓨터시스템에서 프로세서 자원분배기가 작업들에 대해 프로세서 이용가능시간을 할당하는 장치에 있어서,
    프로세서 시간에 대한 2개 이상의 작업요구가 존재하고, 적어도 하나 이상의 상기 작업요구는 해당 작업요구와 관련된 2단 레벨 작업 (bi-level task)을 위한 2개 이상의 프로세서 이용레벨의 명세를 포함하며, 상기 2개 이상의 이용레벨의 각각은 실시간분할을 위해 사이클 길이에 의해 정의되고, 각각의 사이클 기간동안 각각의 사이클의 일부의 명세가 상기 2단 레벨 작업에 할당되는 조건에서, 상기 2개 이상의 작업요구를 수신하는 수단과,
    상기 2개 이상의 작업요구에 기초해서 2개 이상의 작업의 각각에 대해 프로세서 시간을 할당하고 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 하나를 선택함으로써 상기 2단 레벨 작업의 각각에 대해 프로세서 시간을 할당하는 수단을 포함하는 것을 특징으로 하는 시간할당장치.
  41. 제40항에 있어서,
    상기 2개 이상의 레벨의 각각은 상기 2단 레벨 작업을 위한 회수기능과 관련되어 있고, 상기 작업은 상기 정의된 사이클 길이들과 각각의 사이클의 부분들 중 상기 선택된 하나와 관련된 회수기능을 이용하여 호출되는 것을 특징으로 하는 시간할당장치.
  42. 제40항에 있어서,
    상기 선택은 프로세서 이용가능시간에 기초하고, 선택된 레벨은 프로세서 이용가능시간 내에 수용될 수 있는 각각의 사이클의 최대부분인 레벨인 것을 특징으로 하는 시간할당장치.
  43. 컴퓨터시스템에서 적어도 2개 이상의 작업 사이의 프로세서 이용가능시간의 할당을 조정하는 장치에 있어서,
    상기 프로세서 이용가능시간을 제1 시리즈의 주기들로 분할하고, 상기 프로세서 상에서 제1 작업을 개시하며, 상기 제1 작업에 대해 상기 제1 시리즈의 주기들의 각각의 일부를 할당하는 제1 수단과,
    상기 프로세서 이용가능시간을 상기 제1 시리즈의 주기들과 같거나 다를 수 있는 제2 시리즈의 주기들로 분할하고, 상기 제2 시리즈의 주기들의 고이용레벨 또는 저이용레벨에서 실행할 수 있고 상기 저이용레벨은 상기 고이용레벨보다 낮은 프로세서 시간을 이용하고 상기 고이용레벨보다 저품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하며, 상기 제2 작업에 대해 상기 제2 시리즈의 주기의 각각의 일부를 할당하는 제2 수단 및,
    상기 제1 작업이 한 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 제2 작업을 저이용레벨로 전환하고, 상기 프로세서 상에서 상기 제1 작업에 의해 이용되게 할당된 시간의 적어도 일부를 재할당하는 제3 수단을 포함하는 것을 특징으로 하는 시간할당조정장치.
  44. 제43항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 것을 특징으로 하는 시간할당조정장치.
  45. 제43항에 있어서,
    상기 제1 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 제1 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환 및 재할당은 상기 제1 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 것을 특징으로 하는 시간할당조정장치.
  46. 제45항에 있어서,
    상기 제2 작업을 저이용레벨로 전환하는 것이 상기 제2 시리즈의 주기들 중 당시의 주기의 끝에서 이루어지고, 그 다음의 주기에서 유효하게 작용하는 것을 특징으로 하는 시간할당조정장치.
  47. 제43항에 있어서,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제3 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 제2 수단과 제3수단의 사이에서 개시하는 제4 수단 및,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제3 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 제3 수단에서 상기 제3 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 제5 수단을 부가적으로 포함하는 것을 특징으로 하는 시간할당조정장치.
  48. 컴퓨터시스템에서 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 장치에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하는 수단과,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 한 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하는 수단과,
    상기 주기들의 각각의 일부를 상기 작업에 할당하는 수단과,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하면, 상기 작업을 그 저이용레벨로 전환하는 수단을 포함하는 것을 특징으로 하는 시간이용조정장치.
  49. 제48항에 있어서,
    상기 작업이 다음의 주기 동안에 그 저이용레벨로 전환되는 것을 특징으로 하는 시간이용조정장치.
  50. 제48항에 있어서,
    상기 작업이 어떤 주기에서 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는지의 여부에 대한 결정은 상기 작업이 그 해당 주기에서 요구할 시간의 예측치에 기초하여 이루어지며, 전환은 상기 작업이 해당 주기에서 할당된 시간을 소진하기 전에 행해지는 것을 특징으로 하는 시간이용조정장치.
  51. 컴퓨터시스템에서 어떤 작업에 의한 프로세서 이용가능시간의 이용을 조정하는 장치에 있어서,
    상기 프로세서 시간을 한 시리즈의 주기들로 분할하는 수단과,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제1 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하는 수단과,
    상기 주기들의 각각의 일부를 상기 제1 작업에 할당하는 수단과,
    상기 프로세서 시간이용의 고이용레벨에서 실행할 때에는 고품질의 성능을 제공하며 상기 프로세서 시간이용의 저이용레벨에서 실행할 때에는 상기 고이용레벨보다 낮은 레벨로 프로세서 시간을 이용하고 상기 고이용레벨보다 낮은 품질의 성능을 제공하는 제2 작업을 상기 프로세서 상에서 상기 고이용레벨에서 실행하는 것을 개시하는 수단과,
    상기 제1 작업이 할당된 프로세서 시간보다 많은 프로세서 시간을 요구하는 경우에는 상기 제1 작업보다 상기 제2 작업이 우선해서 그 저이용레벨로 전환되게 미리 이루어진 선택에 기초해서 상기 제1 작업을 그 저이용레벨로 전환하기보다는 상기 제2 작업을 그 저이용레벨로 전환하는 수단을 포함하는 것을 특징으로 하는 시간이용조정장치.
KR1020007002305A 1997-09-04 1998-09-03 프로세서 자원분배기 및 방법 KR100625779B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/923,173 1997-09-04
US08/923,173 US6385638B1 (en) 1997-09-04 1997-09-04 Processor resource distributor and method

Publications (2)

Publication Number Publication Date
KR20010023653A true KR20010023653A (ko) 2001-03-26
KR100625779B1 KR100625779B1 (ko) 2006-09-20

Family

ID=25448239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007002305A KR100625779B1 (ko) 1997-09-04 1998-09-03 프로세서 자원분배기 및 방법

Country Status (7)

Country Link
US (1) US6385638B1 (ko)
EP (1) EP1010074A1 (ko)
JP (1) JP4174178B2 (ko)
KR (1) KR100625779B1 (ko)
AU (1) AU9222498A (ko)
TW (1) TW439031B (ko)
WO (1) WO1999012097A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100471746B1 (ko) * 2002-07-26 2005-03-16 재단법인서울대학교산학협력재단 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200168B1 (en) 1997-11-13 2007-04-03 Surf Communication Solutions Ltd. Stable operation of media gateway
US7805724B1 (en) * 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
EP0964333A1 (en) * 1998-06-10 1999-12-15 Sun Microsystems, Inc. Resource management
US7451447B1 (en) 1998-08-07 2008-11-11 Arc International Ip, Inc. Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls
US7451448B1 (en) 1998-08-28 2008-11-11 Oracle International Corporation Methods for selectively quiescing a computer system
US7020878B1 (en) * 1998-08-28 2006-03-28 Oracle International Corporation System for allocating resource using the weight that represents a limitation on number of allowance active sessions associated with each resource consumer group
US7526767B1 (en) * 1998-08-28 2009-04-28 Oracle International Corporation Methods for automatic group switching according to a resource plan
US6910210B1 (en) * 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
US7065762B1 (en) * 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
US6754690B2 (en) * 1999-09-16 2004-06-22 Honeywell, Inc. Method for time partitioned application scheduling in a computer operating system
US6779037B1 (en) * 1999-09-28 2004-08-17 Levan Roberto Djaparidze Method of obtaining optimum use of a shared transmission medium for multimedia traffic
US6973653B1 (en) * 1999-10-21 2005-12-06 Sony Corporation Method for utilizing resource characterizations to optimize performance in an electronic device
US6978311B1 (en) * 2000-02-09 2005-12-20 Surf Communications Solutions, Ltd. Scheduling in a remote-access server
US6675229B1 (en) * 1999-11-29 2004-01-06 Lucent Technologies Inc. Methods and apparatus for providing quality of service for legacy applications
US6976258B1 (en) * 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6789101B2 (en) * 1999-12-08 2004-09-07 International Business Machines Corporation Automation system uses resource manager and resource agents to automatically start and stop programs in a computer network
US8429699B2 (en) 1999-12-14 2013-04-23 Arturo A. Rodriguez Systems and methods for resource-adaptive processing of scaled video and graphics
US6928646B1 (en) * 2000-02-02 2005-08-09 Sony Corporation System and method for efficiently performing scheduling operations in an electronic device
US6711607B1 (en) 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US20030014484A1 (en) * 2000-11-09 2003-01-16 Arnon Netzer Scheduling in a remote-access server
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) * 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6748593B1 (en) 2000-02-17 2004-06-08 International Business Machines Corporation Apparatus and method for starvation load balancing using a global run queue in a multiple run queue system
US6658449B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
JP4329208B2 (ja) * 2000-03-02 2009-09-09 ソニー株式会社 記録媒体の製造方法、記録媒体製造用原盤の製造方法、記録媒体の製造装置、および記録媒体製造用原盤の製造装置
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6799208B1 (en) * 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
US7058947B1 (en) 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
CN1316361C (zh) * 2000-06-27 2007-05-16 皇家菲利浦电子有限公司 确定一个进度表的方法、调度器和系统
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
EP1410199A2 (en) * 2000-11-06 2004-04-21 Koninklijke Philips Electronics N.V. A method and a system for allocation of a budget to a task
FR2818769B1 (fr) * 2000-12-21 2004-06-18 Eads Airbus Sa Procede et systeme d'exploitation temps reel multitaches
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
WO2002071218A2 (en) * 2001-03-05 2002-09-12 Koninklijke Philips Electronics N.V. Method of and system for withdrawing budget from a blocking task
US6963536B1 (en) * 2001-03-23 2005-11-08 Advanced Micro Devices, Inc. Admission control in a network device
US6954427B1 (en) 2001-03-28 2005-10-11 Advanced Micro Devices, Inc. Method and apparatus for performing priority-based admission control
US6785756B2 (en) * 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US7321568B2 (en) * 2001-06-01 2008-01-22 Texas Instruments Incorporated Realtime management of processing resources
US7191446B2 (en) * 2001-06-01 2007-03-13 Texas Instruments Incorporated Method for resource management in a real-time embedded system
US20030023660A1 (en) * 2001-06-01 2003-01-30 Bogdan Kosanovic Real-time embedded resource management system
GB2376542B (en) * 2001-06-15 2005-06-29 Ibm A method and system for scheduling execution of activities
US20030028583A1 (en) * 2001-07-31 2003-02-06 International Business Machines Corporation Method and apparatus for providing dynamic workload transition during workload simulation on e-business application server
US7170862B1 (en) * 2001-07-31 2007-01-30 Cisco Technology, Inc. Partitioning a network element into multiple virtual network elements
EP1449080A2 (en) * 2001-11-19 2004-08-25 Koninklijke Philips Electronics N.V. Method and system for allocating a budget surplus to a task
US7039772B1 (en) 2002-02-22 2006-05-02 Teja Technologies, Inc. System, method, and computer program product for processing reflective state machines
US7130936B1 (en) 2002-02-22 2006-10-31 Teja Technologies, Inc. System, methods, and computer program product for shared memory queue
US6985976B1 (en) 2002-02-22 2006-01-10 Teja Technologies, Inc. System, method, and computer program product for memory management for defining class lists and node lists for allocation and deallocation of memory blocks
US7320044B1 (en) 2002-02-22 2008-01-15 Arc International I.P., Inc. System, method, and computer program product for interrupt scheduling in processing communication
DE60318560T2 (de) * 2002-03-22 2009-01-08 Toyota Jidosha Kabushiki Kaisha, Toyota-shi Taskverwaltungseinrichtung und -verfahren , betriebsbeurteilungseinrichtung und verfahren und zu beurteilendes programm
JP3922070B2 (ja) * 2002-03-29 2007-05-30 株式会社デンソー 分散制御方法及び装置
US20070079077A1 (en) * 2002-04-29 2007-04-05 Baines Mandeep S System, method, and computer program product for shared memory queue
US7020877B2 (en) * 2002-05-20 2006-03-28 Dell Products L.P. Method to distribute periodic task workload
WO2004001597A2 (en) * 2002-06-20 2003-12-31 Matsushita Electric Industrial Co., Ltd. Multitask control device and music data reproduction device
US6987307B2 (en) * 2002-06-26 2006-01-17 Georgia Tech Research Corporation Stand-alone organic-based passive devices
KR100516929B1 (ko) * 2002-10-23 2005-09-23 한국과학기술정보연구원 작업관리 분석장치 및 방법과 그 프로그램을 저장한기록매체
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
AU2002361715A1 (en) 2002-11-12 2004-06-03 Zetera Corporation Electrical devices with improved communication
US7093256B2 (en) * 2002-12-13 2006-08-15 Equator Technologies, Inc. Method and apparatus for scheduling real-time and non-real-time access to a shared resource
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
US7134125B2 (en) * 2003-02-07 2006-11-07 Intel Corporation Method for firmware to provide seamless regulation of system resources and extend additional configuration methods for system resource management
US7594231B2 (en) 2003-07-10 2009-09-22 International Business Machines Corporation Apparatus and method for assuring recovery of temporary resources in a logically partitioned computer system
US7627506B2 (en) 2003-07-10 2009-12-01 International Business Machines Corporation Method of providing metered capacity of temporary computer resources
US8135795B2 (en) 2003-04-03 2012-03-13 International Business Machines Corporation Method to provide on-demand resource access
US7152145B2 (en) * 2003-04-23 2006-12-19 Hoseotelnet Co. Ltd. Method for optimizing system performance by transferring a stack in a real time operating system
US20040267897A1 (en) * 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US7493488B2 (en) 2003-07-24 2009-02-17 International Business Machines Corporation Method to disable on/off capacity in demand
US7877754B2 (en) 2003-08-21 2011-01-25 International Business Machines Corporation Methods, systems, and media to expand resources available to a logical partition
JP4057989B2 (ja) * 2003-09-26 2008-03-05 株式会社東芝 スケジューリング方法および情報処理システム
JP4682513B2 (ja) * 2003-12-05 2011-05-11 トヨタ自動車株式会社 タスク管理システム
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US7424003B2 (en) * 2004-03-08 2008-09-09 Surf Communication Solutions Multi-parameter scheduling in communication systems
JP4325466B2 (ja) * 2004-03-31 2009-09-02 トヨタ自動車株式会社 タスク実行システム
US8856793B2 (en) 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
US7844969B2 (en) * 2004-06-17 2010-11-30 Platform Computing Corporation Goal-oriented predictive scheduling in a grid environment
US20060037021A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation System, apparatus and method of adaptively queueing processes for execution scheduling
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor
US7788671B2 (en) * 2004-11-01 2010-08-31 International Business Machines Corporation On-demand application resource allocation through dynamic reconfiguration of application cluster size and placement
US20060150188A1 (en) * 2004-12-21 2006-07-06 Manuel Roman Method and apparatus for supporting soft real-time behavior
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
CA2594678A1 (en) * 2005-01-21 2006-07-27 Handshake Vr Inc. Haptic-visual scene development and deployment
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US8074223B2 (en) 2005-01-31 2011-12-06 International Business Machines Corporation Permanently activating resources based on previous temporary resource usage
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7493346B2 (en) * 2005-02-16 2009-02-17 International Business Machines Corporation System and method for load shedding in data mining and knowledge discovery from stream data
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US8195922B2 (en) * 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US7840676B2 (en) * 2007-01-30 2010-11-23 Hewlett-Packard Development Company, L.P. Method and system for shedding load in physiological signals processing
US8584131B2 (en) * 2007-03-30 2013-11-12 International Business Machines Corporation Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
FR2919083B1 (fr) * 2007-07-18 2014-11-21 Wavecom Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants
US20090100435A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Hierarchical reservation resource scheduling infrastructure
US8526460B2 (en) * 2008-10-01 2013-09-03 Harris Corporation Systems and methods for scheduling asynchronous tasks to residual channel space
US8181184B2 (en) * 2008-10-17 2012-05-15 Harris Corporation System and method for scheduling tasks in processing frames
JP5336331B2 (ja) * 2009-11-24 2013-11-06 株式会社デンソー 車載装置
TW201138372A (en) * 2010-04-29 2011-11-01 Hon Hai Prec Ind Co Ltd Master server and method for decoding multimedia files using the master server
KR20120067825A (ko) * 2010-12-16 2012-06-26 한국전자통신연구원 임베디드 리눅스를 위한 적응형 프로세스 스케쥴링 방법
US9086925B2 (en) * 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
KR101476789B1 (ko) * 2013-05-06 2014-12-26 (주)넥셀 프로세싱 장치 및 방법
US9612907B2 (en) * 2014-02-21 2017-04-04 Unisys Corporation Power efficient distribution and execution of tasks upon hardware fault with multiple processors
US11115174B2 (en) * 2014-07-01 2021-09-07 Ntt Docomo, Inc. Base station, user terminal, radio communication system, and communication control method
FR3032289B1 (fr) * 2015-02-02 2018-03-16 Morpho Procede de commande de deploiement d'un programme a executer dans un parc de machines
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
WO2021199607A1 (ja) * 2020-03-31 2021-10-07 日立Astemo株式会社 制御装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736318A (en) 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
JP2890569B2 (ja) * 1989-12-20 1999-05-17 富士ゼロックス株式会社 プロセス制御装置
JPH04171538A (ja) * 1990-11-06 1992-06-18 Nec Corp 繰返し型データ処理スケジューリング方式
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US5404516A (en) * 1992-12-18 1995-04-04 Hughes Aircraft Company System for allocating resources and method
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
JPH0954699A (ja) 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100471746B1 (ko) * 2002-07-26 2005-03-16 재단법인서울대학교산학협력재단 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법

Also Published As

Publication number Publication date
US6385638B1 (en) 2002-05-07
JP4174178B2 (ja) 2008-10-29
JP2001515242A (ja) 2001-09-18
TW439031B (en) 2001-06-07
KR100625779B1 (ko) 2006-09-20
AU9222498A (en) 1999-03-22
EP1010074A1 (en) 2000-06-21
WO1999012097A1 (en) 1999-03-11

Similar Documents

Publication Publication Date Title
KR100625779B1 (ko) 프로세서 자원분배기 및 방법
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
Buttazzo Rate monotonic vs. EDF: Judgment day
Nieh et al. A SMART scheduler for multimedia applications
US6779181B1 (en) Micro-scheduling method and operating system kernel
RU2481618C2 (ru) Иерархическая инфраструктура планирования резервирования ресурсов
Molano et al. Real-time filesystems. Guaranteeing timing constraints for disk accesses in RT-Mach
US20020073129A1 (en) Integrated multi-component scheduler for operating systems
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
Garcia-Valls et al. Real-time reconfiguration in multimedia embedded systems
Lin et al. A soft real-time scheduling server on the Windows NT
US8640131B2 (en) Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution
JP2001195268A (ja) サービスレベルによる資源割当方式
JP5299869B2 (ja) コンピュータマイクロジョブ
JP2007512592A (ja) 制限されたバケット使用方法及びシステム
KR100471746B1 (ko) 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
CN114035926A (zh) 应用线程调度方法、装置、存储介质及电子设备
GB2367913A (en) Processor resource scheduler
JP2001142723A (ja) 資源配分方法、計算機システム及び記録媒体
Baker-Harvey ETI resource distributor: Guaranteed resource allocation and scheduling in multimedia systems
Nutt et al. Dynamically negotiated resource management for virtual environment applications
WO2021129917A1 (en) Method for allocating processor resource, computing unit and video surveillance arrangement
Taranovsky CPU Scheduling in Multimedia Operating Systems
CN113946410A (zh) 任务调度方法和装置、电子设备以及计算机可读存储介质
Talia et al. Preemption and Share Control in Parallel Grid Job Scheduling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee