KR19980086596A - 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링 - Google Patents

컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링 Download PDF

Info

Publication number
KR19980086596A
KR19980086596A KR1019980013221A KR19980013221A KR19980086596A KR 19980086596 A KR19980086596 A KR 19980086596A KR 1019980013221 A KR1019980013221 A KR 1019980013221A KR 19980013221 A KR19980013221 A KR 19980013221A KR 19980086596 A KR19980086596 A KR 19980086596A
Authority
KR
South Korea
Prior art keywords
job
class
goal
time
resource
Prior art date
Application number
KR1019980013221A
Other languages
English (en)
Inventor
로저 엘드레드 호크
마크 스티븐 스퀼란트
리아나 리요우 퐁
Original Assignee
제프리 엘. 포맨
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제프리 엘. 포맨, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 제프리 엘. 포맨
Publication of KR19980086596A publication Critical patent/KR19980086596A/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

작업이 등급(class)으로 그룹화(grouping)되는 컴퓨터 시스템에서 자원에 의해 실행되는 작업을 스케쥴링(scheduling)하는 방법이 개시된다. 자원의 수행(attention)을 경쟁하는 작업 등급을 계층 구조로 배열한다. 각 작업 등급은 처리 시간이 이용 가능해지면 자원에 의해 작업 등급이 선택되는 시점을 제어하는 시간 함수값을 갖는다. 계층 구조의 특정한 레벨내에서, 하나 이상의 시간 근거 함수에 의해 스케쥴링 우선순위가 정의되고, 이들 각각은 일정하거나 동적으로 변할 수 있다. 일정한 시간 근거의 함수가 사용될 때, 각 작업 등급은 시간에 따라 고정되게 유지되는 스케쥴 값을 갖는다. 동적인 시간 근거의 함수가 사용될 때, 작업 등급 시간 함수값은 작업 등급이 자원을 획득하는 타이밍을 변경하도록 수정된다.

Description

컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링
본 발명은 일반적으로 컴퓨터 시스템 내의 자원의 스케쥴링(scheduling)에 관한 것이다.
자원 스케쥴링의 일반적인 목적은 타스크들에 의한 자원의 이용 또는 자원으로의 액세스를 순서화하여 일단의 시스템-레벨 및/또는 사용자-레벨의 목표를 만족시키는 것이다. 예를 들면, 이러한 목표에는 여러 다른 종류 (즉, 등급)의 태스크간의 자원 사용 목표 뿐만 아니라, 다른 태스크 등급간의 대기/응답 시간 목표를 만족시키고, 태스크 등급 내에서 그리고 태스크 등급간에 예측 가능한 (즉, 낮은 편차의) 실행을 제공하고, 공정한 방법으로 자원을 할당하고, 또한 긴 사용/유지(usage/holding) 시간을 갖는 태스크에 비해 짧은 자원 사용/유지 시간을 갖는 태스크를 선호하는 것 등이 포함된다.
이들 대부분의 스케쥴링 목적은 종종 상충되므로, 자원 스케쥴링을 복잡한 설계 문제로 만들게 된다. 이러한 복잡성이 주어지면, 많은 스케쥴링 알고리즘은 상기의 목표 중 일부만을 만족시키도록 설계된다. 이들 방법은 전형적으로 의도된 범위 내에서만 유효하여, 때로 제한적으로 성공되거나 다른 요구 조건을 갖는 시스템 환경에서는 전혀 실행되지 않는다. 즉, 스케쥴링 및 디스패칭(dispatching) 매개변수를 고객 작업량의 큰 변화에 따라 수동적으로 조정하여야 하는 시스템을 찾는 것은 특이한 것이 아니다. 이러한 요구조건은 바람직하지 않은 복잡성 및 오버헤드(overhead)를 증가시킨다. 따라서, 주요한 설계 목표는, 다수의 다양한 스케쥴링 목표를 지원하는 것에 부가하여, 상기 동시 목표에 대한 바람직한 실행 요구조건을 성취하기 위해 자원 할당에 대한 효과적인 제어를 제공하는 것이다.
도 1은 컴퓨터나 컴퓨터 시스템 내의 소정의 자원을 액세스하기 위해 경쟁하는 작업 등급들의 계층 구조를 도시하는 도면.
도 2는 본 발명에 따라 동적으로 변하는 시간 근거 함수(time-based function)를 포함하는 한 쌍의 서브그룹을 위해 비례적인 사용 및 응답 시간 할당을 제공하는 계층 구조를 도시하는 도면.
도 3a는 컴퓨터의 운영 체계 내에서 지지되는 메커니즘을 포함한 본 발명의 스케쥴러(scheduler) 메커니즘의 기본 동작을 설명하기 위한 도면.
도 3b는 스케쥴러 메커니즘이 운영 체계의 종속물로서 지지될 때 상기 스케쥴러 메커니즘의 기본적인 동작을 설명하기 위한 도면.
도 4는 스케쥴링 메커니즘의 그룹 선택 루틴(group selection routine)을 설명하는 흐름도.
도 5는 등급 선택 루틴을 설명하는 흐름도.
도 6은 등급 업데이트 루틴을 설명하는 흐름도.
도 7은 작업 입력/복귀 루틴을 설명하는 흐름도.
도 8은 이력(history) 업데이트 루틴을 설명하는 흐름도.
도 9a 및 도 9b는 본 발명에 따라 작업 등급이 스케쥴링되는 방법을 도시하는 사용 및 응답 모드 스케쥴링 목표에 대한 예시적인 그래프.
* 도면의 주요부분에 대한 부호의 설명
14 : 자원(프로세서) 40 : 컴퓨터 시스템
42 : 운영 체계 44 : 메모리
46 : 스케쥴러 48 : 작업 대기열
본 발명의 주요 목적은 컴퓨터 시스템의 단일화되고 통합된 스케쥴링 메커니즘 내에서 자원을 사용하거나 액세스하기 위해 비례적인 사용 및 응답 시간 실행 목표를 성취하는 것이다.
본 발명의 또 다른 목적은, 한 모드가 다른 모드에 의해 강요된 작업 등급의 제한내에서 이루어지는 경우에서, 컴퓨터 자원, 예를 들면 프로세서의 사용 및 응답 모드 스케쥴링을 모두 제공하는 것이다.
본 발명의 또 다른 목적은 시스템이 수동적인 중재 없이 자원에 대한 작업량 요구조건에서의 변화에 동적으로 조절되도록 허용하는 것이다.
본 발명의 또 다른 목적은 자원 할당에 대한 일반적이고, 탄력적이고, 또한 적응성 있는 제어를 제공하여 다양한 스케쥴링 목표와 실행 요구조건을 성취하기 위한 것이다.
본 발명의 또 다른 목적은 일반적이고 탄력적인 방법으로, 또한 원하는 만큼의 레벨로 사용 및 응답 모드 목표의 조합을 지지하는 계층 구조를 사용해 컴퓨터내의 자원을 스케쥴링하는 것이다.
본 발명의 또 다른 목적은 자원 사용 및 응답 시간 목표, 적응성 피드백(feedback) 메커니즘 및 자원 요구자 등급의 표시에 의해 구동되는 일반적인 시간 근거의(time based) 기능을 사용해 자원을 스케쥴링하는 것이다.
본 발명의 또 다른 목적은, 시스템에서 하나의 등급이 다른 등급의 요구자에 대해 같은 실행 목표를 갖는 일군의 요구자로 구성되는 경우에, 이들 요구 등급에 대해 컴퓨터 자원을 스케쥴링하는 것이다.
본 발명의 또 다른 목적은 각 등급과 연관된 이동 메커니즘을 포함하는 작업 등급 스케쥴러를 제공하여, 일단의 사용 기준이 만족될 때, 자원에 부담(tax)을 주는 소정의 작업을 하위 우선 순위의 작업 등급으로 이동시키는 것이다.
본 발명의 또 다른 목적은 종래 기술에 의해 충분히 해결되지 않은 공지된 스케쥴링 문제점을 처리하여 해결하도록 단일화되고 통합된 본 발명의 방법을 사용하는 것이다.
본 발명에 따라, 시간 함수(time-functions)에 따라 통합된 구조 내의 작업 등급의 작업에 대해 자원 스케쥴링을 실행한다. 각 작업 등급은 이에 연관된 시간 함수를 갖고, 이 값은 자원이 이용가능하게 되어 작업 등급이 스케쥴링을 위해 선택될 때 동적으로 제어된다. 시간 함수는 일단의 변수 (또는 입력 매개변수) 값이 주어질 때 함수에 의해 복귀되는 일정값을 결정하는 공식과 같이, 일반적인 의미에서 임의의 시간 함수가 될 수 있다. 시간 매개변수는 등급당(per-class) 시간 함수값을 평가하는데 사용되는 자원 및 그밖의 자원들에 대한 시간 측정치가 될 수 있다. 바람직한 동작에서, 시간 함수는, 시간 매개변수가 등급에 의한 자원 또는 자원 집합의 사용 시간 측정치인 일반적인 사용 모드, 시간 매개변수가 등급에 의한 자원 또는 자원 집합의 대기 시간의 측정치인 일반적인 응답 모드, 또는 이러한 모드의 조합을 근거로 할 수 있다. 일반적인 순서 관계, 또는 선택 함수가 등급당 시간 함수값을 근거로 어느 등급이 선택되어야 하는가를 결정하는데 사용될 수 있다. 선택 함수의 예는 최대 및 최소 연산자를 포함하지만, 바람직한 동작에서 선택 함수는 전형적으로 고려되고 있는 시간 함수값 중 최소값을 선택하는 연산자이다. 일단 스케쥴링을 위한 작업 등급이 선택되면, 그 등급내의 작업은 실행을 위한 자원으로 제공된다.
본 발명의 스케쥴링 구조의 또 다른 특성에 따라, 자원 처리(attention)에 대해 경쟁하는 작업 등급을 일반적인 계층 구조로 배열한다. 계층 구조 중 각 레벨의 등급과 연관된 시간 함수는 같은 모드를 갖는다. 그러나, 각 모드는 바람직하게 동일하고 일관된 생존력을 갖는다. 더욱이, 시스템 관리자 및/또는 사용자는 원하는 방법으로 또한 원하는 만큼의 레벨로 작업 등급 및 각 레벨에서의 시간 함수 모드를 배열할 수 있다. 예를 들면, 계층 구조의 상단 레벨은 일단의 비례적인 사용 목표를 유지하기 위해 자원이 할당되는 수개의 작업 등급으로 구성될 수 있다. 이들 등급의 각각은 자원이 이용가능하게 될 때 스케쥴링을 위해 어느 등급이 선택되는가를 동적으로 제어하는 것과 연관되는 사용-모드 시간 함수를 갖는다. 계층 구조의 다른 레벨에서, 상단 레벨 등급의 각각은 일단의 응답 시간 목표를 유지하도록 자원이 할당되는 수개의 서브 등급을 포함할 수 있다. 이들 서브 등급 각각은 계층 구조의 상단 레벨에 있는 모등급이 선택될 때 스케쥴링을 위해 어느 서브 등급이 선택되는가를 동적으로 제어하는 것과 연관된 응답-모드 시간 함수를 갖는다. 이러한 계층 구조의 스케쥴링 구성은 전부 일반적인 것이고, 필요한 만큼 그리고 원하는 만큼의 레벨로 재귀적으로 정의될 수 있다(recursively defined).
본 발명의 또 다른 특성에 따라, 스케쥴링 계층 구조의 각 레벨에 있는 작업 등급의 집합은 작업 등급의 그룹으로 나뉘며, 제1 그룹내의 모든 등급이 비어있지 않으면 다른 그룹내의 작업 등급은 자원으로의 억세스에 고려되지 않는 점에서, 제1 그룹이 다른 모든 그룹에 비해 절대적인 우선순위를 갖게 된다. 제2 작업 등급 그룹은 제1 작업 등급 그룹을 제외한 다른 모든 그룹에 비해 절대적인 우선순위를 갖고, 나머지 작업 등급 그룹에 대해서도 유사한 절대 우선순위 순서가 정의된다. 각 그룹내의 등급에 대한 시간 함수는 일정하거나 (즉, 시간에 따라 변하지 않거나), 사용 또는 응답 모드에 따라 동적으로 변하는 점에서 유사한 형태를 갖는다. 예를 들면, 제1 작업 등급 그룹은 높은 우선순위의 짧은 시스템 작업, 대화식 업무 (여기서는 실질적인 아이들(idle) 주기 사이에 적은 양의 자원 사용만이 발생한다) 및 다른 등급의 업무에 비해 절대적인 우선순위를 갖는 실시간 제한을 포함하는 작업을 구비할 수 있다.
한 바람직한 실시예에서는 바람직하게 계층 구조의 상단 레벨에서 우선 그룹화된 작업 등급을 계층 구조 중 임의의 레벨 또는 레벨의 조합에서 사용하도록 의도된다. 그러나, 본 발명은 스케쥴링 계층 구조와 함께 작업 등급 그룹의 일반적인 사용을 포함한다.
본 발명의 스케쥴링 구조의 특성에는 양호하게 수개의 적응성 피드백 메커니즘이 있다. 이러한 기법 중 한가지는 자원 사용에서의 변화, 작업의 혼합, 또는 다른 트리거(trigger)나 사건에 따라 시간 함수를 적응성있게 조절하는 것을 포함한다. 또 다른 기법은 자원의 사용시 계층 구조에서 작업을 한 등급으로부터 또 다른 등급으로 이동시키고, 시스템 관리자 및/또는 사용자에 의해 지정된 제한을 초과하고, 시스템 관리자나 사용자에 의해 미리 지정된 바와 같이, 충분히 긴 기간의 시간 동안 아이들 상태가 되면 작업을 원래 등급으로 복귀시키는 것을 포함한다.
상기는 보다 관련된 본 발명의 목적 및 특성 일부의 개요를 설명하였다. 이들 목적은 보다 뛰어난 본 발명의 특성 및 응용을 단순히 설명한 것으로 해석되어야 한다. 다른 많은 이로운 결과는 설명된 발명을 다른 방법으로 적용시키거나 설명될 바와 같이 본 발명을 수정함으로서 얻어질 수 있다. 따라서, 본 발명의 다른 목적 및 보다 완전한 이해는 다음에 이어지는 바람직한 실시예의 상세한 설명을 참고하여 이루어진다.
본 발명에 따르면, 등급은 일반적으로 시스템의 다른 등급의 요구자에 관하여 동일한 실행 목표를 갖는 요구자들의 그룹으로 구성된다. 일부 경우에서는 등급이 단 하나의 요구자만을 갖는다. 본 명세서에서, 요구자는 작업(job)으로 종종 언급되는데, 이는 소정의 스케쥴링 간격에서 자원으로의 억세스를 경쟁하는 일 요구를 의미한다. 다른 말로 하면, 컴퓨터 시스템에서는 작업이 요구자와 유사하다. 따라서, 각 작업 등급은 전형적으로 작업을 유지하거나 억세스하기 원하는 연관된 수의 작업을 포함한다. 작업은 시스템이나 사용자, 또는 이들의 조합에 의해 소정의 등급으로 지정된다. 작업 등급은 마찬가지로 시스템이나 사용자에 의해 지정된다. 여기서 사용되는 작업 등급은 하나 이상의 작업을 포함한다.
대표적인 실시예에서, 자원은 컴퓨터 또는 컴퓨터 시스템의 프로세서이다. 공지된 바와 같이, 프로세서는 단위 시간당 한정된 수의 계산 싸이클을 갖는다. 다른 많은 등급의 작업들이 프로세서로의 억세스를 원한다. 본 발명은 시스템-레벨 및/또는 사용자-레벨의 일단의 자원 소비 목표를 만족시키면서 효율적인 사용을 최대화하는 방식으로 다양한 요구 등급에 대해 프로세서를 스케쥴링한다.
본 발명에 따르면, 소비 목표는 일반적으로 사용과 응답의 두 종류이다. 사용이나 응답 모드만이 이후 설명되는 단일화되고 통합된 본 발명의 방법에 유리한 것은 아니며, 이해되는 바와 같이, 이 방법은 각 모드 및 이들 모드의 임의의 바람직한 조합의 기능적인 이점을 완전히 이용할 수 있도록 설계되어 있다. 따라서, 그 결과는 자원 스케쥴링에 대한 매우 섬세한 제어를 용이하게 하는 매우 확고한 스케쥴링 메커니즘이다. 사용 모드에서, 작업 등급 (또는 서브등급)에 대해 정의된 비례적 이용도 (또는 사용) 목표에 따라, 작업 등급 또는 (다중 레벨 실시예에서) 작업 등급 집합에 자원을 비례적으로 할당한다. 보여지는 바와 같이, 본 발명의 바람직한 실시예에서, 상기 비례적인 할당은 또한 각 작업 등급 (또는 작업 등급의 서브그룹화)에 의한 (이력을 근거로한 평균적인 의미에서의) 축적된 자원 이용도를 근거로 한다. 따라서, 일군의 작업 등급을 포함하는 단일 레벨 실시예의 경우에, (예를 들어) 등급 1은 자원의 60%를 수신할 수 있는 반면, 등급 2는 자원의 40%를 수신한다. 응답 모드에서는, 자원 등급에 대해 정의된 비례적인 응답 시간 목표를 만족시키거나 이들 등급에 대한 응답 시간 함수의 가중화 합을 최소화하도록, 이들 작업 등급 또는 (다중 레벨 실시예에서) 작업 서브등급 집합에 자원을 할당한다. 따라서, 예를 들면, 이 목표는 등급 1, 2 및 3의 평균 응답 시간이 비율 3:2:1(또는 가능한한 근접하게)로 유지되도록 규정할 수 있다. 특정한 비례적인 사용 목표 또는 비례적인 (또는 가중화 합) 응답 시간 목표는 사용자나 시스템 작동자, 또는 일부 다른 수단에 의해 (수동적으로나 자동적으로) 설정될 수 있다.
본 발명은 컴퓨터나 컴퓨터 시스템에서 실행될 수 있지만, 반드시 그러한 것은 아니다. 사용 및 응답이 사용될 수 있는 방법의 대표적인 예가 다음에서 예시적으로 설명된다.
사용 모드에서, 종종 컴퓨터 시스템은 1차 코어(core) 주위에서 실행되어야 하는 1차적인 코어 작업과 함께 몇몇의 배치 처리 작업(batch process work)를 포함한다. 때로는 배치 업무가 코어 업무에 의해 궁핍(starvation) 상태가 되는 문제점이 발생하는데, 이는 바람직하지 않다. 그러므로, 배치 업무가 적어도 자원의 20%를 얻을 수 있도록 보장하기 원할 수 있다. 또 다른 예는 두 부문이 컴퓨터를 공유하고 상기 두 부문간에 자원을 동일하지 않으며 제어가능한 방법으로 비례적으로 할당하기 원하는 경우이다. 응답 모드의 경우, 때로는 다양한 컴퓨터 시스템 (예를 들면, 트랜잭션(transaction) 처리 시스템)에서 일단의 작업 등급간에 응답 시간의 평균과 편차를 제어하는 것이 중요하다. 이 경우에는 자원을 대기하는데 드는 시간에 따라 등급 i내의 작업의 우선순위가 선형적으로 증가되도록 하는 것이 중요할 수 있다. 이 선형 함수의 기울기는 등급에 따라 달라지고 이는 각 등급이 (절대적인 의미에서 또는 다른 등급에 대해 상대적으로) 얻는 응답 시간을 제어하는데 사용된다.
시간 함수를 사용하면 단일 스케쥴링 방법 내에서 다양한 스케쥴링 목표에 대한 지원을 단일화시킬 수 있다. 자원이 이용가능할 때 스케쥴링을 위해 어느 작업 등급을 선택하는지는 그 시점에서 각 등급과 연관된 시간 함수에 의해 동적으로 결정된다. 시간 함수는 가장 일반적인 의미에서의 임의의 시간 함수가 될 수 있고, 여기서 자원 및 다른 자원에 대한 시간의 측정치는 (때로 TF 값이라 칭하여지는) 시간 함수값을 평가하는데 사용될 수 있다. 바람직한 실시예에 제한되지는 않지만 상기 실시예에서 사용된 바와 같이, 시간은 2가지의 일반적인 방법으로 측정된다. 예를 들면, 시간 함수가 사용 모드에 있다고 하는 경우에, 시간은 요구자 (즉, 작업)의 등급에 의한 자원이나 자원 집합의 사용에 대한 측정치이고, 또한/또는 시간 함수가 응답 모드에 있다고 하는 경우에, 시간은 요구자의 등급에 의한 자원이나 자원 집합의 대기에 대한 측정치이다. 일반성을 손실하지 않고, 바람직하게 동일한 조건하에서 ij인 경우 작업 등급 i는 작업 등급 j에 비해 유리한 것으로 가정된다. 즉, 등급 i에 대한 시간 함수는 같은 입력 매개변수값이 입력될 때 등급 j에 대한 함수값보다 크거나 같은 값을 산출한다. 등급 i은 등급 j 보다 높은 등급으로 칭하여지고, 반대로 등급 j은 등급 i 보다 낮은 등급이 된다.
바람직한 실시예에서, 작업 등급은 계층 구조로 배열된다. 도 1은 일반적인 경우의 계층 구조(10)를 설명한다. 본 예에서, 작업 등급 (1) 내지 (K)의 전체 그룹은 N개의 (1-N으로 칭하여지는) 여러 다른 그룹으로 분할되고, 각 그룹은 계층 구조에서 다음 그룹내의 작업 등급에 비해 절대적인 우선순위를 갖는다. 따라서, 그룹(2)내의 등급에 속하는 작업은 시스템에 존재하는 그룹(1)로부터 실행될 수 있는 작업이 없는 경우에만 실행될 수 있다. 유사하게, 그룹(2)내의 작업은 그룹(3)내의 작업에 비해 절대적인 우선순위를 갖는다. 대표적인 시스템에서, 최고 우선순위 그룹, 즉 그룹(1)내의 작업 등급은 운영 체계 작업과 같이 높은 우선순위를 갖는 하위 레벨 시스템 업무를 수행하는데 사용된다. (트랜잭션 처리와 같은) 사용자 레벨 태스크는 비교적 낮은 우선순위를 가지므로, 그룹(2) (또는 그 아래)에 놓이게 된다. 과다한 싸이클 시간을 사용하는 (예를 들면, 시스템 백업(back-up)이나 다른 백그라운드 처리와 같은) 최하위 우선순위 태스크는 최하위 그룹(N)으로 분류한다.
본 발명에 따르면, 각 그룹은 그와 연관된 하나 이상의 작업 등급을 갖는다. 따라서, 도시된 바와 같이, 그룹(1)은 작업 등급 (1) 내지 (L1)을 갖고, 그룹(2)는 작업 등급 {L1+1} 내지 {L1+L2}를 갖고, 이어서 그룹(N)은 작업 등급 {L1+L2+...+LN-1+1} 내지 {L1+...+LN}을 갖는다. 더욱이, 도 1에 또한 도시된 바와 같이, 특정한 작업 등급은 원하는 만큼의 레벨로의 서브등급으로 재귀적으로 정의될 수 있다. 따라서, (응답 또는 사용 모드가 선택되든지) 작업 등급(i)는 그와 연관된 서브등급(i1내지 iMi)를 갖고, 특정한 서브등급(ij)은 유사하게 (응답 또는 사용 모드가 선택되든지) 그와 연관된 서브등급 집합(ij1내지ijMj)를 갖는다. 이와 같이, 본 발명의 특성은 각 등급의 엔트리가 재귀적으로 정의되도록 제공하는 것이다. 이는 더 다양한 사용자/시스템 실행 목표를 만족시키도록 훨씬 섬세한 스케쥴링도를 허용하는데 상당한 이점을 제공한다.
도 1은 또한 본 발명의 또 다른 유리한 특성을 설명한다. 특히, 계층 구조에서 각 그룹내의 작업 등급과 연관된 시간 함수는 일정하거나 동적이다. 따라서, 각 그룹내에, 작업 등급이 자원으로의 억세스를 얻는 순서는 시간을 근거로 하는 함수에 의해 정의되고, 이들 각각은 일정하거나 시간 측정치에 따라 동적으로 변한다. 일정한 시간 근거의 함수가 사용될 때, 각 작업 등급은 시간에 따라 고정되어 유지되는 시간 함수값을 갖는다. 동적으로 변하는 시간 근거의 함수가 사용될 때는 작업 등급의 시간 함수값이 일반적으로 시간 측정치에 대해 변한다. 이 접근법의 이점은 이후 상세히 설명된다.
비트 마스크(bit mask)(12)가 (경우에 따라서) 등급이나 서브등급 또는 서브-서브등급 등의 각 집합과 연관되어 있다. 각 마스크는 (경우에 따라서) 특정한 등급이나 서브등급 또는 서브-서브등급 등에 연관되어 있는 (0이나 1 값으로 지정되는) 비트를 포함한다. 그 비트는 각 등급, 서브등급, 또는 서브-서브등급 등이 비어있는가 여부를 표시하므로, 처리 중에는 무시된다. 이후에서 보여질 바와 같이, 이는 수개의 스케쥴러 루틴을 최적화한다. 비트 마스크에 대한 다른 방법으로, 포인터(pointer)의 어레이(array)가 사용될 수 있다.
비록 도 1에서는 상세히 설명되지 않지만, 특정한 작업 등급 내의 각 작업은 또한 작업 대기열(job queue)에 할당되는데, 이 작업 대기열은 자원을 얻기 위해 대기하고 있는 해당 등급으로부터의 작업 집합을 유지하고 있다. 대기열은 연결 리스트(linked list)와 같은, 임의의 편리한 데이터베이스 구조로 될 수 있다.
여기서 주어진 그룹, 등급 및 서브등급의 계층 구조는 작업이 작업의 실행 목표를 충족시킬 수 있도록 자원을 액세스하는 것을 스케쥴링하여 작업을 조직화할 수 있는 매우 강력한 구조를 나타낸다. 작업 분류, 실행 목표 및 이어지는 적절한 작업 등급 계층 구조는 이러한 설정의 권한과 책임을 갖는 시스템 관리자나 사용자에 의해 설정된다. 시간 함수 이력 스케쥴링(time-function history scheduling)을 이용하여, 실행 목표는 계층 구조가 되거나 또한 일정한 시간 그룹에 부가하여 비례적인 사용 및 응답 시간의 조합이 될 수 있다. 도 2에는 특수한 경우의 계층 구조가 도시된다. 도 2의 계층 구조는 예시적인 것으로 단순히 특정한 예에 대해 본 발명의 특성을 설명하도록 도시된 것임을 이해하여야 한다. 도시된 특정한 스케쥴링 목표에 본 발명을 제한하도록 해석되지 말아야 한다.
도 2에서는 세(3) 개의 작업 등급 그룹(A), (B) 및 (C)가 제공된다. 그룹(B)내의 작업 등급 중 적어도 일부는 (확실해질 이유로) 도시된 바와 같이 그와 연관된 서브등급을 갖는다. 그룹(A)내의 작업 등급은 그와 연관된 일정한 시간 근거의 함수를 갖고, 이는 그 그룹의 작업 등급간을 구별하기 위한 고정된 우선순위 방식으로 된다. 일정한 시간 함수로, 그룹내에서 제2 등급의 작업은 그룹의 제1 등급에 작업이 없는 경우에만 스케쥴링되고, 그룹내에서 제3 등급의 작업은 그룹의 제1 및 제2 등급에 작업이 없는 경우에만 스케쥴링된다. 작업 등급 그룹(A)내에는 다른 종류의 태스크가 있다. 따라서, 예를 들면, (여러 다른 작업 등급간의 우선순위에서 차이를 갖을 수 있는) 다른 모든 태스크에 비해 소정의 우선순위가 있을 필요가 있는 단기 시스템 태스크가 있다. 이들 태스크는 우선적으로 시스템을 구성한 사람들에 의해 개발되므로, 정의 및 구성에 의한 단기 시스템 태스크이다. 부가적으로, 때로는 자원으로의 억세스를 위한 대기선상에서 다음에 있는 실시간 사용자 (시스템에 반대되는) 태스크가 있다. 이러한 태스크는 때로 시스템 태스크가 처리된 이후이지만 다른 사용자 태스크가 처리되기 이전인 고정된 우선순위 방식에 따라 스케쥴링된다. 작업 등급 그룹(A)은 또한 비교적 상당한 아이들 주기 사이에서 적은 양의 자원 사용으로 정의되는 상호작용 사용자 태스크를 포함한다. 이들 상호작용 태스크에는 다른 사용자 태스크 (따라서, 설명되는 바와 같이 이들 타스크는 작업 등급 그룹(B)에 포함될 수 있음)에 비해 절대적인 우선순위를 부여하는 것이 유리할 수 있다. 일정한 시간 함수에 의해 제공되는 고정된 우선순위 방식은 컴퓨터 또는 컴퓨터 시스템의 자원에 대한 여러 다른 종류의 태스크에 대한 이러한 (또는 다른) 스케쥴링 요구조건을 지지할 수 있다.
따라서, 도 2에 도시된 작업 등급 그룹(A)의 관계 내부에는 상호작용 태스크,상호작용 태스크에 비해 우선순위를 갖는 실시간 태스크, 실시간 태스크에 비해 우선순위를 갖춘 시스템 태스크가 있으며, 이들 모두는 동일한 그룹 내에 있다. 그룹 내에서 (일정한 시간 함수에 의한) 고정된 우선순위 방식을 이용하여 여러 다른 종류의 태스크에 의한 자원 억세스의 순서를 정한다.
동적으로 변하는 시간 근거의 함수는 바람직하게 제2 그룹(B) 내의 각 작업 등급과 연관된다. 본 실시예에서는 등급(B.1 내지 B.LB)에 사용 모드 목표 {40%, 20%, ..., 5%}가 가해지고, 각 등급(B.1), (B.2), ...에는 응답 모드 목표가 가해진다. 따라서, (B.1)의 서브등급은 응답 모드 목표 {10:3:...:1}을 갖고, (B.2)의 서브등급은 응답 모드 목표 {8:4:...:1}를 갖는다. (사용 모드나 응답 모드에서의) 각 목표의 개별적인 매개변수는 물론 각각 선택가능하고, 원하는 경우에는 동적으로 조절가능하다. 선택적으로, 이러한 매개변수는 임의의 디폴트(default) 값으로 미리 지정될 수 있다. 특정 목표를 포함하도록 매개변수 값을 조정하는 것은, 사건이 주어질 때, 특정한 시간이 만기될 때, 동적으로 가중치를 조절하는 적응성 피드백에 의해, 지식 베이스 전문가 시스템(knowledge-based expert system)에 의해, 또는 일부 다른 공지된 기법에 의해 발생한다. 따라서, 예를 들면, 사건은 특정한 날짜의 도착과 같이 시간을 근거로 하거나(temporal-based), 선택적으로, 소정의 시스템 사용 한계값에 이를 때 새로운 목표를 설정하는 트리거(trigger)와 같이 로드를 근거로(load-based) 할 수 있다.
물론, 사용 모드는 등급 레벨로 실행되고 응답 모드는 서브등급 레벨로 실행된다는 것은 단지 예시적이다. 전술한 바와 같이, 사용 모드나 응답 모드 어느 모드도 실시예에 유리한 것은 아니다. 두 모드는 특정한 동적 시간 함수에 대해 동일하게 존속가능하고 이용가능하다. 일반적으로, 등급당 시간 함수는 임의의 기능적인 형태를 갖는다. 바람직한 실시예에서는 각 등급당 시간 함수의 절대값이 (항상 t 보다 큰 모든 t'에 대해 시간 t에서의 시간 함수값이 시간 t'에서의 시간 함수값 보다 크거나 같음을 의미하는) 단조 비-감소함수이다. 이는, (특히) 작업 등급 내에서 그리고 작업 등급간에 예측가능한 실행을 제공하는 것이 바람직하기 때문에, 자원으로의 억세스가 제공된 소정의 작업 등급으로부터의 작업 지정(assignment)이 바람직하게는 먼저 온 것을 먼저 처리하는(first-come, first-serve) 기본 방식에 따라 발생한다는 것을 의미한다. 등급당 시간 함수값을 근거로 그룹(B)내에서 어느 작업 등급이 선택되어야 하는가를 결정하기 위해 임의의 일반적인 선택 함수를 이용할 수 있다. 일단 특정한 등급이 선택되면, 등급당 시간 함수값을 평가하고 이 값들을 근거로 등급을 선택하는 과정은 스케쥴링 계층 구조 중 적절한 부분을 통해 순환적으로 적용된다.
또한, 도 2에서 보여지는 바와 같이, 대표적인 예에서는 각 등급에 일정한 시간 근거의 함수를 지정함으로써 제3 그룹(C)내의 작업 등급에 대한 또다른 고정된 우선순위 방식을 이용할 수 있다. 등급 집합(C)는 (주로) 시스템 레벨의 백그라운드 작업을 위해 지정된다. 비어있지 않은 집합(C)는 주의하여 정확하게 사용되지 않으면 궁핍 및 그밖의 시스템 문제를 일으킬 수 있으므로, 그룹(C)는 (크기를 0으로 설정함으로써) 디스에이블(disable)되거나 그룹(A 또는 B)에서 다른 태스크의 후원하에 있는 태스트에 의해서만 사용된다. 그룹(A) 및/또는 (C)는 비어있는 그룹이다.
도 2는 이와 같이 스케쥴링 메커니즘이 매우 일반적이고 탄력적인 방법으로 다른 계층 레벨 내에서 또는 그 사이에서 사용 및 응답 모드의 조합을 지지하는 방법을 도시한다. 예를 들면, 사용자나 시스템은 사용 모드 또는 응답 모드를 선택할 수 있다. 따라서, 1-레벨 실시예의 경우, 시스템 값이 사용 모드나 응답 모드 사이에서 교환되도록 설정될 수 있다. 2-레벨 실시예의 경우, 시스템은 사용 (또는 응답) 모드를 사용해 요구의 등급에 대해 자원을 스케쥴링할 수 있다. 일단 특정한 등급이 다음의 자원을 수신하도록 선택되면, 그 등급내에서 특정한 서브등급의 선택은 응답 (또는 사용) 모드를 근거로 할 수 있다. 도 2는 사용 모드를 통해 할당된 그룹(B) 내의 작업 등급과 응답 모드를 통해 할당된 작업 등급 내의 각 서브등급으로의 다중 레벨 실행을 도시한다.
이동 메커니즘이 각 작업 등급과 연관될 수 있다. 특히, 한 등급의 작업이 작업의 자원 사용을 근거로 한 기준 집합을 초과하는 경우 또다른 하위 등급으로 이동될 수 있다. 태스크가 이동하는 거리는 작업 등급과 연관된 이동 비율에 의해 정의된다. 작업이 초기에 지정되는 등급은 그 작업에 대한 기본 등급이다. 특정한 환경하에서는 작업 등급 (및/또는 작업)이 더 높은 등급으로 계층 구조에서 더 높이 이동될 수 있다. 이에 대한 예는 우선순위 반전(priority inversion)의 문제점을 해결하는데서 설명된다.
바람직하게, 그룹(B)내의 작업 등급은 그룹(A)에 준비된 업무가 없을 때에만 고려되고, 그룹(C)는 (A) 및 (B)에 준비된 업무가 없을 때에만 고려된다. 이 계층적 방식은 각 등급과 연관된 이동 메커니즘과 함께 사용되고, 각 등급은 그 등급과 연관된 자원 기준을 넘으면 작업을 하위 등급 (현재 그룹내 또는 그 이하)으로 낮추어진다. 따라서, 하나의 실시예에서, 작업의 기본 등급이 (B)에 포함되어 있거나, 또는 그룹(A) 등급과 연관된 이동 기준을 초과하여 작업이 (결국) 그룹(B)의 작업 등급 중 하나로 이동되는 이유로 인해, 작업은 그룹(B)로 들어가게 된다. 본 실시예에서는 기본 등급이 각각 A 및 C에 있기 때문에, 작업은 (A) 및 (C)내의 등급에 들어간다. 부가하여, 작업이 상당한 시간 주기 동안 아이들 상태가 되면 작업은 바람직하게는 기본 상태로 복귀된다.
도 3a 및 도 3b는 작업 등급으로부터의 작업을 자원에 제공하도록 컴퓨터나 컴퓨터 시스템내에서 스케쥴러 메커니즘이 동작되는 방법에 대해 간략히 설명한 블록도이다. 본 예에서, 자원(14)은 프로세서이거나 시스템(40)의 다른 처리 요소이다. 컴퓨터 시스템(40)은 메모리(44)에서 지속되는 운영 체계(42)를 포함한다. 도 3b의 실시예에서, 스케쥴러 메커니즘(46) (때로 디스패처(dispatcher)라 불리어짐)는 운영 체계 유틸리티로 실행된다. 도 3b의 실시예에서는 스케쥴러가 운영 체계(42)에 의해 실행되는 응용 소프트웨어이다. 어는 경우이든, 스케쥴러는 각 작업 등급과 연관된 작업 대기열(48)을 포함한다. 스케쥴러 메커니즘의 기본적인 기능은 작업 대기열로부터 작업을 구하고, 실행하도록 이를 자원에 제공하는 것이다. 도 3b의 실시예에 도시된 바와 같이, 자원은 자원에 의한 실행을 위해 스케쥴링된 작업을 유지하는 대기열(45)을 포함할 수 있다. 스케쥴러 메커니즘은 작업 대기열로부터 작업을 구하고, 자원에 의한 실행을 위해 이를 대기열에 놓는다. 도 3a의 실시예에서는 대기열이 요구되지 않는다.
이제는 스케쥴링 메커니즘의 다양한 동작 논리가 다음의 바람직한 실시예에서 설명된다. 그룹 선택 및 등급 선택 루틴 (도 4 내지 도 5)은 선택된 그룹내에서 적절한 작업 등급이나 서브등급으로부터의 작업에 이용가능한 자원을 지정하는데 사용된다. 이러한 방법으로 특정한 등급으로부터 작업을 선택한 후에, 도 6의 업데이트 루틴은 다음 선택 싸이클을 준비하도록 작업 등급에 대한 동적인 시간 함수값을 재계산한다. (도 8의) 이력 업데이트 루틴은 시간 함수값을 계산하여 필요한 데이터를 유지하여 (업데이트 루틴에서의 단일 작업 등급 조치와 대조하여) 모든 작업 등급이 실행 목적을 만족시키는 것을 보장한다. (도 7의) 작업 입력/복귀 루틴은 의도된 제한의 범위를 넘어서 자원을 사용하는 작업을 조치할 수 있는 이동 메커니즘을 제공한다.
도 4는 그룹 선택 루틴을 설명하는 흐름도이다. 이 처리 루틴은 처리를 위해 특정한 그룹을 선택하는데 사용된다. 이는 계층 구조에서 첫 번째 비어있지 않은 등급을 찾음으로써 단계(50)에서 시작된다. 이를 위해, 계층 구조에서의 비트 마스크를 탐색하고, 마스크에서의 0 입력과 연관된 작업 등급은 처리 효율성을 위해 무시한다. 단계(52)에서는 첫 번째 비어있지 않은 등급이 발견되었는지를 판단하는 테스트를 실행한다. 등급이 발견되지 않은 경우, 루틴은 단계(54)에서 빠져나간다. 단계(52)에서의 테스트 결과가 긍정적이면, 루틴은 작업 등급이 동적 시간 함수를 갖는 그룹에 속하는가 여부를 테스트하는 단계(56)로 이어진다. 그렇지 않으면, 작업 등급은 일정한 시간 함수를 갖는 그룹에 속한다. 그 경우, 루틴은 그 등급에서 작업을 선택하는 단계(58)로 이어진다. 이는 바람직하게 자원을 사용하기 위해 가장 오래 대기한 등급내의 작업이 된다. 이어서, 루틴은 빠져나간다. 단계(56)에서의 테스트 결과가 긍정적이면, 루틴은 등급 선택 루틴을 호출하는 단계(60)로 이어진다.
도 5의 흐름도에서는 등급 선택 루틴이 설명된다. 이 루틴은 동적 시간 함수 그룹에 대해 필요할 때 반복적으로 계층 구조에 적용된다. 각 작업 등급 또는 서브등급에 대한 시간 함수값은 시간에 걸쳐 다른 비율로 변하므로, 등급 선택 루틴은 등급 선택을 하기 이전에 그룹내의 비어있지 않은 모든 등급의 모든 시간 함수값을 비교한다. 이는 임시 변수, 즉 (값 TF[I]에 대한) save_TF_value, (값 I에 대한) save_class_index 및 (값 I에 대한) current_class_index를 초기화함으로써 단계(62)에서 시작된다. 단계(64)에서는 current_class_index가 증가된다. 루틴은 모든 등급이 평가되었는지를 테스트하는 단계(66)로 이어진다. 그렇지 않으면, current_class_index에 대한 등급이 비어있는지를 판단하는 (상기에서 기술된 바와 같이, 비트 마스크를 사용해 행해질 수 있음) 테스트를 단계(68)에서 수행한다. 단계(68)에서의 테스트 결과가 긍정적이면, 루틴은 다시 단계(64)로 복귀하여 current_class_index를 증가시킨다. 그러나, 단계(68)에서의 테스트 결과가 부정적이면, TF[current_class_index]가 save_TF_value 보다 작은지를 판단하는 테스트를 단계(70)에서 수행한다. 단계(70)에서의 테스트 결과가 부정적이면, 루틴은 다시 단계(64)로 복귀하여 current_class_index를 증가시킨다. 그러나, 단계(70)에서의 테스트 결과가 긍정적이면, 루틴은 단계(72)로 이어져 save_TF_value = TF[current_class_index] 및 save_class_index = current_class_index로 설정하고 단계(64)로 복귀한다. 다른 방법으로, 단계(66)에서의 테스트 결과가 긍정적인 것으로, 모든 등급이 점검되었음을 나타내면, 루틴은 save_class_index의 작업 등급으로부터 작업을 선택하는 단계(74)로 이어진다. 단계(76)에서는 선택된 작업 등급이 응답 모드 목표와 연관되는지를 판단하는 테스트가 실행된다. 그렇지 않으면, 루틴은 단계(78)에서 빠져나온다. 그러나, 작업 등급이 응답 모드와 연관되면, 단계(80)에서는 등급 업데이트 루틴이 호출된다.
도 6에는 등급 업데이트 루틴이 설명된다. 이 루틴은 다음 반복 기간 동안 선택되어질 등급 내의 다음 작업을 준비한다. 사용 모드의 경우, (방금 실행을 끝낸 작업으로부터의) 자원 사용도를 그 작업에 대한 누적 사용도에 추가시킨 이후에 단계(80)로 간다. 흐름도를 다시 참조하면, 루틴은 문제시되고 있는 등급이 사용 모드에 있는가 여부를 테스트함으로서 단계(82)에서 시작된다. 그러한 경우, 루틴은 누적 사용도를 최종 등급(i) 사용도로 업데이트시키고, 이하의 수식 (식 1)을 이용해 새로운 값으로 TF[i]를 설정하는 단계(84)로 이어진다.
시간 함수값 = 함수(누적 사용도, 가중치)
여기서, 작업 등급에 대한 가중치는 측정한 사용 시간 목표의 매개변수값이다. 상기 함수는 사용 축적도가 여러 다른 비율로 증가하는 동안 각 작업 등급이 자원 사용의 적절한 몫을 얻을 수 있도록 보장한다. 단계(84) 이후에, 루틴은 종료된다. 그러나, 단계(82)에서의 테스트 결과가 부정적이면, 루틴은 등급(i)의 실행 대기열에서 다음 작업에 대하여 다음 식(2)을 이용해 TF[I]를 설정하는 단계(88)로 이어진다:
시간 함수값 = 함수(대기 시간, 가중치)
여기서, 대기 시간은 작업 등급이 자원을 얼마나 오래 대기하였나를 반영하고, 작업 등급에 대한 가중치는 응답 시간 목표에 의해 결정된 매개변수이다. 단계(88) 이후에, 루틴은 빠져나간다.
도 7은 자원에 의한 실행에 이어지거나 초기에 특정한 작업을 작업 대기열에 놓는데 사용되는 작업 입력/복귀 루틴을 설명한다. 루틴은 class_index의 작업이 소정의 idle_limit 보다 오랫동안 아이들 상태에 있는가를 판단하는 단계(90)에서 시작된다. 그러한 경우, 단계(92)에서는 class_index가 base_class로 설정된다. 이어서, 단계(94)에서는 작업이 class_index의 작업 대기열에 놓이고, 루틴은 종료된다. 단계(90)에서의 테스트 결과가 부정적이면, 루틴은 작업 누적 자원 사용도가 그 등급의 작업에 대해 설정된 제한치보다 더 큰지를 판단하도록 단계(96)에서 테스트하는 것으로 이어진다. 그렇지 않으면, 루틴은 단계(94)로 이어진다. 그러나, 단계(96)에서의 테스트 결과가 긍정적이면, 루틴은 단계(98)로 이어져 class_index를 타겟 이동 등급으로 설정한다. 루틴은 앞서 설명된 바와 같은 단계(94)로 이어진다. 따라서, 단계(92) 및 (98)은 계층 구조에 걸친 작업 이동을 실행한다.
도 8은 동적 시간 함수를 갖는 각 작업 등급에 대한 시간 함수값을 재계산하는 이력 업데이트 루틴을 설명한다. 이 루틴은 단계(100)에서 시작된다. 단계(102)에서는 등급(i)가 사용 모드와 연관되는가 여부를 판단하는 테스트가 이루어진다. 그러한 경우, 루틴은 등급(i)에 대한 누적 사용에 에이징(aging) 함수(필요한 경우)를 적용하는 단계(104)로 이어진다. 이어서, 루틴를 빠져나간다. 에이징 구조의 한 예는 TF[i]를 상수(1 보다 작은)로 곱하는 것이다. 에이징 함수는 몇가지 이점을 제공한다. 작업의 등급이 일정 기간의 시간 (예를 들면, 최근 24시간) 동안 자원을 사용하지 않고 있으면, 이는 자원을 독점하여 손실된 시간을 만회한다. 에이징 함수는 이러한 치우침을 방지한다.
선택적으로, 단계(102)에서의 테스트 결과가 부정적이면, 응답 모드가 실행된다. 루틴은 상기에서 설명된 식(2)을 이용해 TF[i]를 업데이트하는 단계(106)로 이어지고, 루틴은 종료된다. 이 루틴이 종료될 때, 응답 모드에 있는 모든 작업 등급은 새로운 스케쥴링 기간에 대해 재계산된 시간 함수값을 갖게 된다 (따라서, 새로운 대기 시간을 갖게 된다). 이력 업데이트 루틴은 매 선택 싸이클 마다 사용될 수 있다. 그러나, 이 루틴은 사용자/시스템에 의해 정의가능한 고정된 시간 간격으로 사용된다. 효율성을 위해, 후자의 접근법이 바람직하다.
스케쥴러가 (사용 시간 목표에 따라 할당하는) 사용 모드에서 작동되면 식(1)이 실행되고, 스케쥴러가 (응답 모드에 따라 할당하는) 응답 모드에서 작동될 때 식(2)가 실행됨을 이해하여야 한다. 특정한 레벨 (등급, 서브등급, 서브-서브등급 등)에서는 바람직하게 한 종류의 모드 (응답 또는 사용모드) 만이 실행된다. 사용 모드에서, 각 등급에 대한 시간 함수값은 바람직하게 등급내의 모든 작업에 의해 누적 사용도로 판단된다. 응답 모드에서 시간 함수값은 바람직하게 등급에서 가장 오래된 작업의 대기 시간에 의해 판단된다. 가장 오래된 작업을 사용하는 것은 단조적으로 비-감소되는 응답 모드 시간 함수를 사용하는 것에 직접적으로 따라오는 것임을 주목하여야 한다. 시간 함수가 비-감소하지 않는다면, 각 등급에 대한 시간 함수값은 작업내의 모든 작업을 평가한 이후에 가장 높은 시간 함수값을 근거로 할 수 있다. 이러한 모든 변형은 본 발명의 범위 내에 포함된다.
사용 모드에서는 모든 시간 함수값이 양수이고 시간상 전방으로 이동하게 된다. 따라서, 스케쥴러 메커니즘은 소정의 이용 목표를 만족시키도록 최소 값을 검사한다. 매번 자원이 사용될 때, 작업 등급에 그 자원에 대한 책임이 지워지고(get charged), 작업은 소정의 시간 함수값 곡선을 따라 전방으로 이동한다. 응답 모드에서는 시간 함수값이 시간에 따라 증가되고, 스케쥴링은 전형적으로 최대 값 (즉, 가장 높은 시간 함수값의 작업)을 선택하는 것을 근거로 한다. 방법을 단일화시키기 위해, 본 발명은 실제에 있어서 사용 모드 동안에 최소 값이 선택되도록 (이하에서 설명되는 바와 같이) 응답 모드 시간 함수값 곡선을 음의 가중치로 처리한다. 이는 사용 또는 응답 모드가 포함되는지에 관계없이 단일화된 방법 및 처리 구조를 나타낸다.
따라서, 사용 모드에서, 스케쥴러는 그 시간에 다른 등급들에 관하여 그의 비례적인 이용 목표로부터 가장 먼 등급을 식별해주는 최소값을 검사한다. 응답 모드에서는 스케쥴러가 그룹내의 모든 작업 중에 가장 큰 시간 함수값을 검사하지만, 비감소 함수로 주어지면, 이는 각 등급에서의 가장 오래된 작업 중 가장 큰 시간 함수값을 찾는 것으로 간략화된다.
다음은 개념을 설명하기 위해 사용 모드 시간 함수와 응답 모드 시간 함수 하에서의 스케쥴링에 대한 대표적인 예를 설명한다. 한 쌍의 작업 등급 (또는 서브등급이나 서브-서브등급) A:B가 {80:20}의 사용 모드 목표에 따라 스케쥴링되는 경우를 고려한다. 즉, 두 작업 모두가 주어질 때 특정한 기간에 걸쳐, 등급(A)는 자원의 80%를 수신하게 되고, 등급(B)는 자원의 20%를 수신하게 된다. 이 목표에서, (식(1)에 관하여 전술한 바와 같은) 등급(A)의 사용 모드 시간 함수에 대한 표시 가중치는 {1/2} 또는 {1}인 등급(B) 사용 모드 시간 함수에 대한 표시 가중치에 대응하는 {1/8} 또는 {1/4}이다. 이 간단한 예를 위해, 두 등급 모두에 대한 누적 사용도는 초기값이 0이고, 두 등급 모두에 대한 작업 대기열은 많은 작업을 포함하고 있으며, 또한 모든 작업의 처리 요구조건은 1 단위인 것으로 가정한다. 본 발명의 바람직한 동작에 따라, 스케쥴링 판단이 이루어질 때마다 최소 시간 함수값을 갖는 작업 등급이 항상 선택된다. 따라서, 쟁탈 조정(tie arbitration)을 위해 바람직하게는 좀더 높은 등급을 선택하므로, 자원이 이용가능해진 경우에, 스케쥴러는 처리 대상으로서 등급(A)로부터의 제1 작업을 선택하게 된다. 완료되면, 등급(A)에 대한 시간 함수값은 1/4 (즉, 0에 1단위를 더한 후 1/4을 곱한 값)로 업데이트된다. 등급(B)의 시간 함수값은 0이므로, 다음 스케쥴링 판단에서는 처리 대상으로서 등급(B)로부터의 제1 작업이 선택된다. 이 작업이 완료되면, 등급(B)에 대한 시간 함수값은 1 (즉, 0에 1 단위를 더한 후 1을 곱한 값)로 업데이트된다. 이러한 방법으로 계속되어, 다음 4회 스케쥴링 판단에서는 (쟁탈에서 등급(A)이 이기므로) 등급(A)로부터 작업이 선택되고, 결과적으로 등급(A)에 대한 시간 함수값은 1.25 (.25에 4 단위를 더한 후 1/4을 곱한 값)가 된다. 다음 스케쥴링 판단에서는 등급(B)로부터 작업이 선택되어, 결과적으로 시간 함수값은 2 (1에 1단위를 더한 후 1을 곱한 값)가 된다. 이력 업데이트에 영향을 받는, 양 등급의 작업 대기열에 작업이 있는 한, 상기 동작은 계속된다. 이러한 동작의 그래프는 도 9a에 도시된다.
응답 모드 시간 함수하에서 스케쥴링의 대표적인 예로, 세 작업 등급 (또는 서브등급이나 서브-서브등급) A:B:C가 {4:2:1}인 응답 모드 목표하에서 자원을 대기하는데 소모된 시간량에 따라 등급내의 작업을 선형적으로 변화시키는 등급당 시간 함수에 따라 스케쥴링한 경우를 고려해보기로 한다. 즉, 작업에 대한 등급당 시간 함수는 간단히 작업 대기열에서 대기하는데 소모된 시간량으로 곱하여진 등급에 대한 가중치이다. 이 간단한 예를 위해, 각 작업 등급은 1 단위의 처리를 수신한 이후에 작업 대기열로 즉시 복귀하는 단일 작업을 갖고, 모든 작업의 대기 시간은 초기에 0인 것으로 가정한다. 선택 함수로서 최소 연산자가 일관되도록 하기 위해, 상기 간단한 예에 있어서 등급 A:B:C에 대한 가중치를 {-4:-2:-1}로 고려하기로 한다. 시간 함수값은 초기에 (대기 시간이 0이므로) 모두 0이므로, 스케쥴러는 처리 대상으로서 등급(A)로부터의 작업을 우선 선택한다. 이는 쟁탈 상태에서 바람직하게는 더 높은 등급을 선택하기 때문이다. 시간(1)에서 완료되면, 등급 (A), (B) 및 (C)에 대한 시간 함수값은 각각 0, -2 및 -1이다. 지금은 등급(2) 시간 함수값이 가장 작으므로, 결과적으로 등급(B)의 작업을 선택하고, 시간(2)에서 완료되면, 등급(A), (B) 및 (C)에 대한 시간 함수값은 각각 -4, 0 및 -2이다. 이어서, 등급(A) 내의 작업을 선택되고, 시간(3)에서 완료되면, 등급당 시간 함수값은 0, -2, -3이다. 이로 인해 등급(3)내의 작업이 다음에 선택되고, 시간(4)에서 완료될 때는 -4, -4 및 0인 시간 함수값을 산출하게 된다. 상기 간단한 예에서 스케쥴러의 동작은 이러한 방법으로 계속된다. 이 동작의 그래프는 도 9b에 도시된다.
바람직한 실시예에서, 작업 등급에 대한 비례적인 시간 함수값 (즉, 사용 또는 응답 모드 목적 매개변수)이 조정가능하다. 따라서, 예를 들면, 값을 변화하는 조건에 적응시키는 적응성 피드백 메커니즘을 이용하여 백터값을 조절한다. 총 시스템 이용도가 소정의 값 (예를 들면, 100%)에 있을 때는 디폴트 집합 값이 실행되고, 총 시스템 이용도가 제2 값 (예를 들면, 75%)으로 줄어들 때는 새로운 집합 값이 실행된다. 또다른 방법으로서, 작업 등급에 대한 값들은 특정한 사건 또는 특정 날짜의 시간이 발생함에 따라 변경될 수 있으며, 이들 값은 최적화되거나 또는 그렇지 않으면 전문가 시스템을 이용하여 지식을 기초로 하여 조정될 수 있다. 또 다른 방법은 소정의 작업 혼합 상태에 따라 그 값을 수정하는 것이다. 이러한 모든 변형은 본 발명의 범위 내에 있다.
앞서 설명한 바와 같이, 본 발명은 작업의 혼합도, 이용의 변화 등에 따라 시간 함수 (또는 시간 함수 매개변수)를 적응성있게 조정하는 것 이외에도 또다른 적응성 피드백 메커니즘을 실시한다. 따라서, 자원 사용이 시스템 관리지 또한/또는 사용자에 의해 지정된 제한치를 넘을 때 계층 구조에서 작업을 한 등급으로부터 또 다른 등급으로 이동시키는 것이 이러한 메커니즘의 또 다른 형태이다. 이러한 피드백 메커니즘의 또 다른 형태는 소정의 시간 기간 동안 자원을 사용하지 않으면 작업의 기본 등급으로 복귀되는 것을 포함한다. 또다른 적응성 피드백 메커니즘은 우선순위 반전의 문제점을 해결한다.
구체적으로, 우선순위 반전이란 높은 시간 함수값의 요구자가 낮은 시간 함수값의 요구자에 의해 차지되고 있는 또하나의 매우 만족스러운(highly-contented) 자원에 대한 요구자이기 때문에 상기 높은 시간 함수값의 요구자가 현재 자원을 사용할 수 없는 상태를 의미한다. 이는 낮은 값의 요구자에 의해 높은 시간 함수의 요구자가 실행 목표를 이루는 것이 방지되므로, 심각한 문제가 될 수 있다. 이 문제점은 본 발명의 구조에 의해 해결할 수 있는데, 본 구조는 낮은 시간 함수의 요구자가 상기 또하나의 매우 만족스러운 자원을 보유하고 있는 동안 상기 낮은 시간 함수의 요구자를 높은 시간 함수값의 등급에 놓이도록 하고, 그후에 상기 낮은 시간 함수의 요구자를 원래의 작업 등급으로 복귀시킴으로써 이를 해결한다. 이것이 적응성 피드백 메커니즘이다.
이 메커니즘의 구체적인 예를 설명하기 위해, 2개의 자원, CPU 및 논리 록(logical lock)이 있는 것으로 가정한다. CPU의 사용은 시간 함수 구조를 사용해 스케쥴링된다. 작업(A)는 작업(B)의 등급 보다 더 높은 비례적인 사용을 갖는 작업 등급내에 있다. 작업(B)는 록을 차지하고 있지만, 그의 시간 함수값은 시스템내의 다른 많은 작업과 비교해 낮은 것으로 가정한다. 작업(A)는 작업(B) 보다 훨씬 먼저 CPU를 가질 자격이 있는 시간 함수이지만, 작업(A)는 작업(B)가 차지하고 있는 록 때문에 CPU의 사용을 저지당한다. 본 발명에 따라, 작업(B)는 록을 해제시켜서 작업(A)에 이용가능하게 만들 때까지 CPU를 억세스하기 위한 작업(A)의 등급의 시간 함수를 물려받는다. 이어서, 작업(B)는 다른 등급과 충돌하기 전에 원래 있었던 작업 등급으로 복귀된다. 공지된 스케쥴링 메커니즘은 우선순위 반전의 문제점을 이러한 유일한 방법으로 해결하는 기능을 포함하고 있지 않다.
본 발명의 스케쥴러는 바람직하게 AIX 운행 체계 (Advanced Interactive Executive Version 4.1 이상)를 실행하는 IBM RISC 시스템/6000 컴퓨터 (RISC 방식 워크스테이션이라 칭하여지는 축소 명령 집합), 또는 원도우즈(Windows) NT나 OS/2운행 체계를 실행하는 인텔(Intel) 근거의 프로세서 시스템과 같은 컴퓨터에서 운행된다. 컴퓨터는 관리 및 운영을 위한 그래픽 사용자 인터페이스(GUI)를 포함한다. RISC 근거의 컴퓨터에 대한 다양한 모델은 IBM사의 많은 출판물, 예를 들면 RISC 시스템/6000, 7013 및 7016 파워스테이션 및 파워서버 하드웨어 기술 참고서, 주문 No. SA23-2644-00에서 설명된다. AIX OS는 IBM사에 의해 출판된 AIX 운영 체계 기술 참고서, 제1판(1985년 11월) 및 다른 출판물에서 설명된다. 전술한 플랫폼(platform)이 유용하지만, 그밖의 다른 적절한 하드웨어/운영 체계 조합이 사용될 수 있다. 예를 들면, 적절한 다른 방법의 메커니즘은 Novell UnixWare 2.0을 실행하는 IBM 호환 PC 486 이상, ATT UNIX SVR4 MP-RAS Release 2.02 이상을 실행하는 ATT 3000 시리즈, DG/UX version 5.4R3.00 이상을 실행하는 Data General AViiON 시리즈, HP/UX 9.00 내지 HP/UX 9.05를 실행하는 HP9000/700 및 800 시리즈, SVR4 version R40V4.2를 실행하는 Motorola 88K 시리즈, Solaris 2.3이나 2.4를 실행하는 Sun SPARC 시리즈, 또는 SunOS 4.1.2나 4.1.3을 실행하는 Sun SPARC 시리즈를 포함한다.
본 발명의 바람직한 실행 중 하나는 운영 체계 유틸리티이다. 즉, 예를 들면, 컴퓨터의 랜덤 억세스 메모리에 상주할 수 있는 코드 모듈의 명령 집합 (프로그램 코드)이다. 컴퓨터에 의해 요구될 때까지, 명령 집합은 또 다른 컴퓨터 메모리에, 예를 들면 하드 디스크 드라이브나, 결과적으로 CD ROM에서 사용되는) 광학 디스크 또는 (결과적으로 플로피 디스크 드라이브에서 사용되는) 플로피 디스크와 같은 리무버블 메모리(removable memory)에 저장되거나, 인터넷 또는 다른 컴퓨터 네트워크를 통해 다운로드(download)된다. 따라서, 본 발명은 컴퓨터에서 사용되는 컴퓨터 프로그램 제품으로 실행될 수 있다. 부가하여, 설명된 다양한 방법은 선택적으로 활성화되거나 소프트웨어에 의해 재구성되는 범용 컴퓨터에서 편의상 실행되지만, 본 기술 분야의 숙련자는 이러한 방법이 또한 하드웨어, 펌웨어(firmware), 또는 상기 요구되는 방법 단계를 실행하도록 구성된 보다 특수한 장치로 실행될 수 있음을 이해할 수 있을 것이다.
자원이란 말은 여기서 프로세서와 관련되어 사용되지만, 이 말은 소정의 비율로 소모가능한 한계 용량을 갖는 컴퓨터 또는 컴퓨터 시스템의 물리적 또는 논리적 디바이스나 구성성분 (하드웨어나 소프트웨어, 또는 그들의 조합)을 포함하도록 폭넓게 해석되어야 함을 이해해야 한다. 따라서, 여기서 사용되는 자원은 예를 들면, (초당 n 싸이클로 동작하는) 프로세서, (저장이 초당 n 비트로 교정될 수 있는) 메모리, (용량이 시간 및 크기의 함수로 할당될 수 있는) 통신 링크(link), 데이터베이스, 록(lock) 등을 언급하는 것이다. 더욱이, 본 기술 분야의 숙련자는 본 발명이 유니프로세서(uniprocessor) 시스템, 일군의 밀결합(tightly-coupled) 프로세서을 구비한 시스템, 또는 느슨하게 결합(loose cluster)된 컴퓨터를 포함하는 네트워크 환경에서 실시될 수 있음을 이해하게 된다. 더욱이, 작업이란 말은 본 발명을 특정한 운영 체계나 환경에 제한시키는 것이 아니다. 작업은 태스크, 처리, 실행 스레드(execution thread), 요구자, 또는 일반적으로 자원을 소비하는 유닛 또는 일과 유사하거나 동일한 의미이다.
본 발명은 종래 기술에 비해 상당한 이점을 제공한다. 공지된 자원 스케쥴링 메커니즘은 사용 및 응답 모드의 스케쥴링이 모두 실행될 수 있는 단일화된 구조를 제공하지 않는다. 이러한 공지된 구조는 각 모드에 대해서도 상술된 동적 시간 근거 함수의 접근법에 의해 이용가능한 제어 레벨을 제공하지 않는다. 또한, 바람직하게, 본 발명은 하나의 레벨에서 작업 등급이 서로에 대해 물리적으로 절대적인 우선순위를 갖는 그룹으로 분할되고 또 다른 레벨에서 각 등급이 논리적으로 반복적인 서브등급 어레이로 분할되는, 작업 등급 계층 구조의 개념을 이용한다. 유사하게, 서브등급은 논리적으로 한층 더 섬세한 범위로 분할될 수 있다. 상기와 같이, 적응성 피드백 메커니즘을 이용하여 계층 구조의 상하로 시간 함수값을 동적인 방식으로 변경할 수 있다.
본 발명의 이러한 특성 및 다른 특성은 본 발명의 통합된 방법이 공지된 스케쥴링 문제점을 새로운 구조 내에서 처리하여 해결할 수 있도록 한다. 한 예로, 이러한 문제점 중 하나는 우선순위 반전으로 알려져 있다.
요약하면, 본 발명은 단일 구조 내에 비례적으로 할당되는(pro-rated) 자원 이용 (사용 모드) 및 비례적으로 할당되는 자원 응답 시간 (응답 모드)을 모두 제공한다. 바람직하게, 스케쥴링 메커니즘은 비례적으로 할당되는 자원 이용의 범주내에서 비례적으로할당되는 자원 응답 시간을 제공하거나, 비례적으로 할당되는 자원 응답 시간의 범주내에서 비례적으로 할당되는 자원 이용을 제공한다. 따라서, 예를 들면, 사용 모드의 경우, 다양한 범주의 작업에 대해 사용자 또는 시스템에 의해 지정되는 비율의 자원 이용을 허용하고, 이러한 여러 다른 비율의 합은 100 퍼센트가 된다. 범주가 부여된 미사용 사이클은 사용자가 지정한 비율에 비례하여 할당된다. 응답 모드의 경우, 다수 범주의 작업에 사용자나 시스템이 지정한 일반적인 목표 함수를 달성할 수 있는 자원 응답 지연이 제공되는데, 일반적인 목표 함수에는 등급당 응답 시간의 함수의 가중합을 최소화하거나 선정의 비율의 평균 응답 지연을 달성하는 것 등이 포함된다. 범주가 부여된 미사용 싸이클은 사용자에 의해 지정된 비율에 비례하여 할당된다.
본 발명의 스케쥴링 메커니즘은 일반적이고, 탄력적이고, 또한 적응성이 있는 방법으로 자원의 할당을 효과적으로 제어하는 것을 가능하게 한다. 또한, 시스템의 작업량 변화에 따라 등급당 시간 함수들을 동적으로 조절할 수 있는 메커니즘을 이용함으로써 소정의 사용자 또는 시스템 목표가 연속적으로 만족될 수 있다. 유사하게, 시스템 동작의 여러 다른 기간중에 다양한 시간 함수 집합을 이용하여 이에 대응하는 시간 간격에 걸쳐 요구되는 스케쥴링 목표를 달성할 수 있게 된다.
이와 같이, 본 발명을 설명하였지만, 우리가 신규한 것으로서 청구하여 특허증에 의해 보장받기 원하는 것은 이하의 청구항에서 설명된다.

Claims (33)

  1. 컴퓨터 시스템에서 자원에 의해 실행되는 작업을 스케쥴링(scheduling)하는 방법에 있어서, 상기 작업을 작업 등급의 그룹(groups of job classes) - 적어도 하나의 상기 작업 등급의 그룹은 적어도 하나의 작업 등급을 포함하며 상기 작업 등급은 이에 연관된 서브등급 집합(a set of subclasses)을 포함함-을 포함하는 계층 구조(hierarchy)로 조직화하는 단계, 상기 자원을 사용 목표에 따라 상기 계층 구조에 비례적으로 할당하는 단계, 상기 자원을 응답 목표에 따라 상기 계층 구조에 비례적으로 할당하는 단계 및 상기 사용 목표, 상기 응답 시간 목표 및 상기 사용 및 응답 시간 목표의 조합으로 구성된 일군의 목표들로부터 선택된 목표를 만족시킬 수 있는 실행을 위해 작업 등급을 스케쥴링하는 단계를 포함하는 작업의 스케쥴링 방법.
  2. 제1항에 있어서, 상기 사용 목표는 소정의 그룹 내의 작업 등급에 상기 자원을 비례적으로 할당하는 작업의 스케쥴링 방법.
  3. 제2항에 있어서, 상기 응답 목표는 상기 소정의 그룹 내의 작업 등급 중 특정한 작업 등급 내의 서브등급에 상기 자원을 비례적으로 할당하는 작업의 스케쥴링 방법.
  4. 제1항에 있어서, 상기 응답 목표는 소정의 그룹내의 작업 등급에 상기 자원을 비례적으로 할당하는 작업의 스케쥴링 방법.
  5. 제4항에 있어서, 상기 사용 목표는 상기 소정의 그룹 내의 상기 작업 등급 중 특정한 작업 등급 내의 서브등급에 상기 자원을 비례적으로 할당하는 작업의 스케쥴링 방법.
  6. 제1항에 있어서, 적어도 작업 등급의 제1 그룹은 작업 등급의 제2 그룹보다 더 높은 우선순위를 갖는 작업의 스케쥴링 방법.
  7. 제6항에 있어서, 작업 등급의 상기 제1 그룹은 단기 시스템 태스크(task), 대화식 태스크 및 실시간 제한을 갖는 작업을 포함하는 작업 등급을 포함하는 작업의 스케쥴링 방법.
  8. 제7항에 있어서, 상기 제1 그룹 내의 각 작업 등급은 일정한 시간 함수(constant time-function)에 연관되어 있는 작업의 스케쥴링 방법.
  9. 제7항에 있어서, 작업 등급의 상기 제2 그룹 내의 각 작업 등급은 동적 시간 함수에 연관되어 있는 작업의 스케쥴링 방법.
  10. 제1항에 있어서, 상기 응답 시간 목표를 수정하는 단계를 더 포함하는 작업의 스케쥴링 방법.
  11. 제10항에 있어서, 상기 응답 시간 목표는 하나 이상의 작업 등급과 연관된 시간 함수값을 적응성있게 조정함으로써 수정되는 작업의 스케쥴링 방법.
  12. 제1항에 있어서, 상기 사용 시간 목표를 수정하는 단계를 더 포함하는 작업의 스케쥴링 방법.
  13. 제12항에 있어서, 상기 사용 시간 목표는 하나 이상의 작업 등급과 연관된 시간 함수값을 적응성있게 조정함으로써 수정되는 작업의 스케쥴링 방법.
  14. 제1항에 있어서, 한 그룹의 작업 등급 사이에서 작업을 이동시키는 단계를 더 포함하는 작업의 스케쥴링 방법.
  15. 제14항에 있어서, 상기 작업이 소정의 시간 내에 상기 자원을 억세스하지 않으면, 상기 작업을 원래의 작업 등급으로 복귀시키는 단계를 더 포함하는 작업의 스케쥴링 방법.
  16. 컴퓨터 시스템에서 프로세서에 의해 실행되는 작업을 스케쥴링하는 방법에 있어서, 상기 작업을 작업 등급 - 적어도 하나의 상기 작업 등급은 이에 연관되어 있는 서브등급을 포함함 -을 포함하는 계층 구조로 조직화하는 단계, 사용 목표에 따라 상기 프로세서를 상기 계층 구조에 비례적으로 할당하는 단계, 응답 목표에 따라 상기 프로세서를 상기 계층 구조에 비례적으로 할당하는 단계 및 상기 사용 목표, 상기 응답 시간 목표 및 상기 사용 및 상기 응답 시간 목표의 조합으로 구성된 일군의 목표들로부터 선택된 목표를 만족시킬 수 있는 실행을 위해 작업 등급을 스케쥴링하는 단계를 포함하는 작업의 스케쥴링 방법.
  17. 제16항에 있어서, 상기 사용 목표는 상기 작업 등급에 상기 프로세서를 비례적으로 할당하는 작업의 스케쥴링 방법.
  18. 제17항에 있어서, 상기 응답 목표는 특정한 작업 등급 내의 서브등급에 상기 프로세서를 비례적으로 할당하는 작업의 스케쥴링 방법.
  19. 제16항에 있어서, 상기 응답 목표는 상기 작업 등급에 상기 프로세서를 비례적으로 할당하는 작업의 스케쥴링 방법.
  20. 제19항에 있어서, 상기 사용 목표는 특정한 작업 등급 내의 서브등급에 상기 프로세서를 비례적으로 할당하는 작업의 스케쥴링 방법.
  21. 제16항에 있어서, 상기 응답 목표를 동적으로 조정하는 단계를 더 포함하는 작업의 스케쥴링 방법.
  22. 제16항에 있어서, 상기 사용 목표를 동적으로 조정하는 단계를 더 포함하는 작업의 스케쥴링 방법.
  23. 제16항에 있어서, 작업등급 사이에서 작업을 선택적으로 이동시키는 단계를 더 포함하는 작업의 스케쥴링 방법.
  24. 제23항에 있어서, 상기 작업이 소정의 시간 내에 상기 자원을 억세스하지 않으면, 상기 작업을 원래의 작업 등급에 선택적으로 복귀시키는 단계를 더 포함하는 작업의 스케쥴링 방법.
  25. 프로세서, 운영 체계 및 상기 프로세서에 의해 실행되는 작업을 스케쥴링하도록 운영 체계에 의해 실행되는 스케쥴러(scheduler)를 포함하고, 상기 스케쥴러는 작업 등급 - 상기 작업 등급의 적어도 하나의 그룹은 적어도 하나의 작업 등급을 포함하며, 상기 작업 등급은 이에 연관된 서브등급의 집합을 포함함 -을 포함하는 계층 구조로 상기 작업을 조직화하기 위한 수단, 사용 목표에 따라 상기 프로세서를 상기 계층 구조에 비례적으로 할당하기 위한 수단, 응답 목표에 따라 상기 프로세서를 상기 계층 구조에 비례적으로 할당하기 위한 수단 및 상기 사용 및 상기 응답 시간 목표를 만족시킬 수 있는 실행을 위해 작업을 스케쥴링하기 위한 수단을 포함하는 컴퓨터.
  26. 컴퓨터가 판독가능한 매체 내의 컴퓨터 프로그램 제품에 있어서, 작업을 작업 등급 - 상기 작업 등급의 적어도 하나의 그룹은 적어도 하나의 작업 등급을 포함하며 상기 작업 등급은 이에 연관된 서브등급의 집합을 포함함 -을 포함하는 계층 구조로 조직화하는 단계, 사용 목표에 따라 프로세서를 상기 계층 구조에 비례적으로 할당하기 위한 수단, 응답 목표에 따라 프로세서를 상기 계층 구조에 비례적으로 할당하기 위한 수단 및 상기 사용 및 응답 시간 목표를 만족시킬 수 있는 실행을 위해 작업을 스케쥴링하기 위한 수단을 포함하는 컴퓨터 프로그램 제품.
  27. 컴퓨터 시스템에서 자원에 의해 실행되는 작업을 스케쥴링하는 방법에 있어서, 상기 자원을 응답 모드 목표에 따라 작업 등급의 집합 - 상기 작업 등급의 각각은 이와 연관된 단조 비증가 시간 함수값(monotonically non-increasing time-function value)을 포함함 - 에 비례적으로 할당하는 단계 및 상기 응답 모드 목표를 만족시킬 수 있는 실행을 위해 작업 등급을 스케쥴링하는 단계를 포함하는 작업의 스케쥴링 방법.
  28. 제27항에 있어서, 각 작업 등급에 대한 상기 시간 함수값은 작업 등급에서 가장 오래된 작업의 대기 시간에 의해 결정되고, 상기 작업 등급은 최소 시간 함수값을 갖는 소정의 작업 등급을 선택함으로써 각 스케쥴링 처리 기간에 스케쥴링되는 작업의 스케쥴링 방법.
  29. 컴퓨터 시스템에서 자원에 의해 실행되는 작업을 스케쥴링하는 방법에 있어서, 상기 자원을 사용 모드 목표에 따라 작업 등급의 집합 - 상기 작업 등급의 각각은 이와 연관된 단조 비증가 시간 함수값을 포함함 - 에 비례적으로 할당하는 단계 및 상기 사용 모드 목표를 만족시킬 수 있는 실행을 위해 작업 등급을 스케쥴링하는 단계를 포함하는 작업의 스케쥴링 방법.
  30. 제29항에 있어서, 각 작업 등급에 대한 상기 시간 함수값은 상기 작업 등급 내의 모든 작업에 의한 누적 사용도(accumulated usage)로 결정되고, 상기 작업 등급은 최소 시간 함수값을 갖는 소정의 작업 등급을 선택함으로써 각 스케줄 처리 기간에 스케쥴링되는 작업의 스케쥴링 방법.
  31. 컴퓨터 시스템에서 자원에 의해 실행되는 작업을 스케쥴링하는 방법에 있어서, 상기 자원을 응답 모드 목표에 따라 자원 등급 집합 - 상기 작업 등급의 각각은 이에 연관된 단조 비증가 시간 함수값을 포함함 -에 비례적으로 할당하는 단계, 상기 자원을 사용 모드 목표에 따라 자원 등급 집합 - 상기 자원 등급의 각각은 이에 연관된 단조 비감소 시간 함수값을 포함함 -에 비례적으로 할당하는 단계 및 상기 응답 모드 목표, 상기 사용 모드 목표 및 상기 사용 모드 및 응답 모드 목표의 조합을 만족시킬 수 있는 실행을 위해 작업 등급을 스케쥴링하는 단계를 포함하는 작업의 스케쥴링 방법.
  32. 제31항에 있어서, 상기 응답 모드 목표에 연관된 각 작업 등급에 대한 상기 시간 함수값은 상기 작업 등급에서 가장 오래된 작업의 대기 시간에 의해 결정되고, 상기 작업 등급은 최소 시간 함수값을 갖는 소정의 작업 등급을 선택함으로써 각 스케줄 처리 기간에 스케쥴링되는 작업의 스케쥴링 방법.
  33. 제31항에 있어서, 상기 사용 모드 목표에 연관된 각 작업 등급에 대한 상기 시간 함수값은 상기 작업 등급 내의 모든 작업에 의한 누적 사용도로 결정되고, 상기 작업 등급은 최소 시간 함수값을 갖는 소정의 작업 등급을 선택함으로써 각 스케줄 처리 기간에 스케쥴링되는 작업의 스케쥴링 방법.
KR1019980013221A 1997-05-22 1998-04-14 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링 KR19980086596A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/862,044 US6263359B1 (en) 1997-05-22 1997-05-22 Computer resource proportional utilization and response time scheduling
US8/862,044 1997-05-22

Publications (1)

Publication Number Publication Date
KR19980086596A true KR19980086596A (ko) 1998-12-05

Family

ID=25337490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980013221A KR19980086596A (ko) 1997-05-22 1998-04-14 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링

Country Status (6)

Country Link
US (1) US6263359B1 (ko)
EP (1) EP0880095B1 (ko)
KR (1) KR19980086596A (ko)
DE (1) DE69835121T2 (ko)
IL (1) IL123700A (ko)
TW (1) TW396313B (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000055430A (ko) * 1999-02-05 2000-09-05 서평원 교환기 입출력계의 동적 시간 할당 방법
KR100471746B1 (ko) * 2002-07-26 2005-03-16 재단법인서울대학교산학협력재단 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
KR100697866B1 (ko) * 2005-04-29 2007-03-22 한국과학기술정보연구원 작업대기시간 검출기능을 구비한 작업관리 시스템과작업대기시간 검출 방법 및 그 프로그램을 기록한 기록매체
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
KR100890878B1 (ko) * 2006-07-18 2009-03-31 브로드콤 코포레이션 중앙 제어기로부터 순서화된 승인들을 사용하는 최적화된스케쥴링 방법
KR20110080735A (ko) * 2010-01-07 2011-07-13 삼성전자주식회사 컴퓨팅 시스템 및 방법

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US7031442B1 (en) 1997-02-10 2006-04-18 Genesys Telecommunications Laboratories, Inc. Methods and apparatus for personal routing in computer-simulated telephony
US20010040887A1 (en) * 1997-10-09 2001-11-15 Yuri Shtivelman Apparatus and methods enhancing call routing to and within call-centers
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
GB2337406B (en) * 1998-05-11 2003-05-14 Fujitsu Ltd Scheduling circuitry and methods
US7526767B1 (en) 1998-08-28 2009-04-28 Oracle International Corporation Methods for automatic group switching according to a resource plan
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
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
JP3537356B2 (ja) * 1998-12-09 2004-06-14 株式会社日立製作所 ジョブシステムにおける遅延要因解析方法
GB2344906A (en) * 1998-12-19 2000-06-21 Int Computers Ltd Object-oriented job scheduler
US7295669B1 (en) 1999-01-21 2007-11-13 Avaya Technology Corp. Call center telephone and data flow connection system
US6560649B1 (en) * 1999-02-10 2003-05-06 Avaya Technology Corp. Hierarchical service level remediation for competing classes based upon achievement of service level goals
US7200219B1 (en) 1999-02-10 2007-04-03 Avaya Technology Corp. Dynamically allocating server resources to competing classes of work based upon achievement of service goals
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
US6691146B1 (en) 1999-05-19 2004-02-10 International Business Machines Corporation Logical partition manager and method
US6467007B1 (en) 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US6681240B1 (en) 1999-05-19 2004-01-20 International Business Machines Corporation Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
US6959291B1 (en) 1999-05-19 2005-10-25 International Business Machines Corporation Management of a concurrent use license in a logically-partitioned computer
US7401112B1 (en) * 1999-05-26 2008-07-15 Aspect Communication Corporation Methods and apparatus for executing a transaction task within a transaction processing system employing symmetric multiprocessors
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US6427152B1 (en) * 1999-12-08 2002-07-30 International Business Machines Corporation System and method for providing property histories of objects and collections for determining device capacity based thereon
CA2328335A1 (en) * 2000-01-24 2001-07-24 Avaya Technology Corp. Automated transaction distribution system and method allowing selection of agents by transaction initiators
US7221377B1 (en) 2000-04-24 2007-05-22 Aspect Communications Apparatus and method for collecting and displaying information in a workflow system
US7739325B1 (en) 2000-04-24 2010-06-15 Aspect Software, Inc. Apparatus and method for extensible real-time workflows
US7844504B1 (en) 2000-04-27 2010-11-30 Avaya Inc. Routing based on the contents of a shopping cart
US6567771B2 (en) * 2000-08-29 2003-05-20 International Business Machines Corporation Weighted pair-wise scatter to improve linear discriminant analysis
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
US7698710B1 (en) * 2000-10-19 2010-04-13 International Business Machines Corporation System and method to improve service in a group of servers
US6785756B2 (en) 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US7003654B2 (en) * 2001-08-16 2006-02-21 Hewlett-Packard Development Company, L.P. Time-based initialization defaults for an electronic information retrieval device
US7178147B2 (en) * 2001-09-21 2007-02-13 International Business Machines Corporation Method, system, and program for allocating processor resources to a first and second types of tasks
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
CA2474477C (en) * 2002-01-30 2011-04-12 Real Enterprise Solutions Development B.V. Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
US7076781B2 (en) * 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
US7380247B2 (en) * 2003-07-24 2008-05-27 International Business Machines Corporation System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section
US20050055694A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, Lp Dynamic load balancing resource allocation
US7516455B2 (en) * 2003-09-05 2009-04-07 Microsoft Corporation Probabilistic scheduling
JP2005084800A (ja) * 2003-09-05 2005-03-31 Fanuc Ltd プログラマブルコントローラ
US7770175B2 (en) 2003-09-26 2010-08-03 Avaya Inc. Method and apparatus for load balancing work on a network of servers based on the probability of being serviced within a service time goal
US8094804B2 (en) 2003-09-26 2012-01-10 Avaya Inc. Method and apparatus for assessing the status of work waiting for service
US7383548B2 (en) * 2003-11-28 2008-06-03 Nortel Networks Limited CPU usage regulation
US8275865B2 (en) * 2004-02-05 2012-09-25 International Business Machines Corporation Methods, systems and computer program products for selecting among alert conditions for resource management systems
US8457300B2 (en) 2004-02-12 2013-06-04 Avaya Inc. Instant message contact management in a contact center
US7729490B2 (en) 2004-02-12 2010-06-01 Avaya Inc. Post-termination contact management
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005089239A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US7885401B1 (en) 2004-03-29 2011-02-08 Avaya Inc. Method and apparatus to forecast the availability of a resource
US7734032B1 (en) 2004-03-31 2010-06-08 Avaya Inc. Contact center and method for tracking and acting on one and done customer contacts
US7953859B1 (en) 2004-03-31 2011-05-31 Avaya Inc. Data model of participation in multi-channel and multi-party contacts
US8000989B1 (en) 2004-03-31 2011-08-16 Avaya Inc. Using true value in routing work items to resources
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8261122B1 (en) * 2004-06-30 2012-09-04 Symantec Operating Corporation Estimation of recovery time, validation of recoverability, and decision support using recovery metrics, targets, and objectives
US7836448B1 (en) * 2004-06-30 2010-11-16 Emc Corporation System and methods for task management
US20060031837A1 (en) * 2004-08-05 2006-02-09 International Business Machines Corporation Thread starvation profiler
US20060037021A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation System, apparatus and method of adaptively queueing processes for execution scheduling
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7949121B1 (en) 2004-09-27 2011-05-24 Avaya Inc. Method and apparatus for the simultaneous delivery of multiple contacts to an agent
US8234141B1 (en) 2004-09-27 2012-07-31 Avaya Inc. Dynamic work assignment strategies based on multiple aspects of agent proficiency
US7949123B1 (en) 2004-09-28 2011-05-24 Avaya Inc. Wait time predictor for long shelf-life work
US7657021B2 (en) 2004-09-29 2010-02-02 Avaya Inc. Method and apparatus for global call queue in a global call center
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
DE102004054571B4 (de) 2004-11-11 2007-01-25 Sysgo Ag Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
US8108871B2 (en) * 2005-01-13 2012-01-31 Hewlett-Packard Development Company, L.P. Controlling computer resource utilization
US7657870B2 (en) * 2005-02-25 2010-02-02 International Business Machines Corporation Method and apparatus for implementing dynamic function groups in a data processing system
US7421616B2 (en) * 2005-03-09 2008-09-02 International Business Machines Corporation Replicated state machine
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
ES2614751T3 (es) 2005-04-07 2017-06-01 Iii Holdings 12, Llc Acceso bajo demanda a recursos informáticos
US7817796B1 (en) 2005-04-27 2010-10-19 Avaya Inc. Coordinating work assignments for contact center agents
US8881233B2 (en) * 2005-05-23 2014-11-04 Microsoft Corporation Resource management via periodic distributed time
US7809127B2 (en) 2005-05-26 2010-10-05 Avaya Inc. Method for discovering problem agent behaviors
US7779042B1 (en) 2005-08-08 2010-08-17 Avaya Inc. Deferred control of surrogate key generation in a distributed processing architecture
US7881450B1 (en) 2005-09-15 2011-02-01 Avaya Inc. Answer on hold notification
US8577015B2 (en) 2005-09-16 2013-11-05 Avaya Inc. Method and apparatus for the automated delivery of notifications to contacts based on predicted work prioritization
US7822587B1 (en) 2005-10-03 2010-10-26 Avaya Inc. Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior
US8116446B1 (en) 2005-10-03 2012-02-14 Avaya Inc. Agent driven work item awareness for tuning routing engine work-assignment algorithms
US10572879B1 (en) 2005-10-03 2020-02-25 Avaya Inc. Agent driven media-agnostic work item grouping and sharing over a consult medium
US8073129B1 (en) 2005-10-03 2011-12-06 Avaya Inc. Work item relation awareness for agents during routing engine driven sub-optimal work assignments
US8411843B1 (en) 2005-10-04 2013-04-02 Avaya Inc. Next agent available notification
US7787609B1 (en) 2005-10-06 2010-08-31 Avaya Inc. Prioritized service delivery based on presence and availability of interruptible enterprise resources with skills
US7752230B2 (en) 2005-10-06 2010-07-06 Avaya Inc. Data extensibility using external database tables
US8495613B2 (en) * 2005-12-22 2013-07-23 Microsoft Corporation Program execution service windows
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US8238541B1 (en) 2006-01-31 2012-08-07 Avaya Inc. Intent based skill-set classification for accurate, automatic determination of agent skills
US8737173B2 (en) 2006-02-24 2014-05-27 Avaya Inc. Date and time dimensions for contact center reporting in arbitrary international time zones
US8127299B2 (en) * 2006-03-28 2012-02-28 Sap Ag Landscape reorganization algorithm for dynamic load balancing
US8442197B1 (en) 2006-03-30 2013-05-14 Avaya Inc. Telephone-based user interface for participating simultaneously in more than one teleconference
US9703285B2 (en) * 2006-04-27 2017-07-11 International Business Machines Corporation Fair share scheduling for mixed clusters with multiple resources
US7936867B1 (en) 2006-08-15 2011-05-03 Avaya Inc. Multi-service request within a contact center
US8391463B1 (en) 2006-09-01 2013-03-05 Avaya Inc. Method and apparatus for identifying related contacts
US8938063B1 (en) 2006-09-07 2015-01-20 Avaya Inc. Contact center service monitoring and correcting
US8811597B1 (en) 2006-09-07 2014-08-19 Avaya Inc. Contact center performance prediction
US8855292B1 (en) 2006-09-08 2014-10-07 Avaya Inc. Agent-enabled queue bypass to agent
US7835514B1 (en) 2006-09-18 2010-11-16 Avaya Inc. Provide a graceful transfer out of active wait treatment
US20080077932A1 (en) * 2006-09-25 2008-03-27 International Business Machines Corporation Mechanism for Automatically Managing the Resource Consumption of Transactional Workloads
US7673305B2 (en) * 2006-10-23 2010-03-02 Hewlett-Packard Development Company, L.P. System and method of expediting certain jobs in a computer processing system
US8767944B1 (en) 2007-01-03 2014-07-01 Avaya Inc. Mechanism for status and control communication over SIP using CODEC tunneling
US20080162246A1 (en) * 2007-01-03 2008-07-03 International Business Machines Corporation Method and system for contract based call center and/or contact center management
US7747705B1 (en) 2007-05-08 2010-06-29 Avaya Inc. Method to make a discussion forum or RSS feed a source for customer contact into a multimedia contact center that is capable of handling emails
US8752055B2 (en) * 2007-05-10 2014-06-10 International Business Machines Corporation Method of managing resources within a set of processes
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8504534B1 (en) 2007-09-26 2013-08-06 Avaya Inc. Database structures and administration techniques for generalized localization of database items
US8578381B2 (en) * 2007-10-26 2013-11-05 Oracle America, Inc. Apparatus, system and method for rapid resource scheduling in a compute farm
US8473956B2 (en) * 2008-01-15 2013-06-25 Microsoft Corporation Priority based scheduling system for server
US7487506B1 (en) 2008-01-16 2009-02-03 International Business Machines Corporation Autonomous management of system throughput
US8856182B2 (en) 2008-01-25 2014-10-07 Avaya Inc. Report database dependency tracing through business intelligence metadata
US8831206B1 (en) 2008-05-12 2014-09-09 Avaya Inc. Automated, data-based mechanism to detect evolution of employee skills
US8385532B1 (en) 2008-05-12 2013-02-26 Avaya Inc. Real-time detective
US10375244B2 (en) 2008-08-06 2019-08-06 Avaya Inc. Premises enabled mobile kiosk, using customers' mobile communication device
US8116237B2 (en) 2008-09-26 2012-02-14 Avaya Inc. Clearing house for publish/subscribe of status data from distributed telecommunications systems
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
US8621011B2 (en) 2009-05-12 2013-12-31 Avaya Inc. Treatment of web feeds as work assignment in a contact center
US8964958B2 (en) 2009-05-20 2015-02-24 Avaya Inc. Grid-based contact center
US8644491B2 (en) 2009-08-21 2014-02-04 Avaya Inc. Mechanism for multisite service state description
US8385533B2 (en) 2009-09-21 2013-02-26 Avaya Inc. Bidding work assignment on conference/subscribe RTP clearing house
US8565386B2 (en) 2009-09-29 2013-10-22 Avaya Inc. Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9516069B2 (en) 2009-11-17 2016-12-06 Avaya Inc. Packet headers as a trigger for automatic activation of special-purpose softphone applications
US8572619B2 (en) * 2010-01-28 2013-10-29 Real Time, Inc. System and method for integrating software schedulers and hardware interrupts for a deterministic system
US8984521B2 (en) * 2010-02-18 2015-03-17 International Business Machines Corporation Computer system performance by applying rate limits to control block tenancy
US8306212B2 (en) 2010-02-19 2012-11-06 Avaya Inc. Time-based work assignments in automated contact distribution
US8875152B2 (en) * 2010-04-22 2014-10-28 Salesforce.Com, Inc. System, method and computer program product for dynamically increasing resources utilized for processing tasks
US8930954B2 (en) 2010-08-10 2015-01-06 International Business Machines Corporation Scheduling parallel data tasks
EP2707796A4 (en) 2011-05-13 2016-06-08 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENHANCING APPLICATION PROCESSING SPEED IN DIGITAL DEVICE
US20130014119A1 (en) * 2011-07-07 2013-01-10 Iolo Technologies, Llc Resource Allocation Prioritization Based on Knowledge of User Intent and Process Independence
US9122782B2 (en) * 2011-09-28 2015-09-01 International Business Machines Corporation Apparatus and computer program product for adaptively determining response time distribution of transactional workloads
US9459930B1 (en) * 2011-10-27 2016-10-04 Amazon Technologies, Inc. Distributed complementary workload scheduling
US8675860B2 (en) 2012-02-16 2014-03-18 Avaya Inc. Training optimizer for contact center agents
US20150082314A1 (en) * 2012-04-18 2015-03-19 Nec Corporation Task placement device, task placement method and computer program
US9348648B2 (en) 2012-09-12 2016-05-24 Salesforce.Com, Inc. Providing a routing framework for facilitating dynamic workload scheduling and routing of message queues for fair management of resources for application servers in an on-demand services environment
US10169090B2 (en) * 2012-09-12 2019-01-01 Salesforce.Com, Inc. Facilitating tiered service model-based fair allocation of resources for application servers in multi-tenant environments
US20150128149A1 (en) * 2013-11-01 2015-05-07 Theplatform, Llc Managing Fairness In Task Bundling Of A Queue
US10402226B2 (en) * 2015-06-05 2019-09-03 Apple Inc. Media analysis and processing framework on a resource restricted device
CN106250214B (zh) * 2015-06-05 2019-11-26 苹果公司 资源受限设备上的媒体分析和处理构架
US10846148B2 (en) * 2015-09-10 2020-11-24 Hewlett Packard Enterprise Development Lp Request of an MCS lock by guests
US9996393B2 (en) 2015-11-19 2018-06-12 International Business Machines Corporation Dynamic virtual processor manager
CN113742028A (zh) * 2020-05-28 2021-12-03 伊姆西Ip控股有限责任公司 资源使用方法、电子设备和计算机程序产品
CN117112236B (zh) * 2023-10-23 2024-02-20 山东曙光照信息技术股份有限公司 基于数据涌流及波动性预测的辖区服务器配置方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2208551A5 (ko) 1972-11-27 1974-06-21 Inst Francais Du Petrole
US5325525A (en) * 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
US5504894A (en) 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
US5442730A (en) 1993-10-08 1995-08-15 International Business Machines Corporation Adaptive job scheduling using neural network priority functions
US5537542A (en) 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
JPH0830471A (ja) * 1994-07-14 1996-02-02 Hitachi Ltd ジョブの実行プロセサ変更方式
US5675739A (en) 1995-02-03 1997-10-07 International Business Machines Corporation Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types
US5838968A (en) * 1996-03-01 1998-11-17 Chromatic Research, Inc. System and method for dynamic resource management across tasks in real-time operating systems

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000055430A (ko) * 1999-02-05 2000-09-05 서평원 교환기 입출력계의 동적 시간 할당 방법
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
KR100471746B1 (ko) * 2002-07-26 2005-03-16 재단법인서울대학교산학협력재단 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
KR100697866B1 (ko) * 2005-04-29 2007-03-22 한국과학기술정보연구원 작업대기시간 검출기능을 구비한 작업관리 시스템과작업대기시간 검출 방법 및 그 프로그램을 기록한 기록매체
KR100890878B1 (ko) * 2006-07-18 2009-03-31 브로드콤 코포레이션 중앙 제어기로부터 순서화된 승인들을 사용하는 최적화된스케쥴링 방법
US8213452B2 (en) 2006-07-18 2012-07-03 Broadcom Corporation Optimized scheduling method using ordered grants from a central controller
KR20110080735A (ko) * 2010-01-07 2011-07-13 삼성전자주식회사 컴퓨팅 시스템 및 방법

Also Published As

Publication number Publication date
EP0880095A3 (en) 1999-08-04
EP0880095B1 (en) 2006-07-05
US6263359B1 (en) 2001-07-17
TW396313B (en) 2000-07-01
DE69835121D1 (de) 2006-08-17
IL123700A (en) 2003-11-23
DE69835121T2 (de) 2006-12-21
EP0880095A2 (en) 1998-11-25
IL123700A0 (en) 1998-10-30

Similar Documents

Publication Publication Date Title
KR19980086596A (ko) 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링
US6785889B1 (en) System and method for scheduling bandwidth resources using a Kalman estimator with active feedback
CA2456840C (en) Methods and systems for multi-policy resource scheduling
McCann et al. A dynamic processor allocation policy for multiprogrammed shared-memory multiprocessors
US7093250B1 (en) Priority scheduler for database access
Hellerstein Achieving service rate objectives with decay usage scheduling
US6341303B1 (en) System and method for scheduling a resource according to a preconfigured plan
EP1385091A2 (en) Dynamic management of virtual partition workload through service level optimization
US7228546B1 (en) Dynamic management of computer workloads through service level optimization
US8612989B1 (en) Assigning resources among multiple groups of workloads in a database system
US20050246705A1 (en) Method for dynamically allocating and managing resources in a computerized system having multiple consumers
US7984447B1 (en) Method and apparatus for balancing project shares within job assignment and scheduling
Freund et al. SmartNet: a scheduling framework for heterogeneous computing
Chiang et al. Production job scheduling for parallel shared memory systems
In et al. Policy based scheduling for simple quality of service in grid computing
US7526767B1 (en) Methods for automatic group switching according to a resource plan
Tran et al. Multi-stage resource-aware scheduling for data centers with heterogeneous servers
Mutka et al. A tool for allocating periodic real-time tasks to a set of processors
Mercer An introduction to real-time operating systems: Scheduling theory
Salamun et al. Dynamic priority assignment in FreeRTOS kernel for improving performance metrics
Franaszek et al. Properties of delay-cost scheduling in time-sharing systems
Sinha et al. Prefetching and caching for query scheduling in a special class of distributed applications
JP2003067203A (ja) 実時間組み込みリソース管理システム
Klusáček et al. A metaheuristic for optimizing the performance and the fairness in job scheduling systems
Islam et al. Analyzing and minimizing the impact of opportunity cost in QoS-aware job scheduling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application