KR20060008896A - 자원 관리 방법 및 장치 - Google Patents

자원 관리 방법 및 장치 Download PDF

Info

Publication number
KR20060008896A
KR20060008896A KR1020057019644A KR20057019644A KR20060008896A KR 20060008896 A KR20060008896 A KR 20060008896A KR 1020057019644 A KR1020057019644 A KR 1020057019644A KR 20057019644 A KR20057019644 A KR 20057019644A KR 20060008896 A KR20060008896 A KR 20060008896A
Authority
KR
South Korea
Prior art keywords
task
memory
data
tasks
memory usage
Prior art date
Application number
KR1020057019644A
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 KR20060008896A publication Critical patent/KR20060008896A/ko

Links

Images

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

본 발명은 자원 관리를 위한 장치 및 방법에 관한 것이며, 실시간 시스템들의 자원 관리에 특히 적합하다. 특히, 본 발명은 주 메모리의 양이 제한되어 있는 저 비용 시스템들상에서 운용되는 어플리케이션들의 메모리 관리에 관련한다. 본 발명은 데이터 처리 시스템에서 복수의 테스크들을 스케줄링하는 방법을 제공하며, 각 테스크는 그와 연관된 메모리 사용량에 기초하여 테스크의 보류를 지정하는 보류 데이터를 가지며, 이 방법은, 복수의 테스크들 중 하나를 처리하는 단계, 테스크와 연관된 보류 데이터와 일치하는 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계, 상기 감시된 입력에 기초하여 상기 테스크의 처리를 보류하는 단계 및 복수의 테스크들 중 다른 하나를 처리하는 단계를 포함한다. 따라서, 본 발명에서, 이런 시스템상에서 실행될 테스크들은 보류 데이터와 함께 사전구성(preconfigured)되고, 이 보류 데이터는 메모리 기반 선점 지점들(memory based preemption points)이라 달리 지칭되며, 이는 테스크의 실행시 다양한 지점들(즉, 선점 지점들에서, 그리고, 그 사이에서)에서 요구되는 메모리의 양들을 지정한다. 데이터 처리 시스템은 처리될 테스크(들) 및 가용 메모리에 기초하여 테스크들의 스케줄링이 제한되어야 하는지 여부를 평가하도록 배열된 대응 처리 수단을 구비한다. 따라서, 본 발명은 메모리 제약들에 기초하여 테스크 처리를 선점화하는 수단을 제공하며, 새로운 메모리 관리 방법 및 새로운 선점 기준 양자 모두를 제공한다.
데이터 처리 시스템, 자원 관리, 스케줄러, 보류, 주 메모리

Description

자원 관리 방법 및 장치{Resource management method and apparatus}
본 발명은 자원 관리 방법 및 그를 위한 장치에 관한 것으로, 특히, 실시간 시스템들의 자원 관리에 적합하지만, 다른 분야를 배제하지는 않는다.
메모리 관리는 자원 관리의 중요한 양태이며, 그 사용을 최적화하기 위해 다양한 방법들이 개발되어 왔다. 한가지 방법은 "가상 메모리"라 지칭되며, 여기서는, 컴퓨터는 주 메모리 중 사용되지 않은 자원들을 부 메모리, 예로서, 하드 드라이브상으로 스왑핑하고, 이들을 현재 동작을 실행하기 위해 필요한 자원들과 대체시킴으로써 메모리가 실제 가지는 것 보다 많은 메인(또는 주) 메모리를 갖는 것으로 나타난다.
가상 메모리는 어플리케이션의 메모리 요구가 가용 주 메모리를 초과할 때, 또는 어플리케이션이 주 메모리내에 존재하지 않는 자원을 엑세스하는 것을 필요로할 때 중 어느 한쪽의 경우에 사용된다. 후자의 상황에서, 가상 메모리 매니저는 비사용 메모리 페이지(예로서, 최근 엑세스되지 않은 것)를 위치시키고, 비사용 페이지를 스왑 파일이라 지칭되는 디스크의 예약된 영역에 기록한다. 그후, 가상 메모리 매니저는 디스크상의 파일 또는 스왑 파일 중 어느 한쪽으로부터 CPU가 요청된 페이지를 주 메모리내로 읽어들이게 한다. 이런 작업이 수행될 때, 가상 메모리 매니저는 제1 및 제2 메모리 페이지들을 맵핑하고, 소정의 내부적 하우스키핑을 수행한다. 보다 많은 정보에 대하여, 독자들은 "H.M. Deitel, An introduction to Operating Systems(Addison Wesley Publishing Company, Inc., ISBN 0-201-14502-2, 1984)"를 참조할 수 있다.
적절한 메인 메모리가 있으면, 가상 메모리는 드물게 사용된다. 비효율적인 메모리에서, 컴퓨터는 그 대부분의 시간을 메모리와 스왑 파일 사이에서 페이지들을 이동시키는데 소모하며, 스왑 파일은 하드 드라이브 엑세스가 메모리 엑세스 보다 1,000배 이상이기 때문에 느리다. 부가적으로, 데이터의 필수적 이동은 비-결정론(non-determinism)을 증가시키며, 시스템의 예측성을 감소시킨다. 따라서, 가상 메모리는 비트당 보다 작은 비용으로 저장 용량의 증가를 촉진하지만, 최악- 경우 엑세스 시간 및 타이밍-예측으로부터의 비결정론적 거동의 증가를 동반한다.
다른 메모리 관리 방법은 가용 메모리에 따른 파일의 선택 및 처리를 수반한다. 이 방법은 극도로 자원 집약적인 이미지 파일들 같은 특정 유형의 파일들에 특히 적합하다. 이런 파일들의 처리는 다수의 서로 다른 파일의 버전들(각각이 서로 다른 해상도 또는 서비스 품질(QoS)에 대응하는)로부터 그 처리 요구들 및 메모리 가용성에 기초하여 일 버전을 선택하는 것을 포함한다. 이미지 파일들의 경우에, 서로 다른 해상도 버전들이 이미지 파일내의 서로 다른 비디오 트랙들에 저장될 수 있으며, 이 방법은 현재 AppleTM에 의해 그 QuickTime VRTM에서 사용되고 있다. 이 접근법의 문제점은 다수의 이미지의 버전들이 입수될 필요가 있으며, 이는 비효율적이 고 고비용이다.
어플리케이션들 및 데이터의 처리는 가혹하게 증가하는 자원들의 양을 수반하게 되며, 이는 컴퓨터가 항상 업그레이드를 필요로하게 된다는 것을 의미한다. 시스템 온 실리콘 또는 시스템 온 칩 디바이스들에 대하여, 메모리는 임의의 주어진 경우에서, 주도적 제한 요인이되며, 그 이유는, 소요되는 실리콘 영역의 양의 견지에서, 다른 처리 코어(MIPS 또는 VLIW)의 추가는 더 이상 문제가 되지 않기 때문이다. 결과적으로, CPU 사이클들이 아닌 메모리가 시스템의 신 세대들에 대한 병목이 되기 쉽다.
추가 메모리의 조달을 필요로 하지 않고, 현존하는 방법들 보다 덜 프로세서 집약적이며, 따라서, 보다 저렴한 메모리 관리 방법이 존재하는 것이 바람직하다.
본 발명의 양태에 따라서, 데이터 처리 시스템에서 복수의 테스크들을 스케줄링하는 방법이 제공되며, 각 테스크는 그와 연관된 메모리 사용량에 기초한 테스크의 보류를 지정하는 보류 데이터를 가지고, 이 방법은
복수의 테스크들 중 하나를 처리하는 단계,
테스크와 연관된 보류 데이터와 일치하는 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계,
상기 감시된 입력에 기초하여 상기 테스크의 처리를 보류하는 단계, 및
복수 중 다른 하나를 처리하는 단계를 포함한다.
하기의 설명에서, 테스크의 보류는 테스크 선점(preemption) 또는 테스크의 선점을 지칭하며, 용어 "테스크"는 메모리, CPU, I/O 디바이스들 등 같은 시스템 자원들을 위한 그 소유물상에서 완료할 수 있는 실행 단위를 나타낸다. 일 실시예에서, 테스크는 작업들을 작업들의 지속적 실행의 연속으로서 보여질 수 있으며, 여기서, 각 작업은 하나 이상의 서브-작업들을 포함한다. 예로서, 테스크는 "비디오 스트림을 디멀티플렉싱하는 것"을 포함할 수 있으며, 도입 스트림들의 판독, 스트림들의 처리 및 그에 관한 데이터의 출력을 수반한다. 이들 단계들은 각 도입 데이터 스트림에 관하여 수행될 수 있으며, 그래서, 단일 스트림에 관한 판독, 처리 및 출력은 하나의 작업을 수행하는 것에 대응하고, 따라서, 판독 및 처리되는 복수의 데이터 패킷들이 존재할 때, 작업은 대응하는 복수의 횟수로 수행된다. 서브 작업은 작업의 기능적 콤포넌트에 관한 것으로 고려될 수 있다.
본 발명의 일 실시예에서, 데이터 처리 시스템에 의해 사용되는 메모리의 양은 테스크의 실행시 다양한 지점들에서 필요한 메모리의 양들을 지정하는 소위 선점 지점들을 경유하여 보류 데이터에 의해 간접 제어된다.
이들 선점 지점들은 메모리의 결여를 통한 데이터 처리 시스템의 폭주를 피하기 위해 활용된다. 실시간 테스크가 복수의 서브 작업들을 포함하는 것으로 특징지워질 때, 선점 지점들은 테스크의 서브 작업 경계들과 일치하는 것이 바람직하다. 하기의 설명에서, 보류 데이터는 우선 메모리 데이터 또는 단순한 메모리 데이터를 지칭한다.
일 배열에서, 입력(테스크와 연관된 보류와 일치하는 테스크의 메모리 사용량을 나타내는)은 디스케줄링 이벤트를 요청하는 테스크로부터 수신되고, 선점 지점들은 예로서, 선점 지점이 발생되었다는 것을 지정하는, 디스케줄링 이벤트를 요청하는 코드의 라인을 경유하여 테스크에 이식될 수 있다. 대안적 배열에서, 입력은 테스크에 의해 사용되는 메모리의 양일 수 있으며, 그래서, 감시 단계는 그후 그 테스크와 연관된 보류 데이터에 대한 실제 메모리 사용량을 감시하는 것을 수반한다.
편리하게, 복수의 테스크들 각각과 연관된 최대 메모리 사용량을 나타내는 제1 데이터 및 복수의 테스크들을 처리하기 위해 가용한 메모리를 나타내는 제2 데이터를 수신하는 단계 및 제1 및 제2 데이터에 기초하여, 테스크들을 처리하기에 충분한 메모리가 가용한지 여부를 나타내는 단계를 포함한다. 상기 감시 및 보류 단계들은 그후 불충분한 메모리를 나타내는 것에 응답하여서만 적용된다.
이 배열에서, 테스크들 모두를 동시에 처리하기에 불충분한 메모리를 갖는 경우, 데이터 처리 시스템은 보류 또는 선점 지점들만을 사용한다.
편리하게, 이 방법은 테스크들의 종료를 감시하는 단계와, 테스크 종료에 응답하여 메모리의 가용성을 식별하는 상기 단계를 반복하는 단계를 포함한다. 일 배열에서, 테스크가 종료된 이후, 동시에 잔여 테스크들을 실행하기에 충분한 메모리가 존재하는 경우, 감시 단계는 불필요한 것으로 간주되며, 메모리 사용량에 관한 입력들의 어떠한 감시도 없이 테스크들이 진행되는 것이 허가된다. 제2 배열에서, 방법은 다른 테스크들의 메모리 사용량에 관한 입력들을 감시하면서 비 실시간 테스크를 처리하는 단계를 포함한다.
본 발명의 제2 양태에서, 복수의 테스크들을 실행하도록 배열되어 있으면서, 테스크들의 실행시 사용하기 위한 특정 메모리 양에 대한 엑세스를 가지는 데이터 처리 시스템에 사용하기 위한 스케줄러가 제공되며, 이 스케줄러는
테스크와 연관된 최대 메모리 사용량을 나타내는 데이터를 수신하도록 배열된 데이터 수신기,
테스크들을 실행하기 위해 충분한 메모리가 존재하는지 여부를 수신된 데이터에 기초하여 식별하도록 배열된 평가기,
테스크에 의한 특정 메모리 사용량과 일치하는, 테스크 실행 동안의 보류를 위해 적어도 하나의 테스크를 선택하도록 배열된 선택기를 포함하고,
평가기가 복수의 테스크들을 실행하기에 불충분한 메모리가 존재하는 것으로 식별하는 것에 응답하여, 선택기는 데이터 처리 시스템에 가용한 특정 메모리 양과 그 특정 메모리 사용량에 기초하여, 보류를 위한 하나 이상의 테스크들을 선택하고, 스케줄러는 특정 메모리를 사용하는 테스크에 응답하여 선택된 태스크 또는 각 선택된 테스크의 실행을 보류한다.
유리하게, 스케줄러는 하드웨어 또는 소프트웨어로 구현될 수 있으며, 데이터 처리 시스템은 디지털 텔레비전 시스템 같은 고 체적 소비자 가전기기일 수 있다.
본 발명의 제3 양태에 따라서, 데이터 처리 시스템에 데이터를 전송하는 방법이 제공되며, 이 방법은
테스크 처리시 데이터 처리 시스템이 사용하기 위한 데이터를 전송하는 단계와,
그 처리 동안 메모리 사용량에 기초하여 테스크의 보류를 지정하는 보류 데이터를 전송하는 단계를 포함하고,
여기서, 데이터 처리 시스템은,
테스크와 연관된 보류 데이터와 일치하는 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계와,
상기 테스크의 처리를 보류하는 단계를 포함하는 프로세스를 수행하도록 배열된다.
이 제3 양태는 따라서, 처리될 테스크에 대응하는 보류 또는 선점 데이터의 배포와 관련된다. 보류 데이터는 정규 방송 신호의 일부로서 배포되거나(예로서, 다른 소스들을 동반하는 보류 데이터를 갖는 부가적인 테스크들) 또는 데이터 처리 시스템들의 일반적 업그레이드의 일부로서 서비스 공급자에 의해 배포될 수 있다. 또한, 데이터 처리 시스템은 별개의 링크 또는 디바이스(예로서, 플로피 디스크 또는 CD-ROM)를 경유하여 갱신될 수 있다.
본 발명의 실시예들의 부가적인 이득은 데이터 처리 시스템이 현재 가능한 것 보다 적은 메모리로 구성될 수 있다는 것이며, 이는 메모리를 사용하는 처리 디바이스의 비용이 낮아진다는 것을 의미한다. 부가적으로, 또는 대안적으로, 오프-칩 메모리 또는 부 메모리의 엑세스에 대한 필요성을 제거하는 것으로 인해, 예측성이 향상된다.
본 내용이 달리 지시하지 않는 한 용어 "메모리"는 하기의 설명에서 랜덤 엑세스 메모리를 나타내기 위해 사용된다.
첨부 도면에 예시된 바와 같은 본 발명의 양호한 실시예들의 하기의 보다 특정한 설명으로부터 본 발명의 다른 목적들, 장점들 및 특징들을 명백히 알 수 있을 것이다.
도 1은 본 발명의 실시예가 동작하는 디지털 텔레비전 시스템의 예를 도시하는 개략도.
도 2는 도 1의 셋톱 박스를 구성하는 콤포넌트들을 보다 상세히 도시하는 개략적인 블록도.
도 3a는 본 발명의 실시예에 따른 테스크 인터페이스의 콤포넌트들을 도시하는 개략도.
도 3b는 도 3a에 예시된 테스크 인터페이스의 콤포넌트들 사이의 관계를 도시하는 개략도.
도 4는 본 발명의 실시예에 따른, 도 1 및 도 2에 도시된 셋톱 박스의 프로세서의 콤포넌트들을 도시하는 개략 블록도.
도 5a 및 도 5b는 도 4의 콤포넌트들에 의해 수행되는 단계들을 도시하는 총체적인 흐름도.
도 6은 도 4의 콤포넌트들에 의해 수행되는 추가 단계들을 도시하는 흐름도.
도 7은 주기성 테스크의 처리와 연관된 테스크 스위치 페널티 및 메모리 사용량을 도시하는 개략도.
적어도 몇몇의 실시예에서, 테스크는 실시간 테스크를 포함하며, 데이터는 약간의 시간 제약 내에서 처리 및/또는 전달되고, 테스크의 계획 및 수행에 있어서 어느 정도의 정확도가 요구된다. 실시간 테스크의 예로는 비디오와 오디오 콤포넌트(CD의 제조 포함)를 갖는 멀티미디어, 비디오 캡쳐 및 플레이백, 전화 어플리케이션, 음성 인식 및 합성을 포함하고, 그러한 테스크를 처리하는 디바이스는 디지털 TV와 셋톱 박스(STB) 등의 소비자 단말기와, 전술한 멀티미디어 어플리케이션을 처리하도록 배치된 컴퓨터를 포함한다.
HVE(High Volume Consumer Electronics) 분야에서, 디지털 텔레비전 시스템은 복수의 상이하고 관계가 없는 이미지를 처리하고 디스플레이하며 사용자로부터의 입력(예로서, 간단한 채널 변경에서 상호 작용 피드백까지의 사용자 입력)을 수신 및 처리하도록 예상된다. 예로서, 시청자는 통상 축구 시합의 진행을 관찰하면서 영화를 보기를 원한다. 이들 요구를 수용하기 위하여, 디지털 텔레비전 시스템은 텔레비전 스크린의 코너에 배치된 비교적 작은 윈도우[PiP(Picture-in-Picture)로서 공지됨]에 축구 시합을 디스플레이하도록 배치될 수 있는 한편, 영화는 나머지 스크린을 차지한다. 양쪽 디스플레이 영역은 일정하게 갱신되어 사용자는 어떠한 시간에도 상기 2개 사이의 초점을 전환시킬 수 있다. 따라서, 이 실시예는 하나는 출력으로서 메인 윈도우를 갖고 다른 하나는 출력으로서 PiP 윈도우를 갖는 2개의 어플리케이션을 포함한다. 디지털 텔레비전 시스템은 하나는 메인 윈도우에 대응하고 하나는 PiP 윈도우에 대응하는 2개의 독립적인 스트림을 처리하도록 배치될 수 있고, 각 스트림은 통상 데이터 처리를 위해(오디오와 비디오 양쪽을 위해) 다중 실시간 테스크를 포함한다.
셋톱 박스 등의 소비자 제품은 튼튼하고, 예로서 고품질 디지털 오디오 및 비디오 처리에 의해 강요되는 엄격한 타이밍 요건을 충족시키도록 예상된다. 소비자는 철저한 텔레비전 세트를 "시스템을 재부팅하시오"라는 메시지에 의해 간단히 용인하지 않는다. 그러나, 동시에, 특히 메모리에서의 시스템 자원은 그러한 소비자 제품에 매우 비용 효율적으로 사용되어야 한다.
셋톱 박스는 실시간 제약을 갖는 시스템의 일례이다. 도 1에 도시된 바와 같이, 종래의 구조에서, 셋톱 박스(100)는 텔레비전 분배 시스템(1)을 통해 텔레비전(101)과 컨텐츠 공급자(또는 서버)(103)에 연결되어, 텔레비전(101) 상에 디스플레이하기 위해 컨텐츠 공급자(103)로부터의 데이터를 수신하도록 배치된다. 셋톱 박스(100)는 또한 사용자 인터페이스(105)로부터의 신호를 수신하고 그 신호에 응답하는데, 상기 사용자 인터페이스는 셋톱 박스(100)에 선택 신호를 제공할 수 있는 잘 알려진 임의의 사용자 인터페이스를 포함할 수 있다. 일 구성에서, 사용자 인터페이스(105)는 원격 제어 디바이스(102)로부터의 신호를 수신하기 위한 적외선 원격 제어 인터페이스를 포함한다.
셋톱 박스(100)는 안테나 또는 케이블 텔레비전 출구를 통해 데이터를 수신하고, 데이터를 처리하거나 데이터를 텔레비전(101)에 직접 전송한다. 사용자는 텔레비전(101)에 디스플레이된 정보를 보고, 디스플레이된 정보를 기초로 하여 선택 정보를 사용자 인터페이스(105)를 통해 입력한다. 사용자 선택 신호의 일부 또는 전부는 셋톱 박스(100)에 의해 컨텐츠 공급자(103)에게 전송될 수 있다. 셋톱 박스(100)로부터 서버(103)로 송신된 신호는 셋톱 박스(100)의 식별 및 사용자 선택을 포함한다. 다른 정보도 또한 셋톱 박스(100) 및 컨텐츠 공급자(103)의 특정한 실시에 따라 제공될 수 있다.
도 2는 셋톱 박스(100)의 내부 콤포넌트를 보여주는 개념도이다. 이들 콤포넌트의 정확한 물리적 구성 및 상호 연결을 반드시 반영할 필요가 없는 개념도인 것으로 의도된다. 셋톱 박스(100)는 이 박스(100)의 전체 작동을 제어하는 처리 및 제어 유닛(201)(이하, 프로세서라 칭함)을 포함한다. 상기 프로세서(201)에는 텔레비전 동조기(203), 메모리 디바이스(205), 기억 장치(206), 통신 디바이스(207) 및 원격 인터페이스(209)가 연결되어 있다. 텔레비전 동조기(203)는 전술한 바와 같이 안테나 또는 케이블 텔레비전 출구로부터 시작될 수 있는 전송 라인에서의 텔레비전 신호를 수신한다. 프로세서(201)는 사용자 인터페이스(105)의 작동을 제어하여, 라인(213)을 통해 텔레비전(101)에 데이터, 오디오 및 비디오 출력을 제공한다. 원격 인터페이스(209)는 무선 접속부(215)를 통해 원격 제어부로부터의 신호를 수신한다. 통신 디바이스(207)는 데이터 경로(217)를 통해 박스(101)와 웹 서버 등의 하나 이상의 원격 처리 시스템 사이에서 데이터를 전달하도록 배치된다. 통신 디바이스(207)는 종래의 전화기(POTS) 모뎀, ISDN(Integrated Services Digital Network) 어댑터, xDSL(Digital Subscriber Line) 어댑터, 케이블 텔레비전 모뎀 또는 다른 임의의 적절한 데이터 통신 디바이스일 수 있다.
이하, 본 발명의 실시예를 보다 상세히 설명하기로 한다. 프로세서(201)는 채널 변경, GUI(Graphical User Interface; 105)에 디스플레이된 메뉴 옵션의 선 택, 텔레텍스트와의 상호 작용, 도입 데이터의 디코딩 및 텔레비전(101)에서 현재 보이는 기록 장치(206) 상의 데이터 기록 등과 같은 셋톱 박스의 제어와 관련된 복수의 테스크를 처리하도록 배치되는 것으로 가정한다. 일반적으로, 그러한 제어 테스크는, 셋톱 박스(100)의 특성, 도입 비디오 신호[라인(211)을 경유], 사용자 입력 및 임의의 다른 보조 입력을 기초로 하여 셋톱 박스(100)의 작동 세팅을 결정한다. 도 3a를 참조하면, 그러한 테스크는 테스크에 대응하는 선점 메모리 데이터(303)를 포함하는 프로그램 가능한 인터페이스(301)에 의해 달성된다. 도 3a에서, 단일 테스크(τ1)에 대응하는 메모리 데이터(303)는 3개의 선점 지점(j=3)을 갖는 테스크(τ1)의 경우에 도시되어 있다.
본 기술 분야에 공지된 바와 같이, 콤포넌트(예로서, 하나 이상의 테스크를 포함할 수 있는 소프트웨어 콤포넌트)는 이 콤포넌트가 규정하는 특성, 기능 또는 방법 및 이벤트를 포함하는 프로그램 가능한 인터페이스를 가질 수 있다[보다 많은 정보의 경우, 리더를 Clemens Szyperski(Component Software - Beyond Object -oriented Programming, Addison-Wesley, ISBN 0-201-17888-5, 1997)이라 칭함]. 본 실시예에서, 테스크는 최소한 테스크에 의해 요구되는 메인 메모리 데이터를 포함하는 인터페이스에 의해 달성된다.
본 실시예를 위해, 테스크는 주기적이고 실시간이라 가정하고, 주기(T)와 위상(F)을 특징으로 하며(여기서, 0 <= F < T), 이것은 테스크가 일련의 작업을 포함하도록 고려될 수 있고, 각 작업은 시간(F+nT, 여기서 n=0...N)에 해제된다. 셋톱 박스(100)는 3개의 테스크-GUI(105)에 메뉴를 디스플레이, 컨텐츠 공급자(103)로부터의 텔레텍스트 정보를 회복 및 일부 비디오 신호를 처리-를 수행하는 것으로 간주되며, 3개의 테스크의 각 작업은 복수의 서브 작업을 포함하는 것으로 간주된다. 각 제안의 경우, 서브 작업은 연속하여 수행되는 것으로 간주된다.
이들 서브 작업 중 적어도 일부가 선점될 수 있고, 선점될 수 있는 이들 서브 작업들 사이의 경계는 선점 지점을 제공하며, 표 1에 요약되어 있다.
테스크 τi 테스크 설명 테스크 τi(m(i))중 선점할 수 있는 서브 작업의 개수
τ1 GUI에 메뉴를 디스플레이 3
τ2 컨텐츠 공급자로부터의 텔레텍스트 정보를 회복 2
τ3 비디오 신호를 처리 2
또한, 도 3b를 참조하면, 각 테스크의 경우에, 메모리 데이터(303)는 선점 지점에 요구되는 최대 메모리 사용량(MPij) 등의 선점 지점(Pij)과 관련된 정보, 선점 지점 간격 내에 요구되는 최악의 경우의 메모리 사용량(MIij) 등의 연속적인 선점 지점 사이의 정보를 포함한다(i는 테스크 τi를 나타내고 j는 선점 지점을 나타낸다).
보다 구체적으로, 메모리 데이터(303)는, 테스크 τi(Pij; 303a)의 선점 지점, 그 테스크의 선점 지점(j)에서 테스크 τi의 최대 메모리 요구(MPij)(여기서, 1≤j≤m(i)303b), 테스크 τi의 서브 작업(j)에 대응하는 연속적인 선점 지점(j와 (j+1)) 사이의 간격(Jij)(여기서 1≤j≤m(i)303c) 및 그 테스크의 간격(j)에서 테스크 τi의 최대(즉, 최악의 경우의) 메모리 요구(MIij)를 특정하는 데이터를 포함한다.
표 2는 현 실시예의 메모리 데이터(303)를 도시한다[각 테스크는 현 실시예에서 제1 테스크 τ1에 대응하는 메모리 데이터(303)가 표 2의 제1열의 데이터를 포함하고, 제2 테스크 τ2에 대응하는 데이터(303)가 표 2의 제2열을 포함하도록 그 자체의 인터페이스를 갖는다].
테스크 τi MPi ,1 MIi ,1 MPi ,2 MIi ,2 MPi ,3 MIi ,3
τ1 0.2 0.7 0.2 0.4 0.1 0.6
τ2 0.1 0.5 0.2 0.8 - -
τ3 0.1 0.2 0.1 0.3 - -
본 실시예에 의해 처리된 문제점 중 하나는 1.5 Mbyte의 메모리를 탑재한 셋톱 박스(100)가 일반적인 비메모리 기반 선점화하에서 어떻게 거동하는 지를 고려할 때 보일 수 있다.
종래의 구성에서, 프로세서(201)는 소정 종류의 시간 분할의 또는 우선순위 기반 선점에 따라 테스크를 계획하는 것으로 예상되는데, 이것은 모든 3개의 테스크가 동시에, 즉 동시에 효율적으로 구동하는 것을 의미한다. 따라서, 각 테스크는 그 최상의 메모리 집중적 서브 작업을 동시에 구동하도록 계획될 수 있다. 이들 3개의 테스크의 최악의 경우의 메모리 요구(Mp)는 다음과 같이 주어진다.
Figure 112005058209586-PCT00001
(수학식 1)
테스크 τ1, τ2 및 τ3의 경우에, MP는 테스크 τ1의 최대 메모리 요구(MI1 ,1) 더하기 테스크 τ2의 최대 메모리 요구(MI3 ,2) 더하기 테스크 τ3의 최대 메모리 요구(MI3,2)이다. 이들 최대 요구는 표 전체에서 현저하게 지시된다.
Figure 112005058209586-PCT00002
이것은 셋톱 박스(100)에 유효한 메모리를 0.3 Mbyte 초과하므로, 어떠한 경고 조치가 없는 경우에, 이들 서브 작업이 동시에 처리되면, 셋톱 박스(100)가 파괴된다.
이하, 도 4, 5a, 5b 및 6을 참조하여, 이 실시예에서 프로세서(201)가 메모리 데이터(303)을 사용하여 그러한 상황이 발생하지 않도록 보장하는 것을 설명하기로 한다. 본질적으로, 실시예는 연속적인 지시를 수행하는 프로세서(201)의 요소들에 의해 실행될 수 있는 단계들을 포함한다. 상기 지시는 기억 장치(206)에 저장되어, 컴퓨터 판독 프로그램 일습 또는 하나, 예로서 C 프로그래밍 언어로 구현된다.
실시예의 특징은 주로 기능성 관점에서 설명된다. 이 기능성이 실시되거나, "코딩"되는 정확한 방식은 본 발명의 이해에 중요하지 않다. 많은 실시(절차상 또는 객체 지향)가 가능하고, 이 설명으로부터 본 기술의 숙련자에게 쉽게 명백할 것이다.
도 4는 스케쥴러(401)와 테스크 매니저(403)를 비롯하여 본 발명의 실시예에 관련된 프로세서(201)의 콤포넌트를 보여주는 개략도이다. 스케쥴러(401)는 계획 알고리즘에 따라 테스크의 수행을 계획하고 생성된 후에 각 테스크 τi에 대한 데이터 구조(407i)를 생성 및 유지한다. 바람직하게는, 스케쥴러(401)는 임의의 지점에서 적시에 본질적으로 보장하는 종래의 우선순위 기반 선점 계획 알고리즘을 채용하고, 현재 작업하는 테스크는 시스템에서 테스크를 작업할 준비가 된 모든 것 중에서 가장 높은 우선순위를 갖는 것이다. 본 기술 분야에 알려진 바와 같이, 계획 거동은 작업하거나 작업 준비가 된 테스크에 대해 선점을 선택적으로 가능화하고 불능화함으로써 변경될 수 있다.
테스크 매니저(403)는 새롭게 수신된 테스크에 대응하는 메모리 데이터(303)를 수신하여 선점이 요구되는지의 여부를 평가하도록 배치되며, 필요에 따라, 이 새롭게 수신된 테스크를 우선권을 요청하는 스케쥴러(401)에 보내도록 배치된다. 테스크 매니저(403)의 기능성과, 테스크 매니저(403)로부터 수신된 데이터에 응답하여 테스크 및/또는 스케쥴러(401)에 의해 수행되는 단계들을 도 4, 5a, 및 5b를 참조하여 보다 상세히 설명하기로 한다. 도 5a와 5b는 표 2에서 규정된 테스크의 상세 내용을 수신하고, 테스크 τ1(오직 τ1)이 현재 프로세서(201)에 의해 처리되며, 스케쥴러(401)가 메모리 기반 제약이 없는 모드에서 초기에 작동된다고 가정했을 때, 테스크 매니저(403)에 의해 수행되는 단계들을 총체적으로 보여주는 흐름도이다.
단계 501에서, 테스크(τ2)는 테스크 매니저(403)에 의해 수신되며, 이는 인터페이스(Int2)로부터 메모리 데이터(303)를 판독하고, 스케줄러(401)가 메모리 기반 선점에 따라 동작하는지 여부를 나타내며(단계 502), 본 예에서는 그렇지 않기 때문에, 테스크 매니저(403)는 스케줄러(401)가 메모리 기반 선점을 변경할 필요가 있는지 여부를 평가한다. 따라서, 이는 테스크 매니저(401)가 메모리 데이터 저장부(405)로부터 모든 현재 실행중인 테스크들(본 예에서는 테스크 τ1)에 대응하는 최악 경우 메모리 데이터를 구하고, 프로세서(201)에 가용한 메모리 자원과 평가된 최악 경우 메모리 요구들을 비교(단계 504)하게 하는 것을 수반한다. 표 2에서 도입된 예에 이어, τ1 및 τ2 를 위한 수학식 1은 하기와 같다.
Figure 112005058209586-PCT00003
이는 가용 시스템 요구들에 정확히 일치하며, 그래서, 메모리 기반 선점에 대한 스케줄러의 동작 모드를 변경할 필요가 없다(즉, 메모리 사용량에 기반하여 스케줄러(401)를 제약할 필요가 없다). 따라서, 스케줄러(401)가 -예로서, 테스크 τ2 의 실행 시간 제약들을 충족시키기 위해(이는 동시에 메모리내에서 양 테스크들을 효과적으로 체류시키는 것을 의미함)- 테스크 τ1 과 테스크 τ2 사이를 스위칭하는 경우에, 프로세서(201)는 가용한 바 보다 많은 메모리를 엑세스하는 일이 없다.
다음에, 그리고, 테스크 τ1 과 τ2 가 완료되기 이전에, 다른 테스크 τ3 가 수신된다(단계 501). 테스크 매니저(403)는 단계 503으로 진행하고, 테스크 τ3 과 연관된 인터페이스(Int3)로부터 메모리 데이터(303)를 판독하여 스케줄러가 메모리 기반 선점로 변경할 필요가 있는지 여부를 평가한다. 스케줄러가 테스크들 τ1 및 τ2 를 멀티 테스킹중인 것으로 가정하면, 모든 2개 테스크들을 위한 최악 경우 메모리 요구들은 이제 아래와 같다.
Figure 112005058209586-PCT00004
이는 가용 시스템 자원들을 초과하며, 그래서, 단계 505에서, 테스크 매니저(403)는 메모리 데이터 저장부(405)로부터 모든 3개 테스크들에 관한 메모리 사용량 데이터(MPij, MIij 303b, 303d)를 요청하고 구하며, 이 구해진 메모리 사용량 데이터에 기초하여 모든 3개 테스크들을 실행하기에 충분한 자원들이 존재하는지 여부를 평가한다(단계 507). 이는 하기의 수학식의 평가를 통해 확인될 수 있다.
Figure 112005058209586-PCT00005
(수학식 2)
이 메모리 요구가 가용 메모리 보다 낮은 것은 그 메모리 사용량에 기초하여 테스크들이 선점화되며, 모든 3개 테스크들이 동시에 실행될 수 있다는 것을 의미한다.
따라서, 테스크 매니저(403)는 그 설계된 선점 지점들(MPij)에서 스케줄러(401)에 디스케줄 명령들을 전송하도록 테스크들에게 명령함으로써(단계 509) “메모리 기반 선점 모드”를 발동한다. 이 모드에서, 스케줄러(401)는 임의의 시간 지점에서, 그 선점 지점들 중 하나 이외의 일 지점에서 한번에 최대 하나의 테스크가 존재할 수 있게 하는 제약조건으로, 선점 지점으로부터, 다음 선점 지점으로 각 테스크가 비선점적으로 운용할 수 있게 한다. 새로 도달된 테스크가 선점 지점에서 시작하는 것으로 가정하면, 스케줄러(401)는 이 조건이 현재 구동중인 테스크들에 대하여 유지되게 하고, 그에 의해, 선점 지점에 도달하도록 모든(하나 제외) 테스크들을 제약하는 것을 보증한다. 이는 현재의 예에 관하여, 가장 잘 설명되며, 테스크(τ1)가 서브 작업(2)을 실행하고, 테스크(τ2)가 서브 작업(1)을 처리하기를 대기하는 동안 테스크 매니저(403)가 메모리 기반 선점 모드에 있는 경우, 최대 하나의 서브 작업이 처리되는 것을 보증하는 조건이 자동으로 충족된다. 그러나, 테스크(τ1)가 서브 작업(2)을 실행하고, 테스크(τ2)가 서브 작업(2)을 지속하기를 대기하는 경우, 스케줄러(401)는 테스크(τ2)가 지속되기를 허가하기 이전에, 테스크(τ1)가 그 서브 작업을 완료하고, 선점 지점(MPi ,3)에 도달하는 것을 허용한다.
따라서, 메모리 기반 선점 모드에서, 스케줄러(401)는 단지 그 메모리 선점 지점들에서 테스크들을 선점하는 것만이 허용된다(즉, 그 메모리 기반 선점 지점들에서 테스크로부터의 디스케줄 요청에 응답하여).
도 6은 테스크가 그 종결을 테스크 매니저(403)에게 알리는 경우에, 테스크들 중 하나가 종료될 때 수반되는 단계들을 예시하는 흐름도이며, 단계 601에서, 종결 테스크는 테스크 매니저(403)에게 종결사실을 알리고, 테스크 매니저(403)가 수학식 1을 평가(603)하게 하며, 최악 경우 메모리 사용량(이 테스크의 제거를 고려)이 프로세서(201)에 가용한 것 보다 낮은 경우에, 테스크 매니저(403)는 단계 605에서 메모리 기반 선점을 취소할 수 있으며, 이는 외부적 사건들에 보다 신속하게 시스템이 반응할 수 있게 하는 이득을 갖는다(프로세서가 더 이상 서브 작업의 기간 동안 “차단”되어 있지 않기 때문에). 일반적으로, 테스크의 종결은 통상 그 환경에 의해, 예로서, 사용자에 의한 채널의 스위칭 또는 적용되는 인코딩의 데이터 스트림의 변경(다른 종류의 디코딩을 필요로함)에 의해 유발되며, 이는 테스크 매니저(403) 및/또는 스케줄러(401)가 테스크의 종결을 인지하고, 가능하게는 심지어 테스크를 종결하도록 명령한다는 것을 의미한다. 이런 경우에, 단계 601은 이중적이다.
대안적으로, 테스크 매니저(403)는 처리를 위해 여전히 실행중인 테스크들 중 하나의 다른 버전을 선택할 수 있다. 일부 테스크들은 그와 연관된 가변적인 서비스 레벨들을 가질 수 있으며, 그 각각은 서로 다른 자원들의 세트에 대한 엑세스를 필요로하고, 이는 서로 다른 “서비스 품질”(QoS)을 수반한다. Bril 등은 “QoS for consumer terminals and its support for product families(published in Proceedings International Conference on Media Futures, Florence, May 8-9 2001, pp.299-303)"에서, 서로 다른 QoS에, 그리고, 따라서, 자원 요구에 대응하는 다수의 버전들을 갖는 어플리케이션의 개념을 설명한다.
또 다른 대안으로서, 테스크 매니저(403)는 다른 프로세스들(비 임계적, 즉, 소프트 제약들을 가지는 것들)이 구동될 수 있게 할 수 있다. 이들 대안들은 단지 테스크 매니저(403)/스케줄러(401)를 위한 가능한 옵션들의 예들이며, 전체의 목록을 제시하는 것은 아니다.
상술된 실시예에서, 선점이 단지 주 메모리 요구들에 관하여 설명되었지만, 테스크들은 추가로, 개별 테스크 데드라인들 및 시스템 효율 같은 타이밍 제약들에 기초하여 선점될 수 있다. 상술된 예에서, 테스크들이 그 선점 지점 데이터(303a)에 따라 선점될 때, 실제 메모리 사용량(MD)은 단지 1.1Mbytes이다. 따라서, 부가적인 0.4Mbytes가 활용될 수 있으며, 인터페이스가 캐시 메모리 사용량에 관한 데이터를 포함하는 경우, 테스크 매니저(403)는 시스템 자원들의 사용을 최적화할 수 있다(전체 시스템 효율에 관하여). 도 7은 시간 T 이후 하나의 작업(상술된 바와 같이, 하나 이상의 서브 작업들을 포함함)을 반복적으로 처리하는 테스크와 연관된 테스크 스위치 페널티(703) 및 메모리 사용량(701)을 도시하며, 이는 주 메모리 사용량 및 테스크 스위치 패널티가 각 기간 동안 동일하다는 것을 가정한다(사실, 이는 그렇게 되기 쉽지 않으며, 그 이유는, 서브 작업들이 서로 다른 기간들에서 서로 다른 실행 시간들을 가질 수 있기 때문이다). 테스크 매니저(403)는 따라서, 그 메모리 사용량에 부가적으로 테스크와 연관된 테스크 스위치 패널티(즉, 실행 루프들-주 메모리로부터 캐시로 명령들의 세트를 패칭하는- 사이의 스위칭에 수반되는 패널티)를 알수 있으며, 주 메모리와 캐시 메모리의 사용량을 균형화하는 객체 펑션을 처리한다. 실질적으로, 메모리 기반 테스크 선점은 테스크 스위치 패널티를 최소화하는 것을 목적으로 하는 일부 선점을 발하면서, 선점 지점 데이터(303a)의 부분집합에 한정될 수 있다. 대안적으로, 메모리 데이터(303)는 서브세트(들)를 명시적으로 지정, 예로서, 하나의 부분집합이 가용한 주 메모리의 양을 초과하지 않으면서, 캐시 거동을 최적화하는 선점 지점들을 제공하고, 다른 부분집합이 주 메모리 요구들을 최소화하는 선점 지점들을 제공하는 둘 이상의 선점 지점들의 부분집합들을 지정할 수 있다.
촉발(invoke)시, 본 발명에 따른 메모리 기반 선점 제약들은 필수적인 반면에, 캐시 메모리에 기초한 선점은 순수히 선택적이며, 그 이유는 캐시 기반 선점이 디바이스 등의 동작성 이외의 성능을 향상시키는 것에 관련되기 때문이다.
상기 실시예에서, 테스크가 주기성인 것으로 가정하였지만(즉, 처리가 사전결정된-일반적으로 주기적인-인터벌들로 발생하고, 처리 데드라인들이 하드 제약들에 의해 표현됨), 실시예들은 그 처리가 주기적 인터벌들로 이루어지지 않지만(즉, 작업들 사이의 간격이 연속적 작업들 사이에서 변하는 경우), 그 데드라인들이 하드 제약들에 의해 절대 표현되지 않는 비주기적 테스크들에 적용될 수 있다. 이런 테스크들은 일반적으로, 산발성(주기성이 아닌 실시간 테스크들, 예로서, 그(그녀)가 원격 제어기의 버튼들을 누르기 때문에, 최종 사용자에 의해 유발되는 사건들을 취급하는 실시간 테스크들) 및 “지터”(주기성 테스크들의 활성화들/해제들 사이의 기간의 동요들)라 지칭된다.
상기 실시예에서, 우리는 모든 3개 테스크들이 스케줄러에 의한 수신 이후 가능한 빨리 실행되어야하는 것으로 가정하였지만, 그러나, 일부 테스크들의 데드라인 제약들은 테스크들 사이에서 현저히 변할 수 있으며, 예로서, 일부 테스크들은 “오늘의 끝”의 데드라인을 가질 수 있고(예로서, 시스템 관리형 테스크들), 반면에 다른 것들은 스케줄러에 의한 수신으로부터 5분의 데드라인을 가질 수 있다. 따라서, 실행 시간들에 기초한 소정 종류의 관리가 사용될 수 있다는 것을 예상할 수 있다. 예로서, 단계 504는 테스크에 대응하는 보다 열악한 경우의 실행 시간(WCET)을 나타내는 것을 추가로 수반할 수 있으며, 테스크가 즉시 실행을 필요로하지 않는 경우에는(또는, 보다 즉시 제약된 테스크들 중 하나가 종료된 이후 실행될 수 있는), 테스크의 실행이 지연될 수 있으며, 이는 시스템이 메모리 기반 선점 없이 지속할 수 있다는 것을 의미한다. 이런 상황에서, 테스크 매니저(403)는 이 아직 완료되지 않은 테스크의 세부사항들을 예로서, 메모리 데이터 저장부(405)내에 저장할 수 있으며, 이를 그 데드라인 제약들을 양자 모두가 충족시키는 시간에, 예로서, 스페어 용량의 기간과 일치하여 이를 수행할 수 있다(예로서, 도 6의 단계 605).
상술된 실시예에서, 테스크들이 서브 작업의 선점 시작을 책임지지만, 대안적으로, 스케줄러(401)가 이 프로세스를 관리할 수 있다. 따라서, 대안적 배열에서, 테스크 매니저(403)는 선점 지점 데이터(303a)를 스케줄러에 포워딩한다. 스케줄러(401)는 그 각 현재 실행중인 서브 작업을 식별하기 위해 현재 실행중인 테스크들(τ1 및 τ2)에 대응하는 데이터 구조들(4071, 4072)을 시험한다. 각 테스크를 위해, 이때, 스케줄러(401)는 다음 선점 지점을 식별하기 위해 선점 조건에 서브 작업을 맵핑하며, 그 지점이 도달되었을 때, 그 지점에서 테스크들 각각을 선점화한다. 이는 상술된 예에 관하여 가장 잘 설명되며, 테스크 매니저(403)가 선점 지점 데이터를 스케줄러(401)에 포워딩할 때, 스케줄러(401)는 테스크 τ1이 서브 작업 2를 실행하고, 테스크 τ2가 서브 작업 1의 처리를 대기하는 것으로 식별한다. 따라서, 스케줄러(401)는 다음 선점 지점들로서 테스크 τ1 서브 작업 m(2), 테스크 τ2 서브 작업 m(1)으로서 나타내며, 테스크 τ1을 선점 지점들(MP1 ,2 및 MP1 ,3)에서 선점화하고, 테스크 τ2를 선점 지점들(MP2 ,1, MP2 ,2)에서 선점화한다. 스케줄러(401)는 그 선점 지점들 양자 모두에서 선점화하도록 테스크 τ3을 구성한다. 이 대안은 테스크들의 메모리 사용량 패턴이 단순할 때, 예로서, 테스크의 메모리 사용량이 두 가지 상태들, 즉, 많은 메모리가 사용되는 것(“고 메모리 사용량” 상태) 및 매우 보다 작은 메모리가 사용되는 것(“저 메모리 사용량” 상태)를 갖는 경우에 유용할 수 있다. 스케줄러(401)는 각 테스크가 할당받은 메모리의 양을 감시하며, 테스크가 “고 메모리 사용” 상태에 있는 동안 테스크를 선점화하지 않도록 테스크 매니저에 의해 명령받을 수 있다.
다른 대안으로서, 테스크 매니저(403)로부터의 선점 명령들의 수신시(단계 509), 테스크는 그 우선순위를 소위 “선점불가능” 우선순위로 서브 작업의 시작에서 발생시킬 수 있으며, 보다 낮은 그 우선순위를 서브 작업의 종점에서 그 “정상” 우선순위로 발생시킬 수 있다. 따라서, 이런 상황에서, 스케줄러(401)는 단지 그 선점 지점들에서만 테스크들을 선점할 기회를 갖는다(이것이 서브 작업들이 선점불가해지는 위치이기 때문에). 테스크들(τi)은 그후 테스크 매니저(403)에게 그들이 선점 지점들에 도달할 때를 알리며, 이는 테스크 매니저(403)가 다른 테스크를 시작할 수 있게 한다. 대안 배열에서, 메모리 기반 선점들을 위한 책임은 테스크 매니저(403) 및 테스크들(τi)과 함께 배치된다. 이 대안은 특히 테스크가 극도로 메모리 집약적인 소수의 코드 인터벌들을 포함하는 경우 및 선점이 이들 인터벌들의 처리 동안에만 실제로 필요할 경우에 매우 적합하다.
상기 설명에서, 본 발명이 소프트웨어로 구현되는 것으로 가정되었지만, 본 발명의 특정 실시예들은 소프트웨어의 실행에 의한 것 이외에 고정 배선 회로류 또는 소프트웨어와 고정 배선 회로류의 조합에 의해 수행될 수 있다. 그러므로, 본 발명은 임의의 특정 하드웨어 회로류와 소프트웨어의 조합이나 임의의 특정 소프트웨어 명령들을 위한 소스에 한정되지 않는다는 것을 이해할 것이다.
발명의 상세한 설명에서 선언한 바와 같이, 용어 테스크들은 실 시간 테스크들을 지칭하였지만, 본 발명은 또한 비실시간 테스크들에 의해서도 사용될 수 있으며, 그 이유는 본 발명이 주로 메모리 관리 해법이기 때문이다. 예로서, 이는 가상 메모리의 양이 한정될 때마다 또는 가상 메모리 방법들의 사용이 바람직하지 못할 때마다 비 실시간 시스템들에 사용될 수 있다.
상기 실시예들에서, 테스크들이 주로 제어 테스크들(셋톱 박스(100)의 제어를 제공하는)인 것으로 가정되지만, 테스크들은 또한 멀티미디어 홈 플랫폼(MHP) 또는 다른 표준에 따라 설계된 어플리케이션들을 포함할 수 있으며, 본 예에서는 테스크들은 TV 광고, 게임들 및 일반적 인터넷 기반 서비스들을 포함할 수 있다. 대안적으로, 테스크들은 GSM 디바이스들의 시그널링을 제어하기 위한 테스크들 또는 건강관리 디바이스들을 위한 제어 테스크들을 포함할 수 있다.
상기 실시예에서, 선점 지점들이 인터페이스(301)상에 지정되는 것으로 가정하였지만, 이들은 대안적으로 로그 파일에 지정될 수 있다.
상기 실시예에서, 테스크 매니저(403)는 스케줄러(401)와 별개인 것으로 설명되었지만, 본 기술의 숙련자는 이런 분리가 단지 설명의 목적을 위한 것이며, 종래의 스케줄러는 테스크 매니저(403) 및 스케줄러 양자 모두의 기능을 포함하도록 변경될 수 있다는 것을 알 수 있을 것이다.
상기 실시예에서, 모든 테스크들이 단일 프로세서에 의해 처리되는 것으로 가정되었지만, 테스크들은 대안적으로, 복수의 프로세서들에 의해 처리될 수 있으며, 예로서, n 테스크들(τi)(1≤i≤n)의 집합(Γ)이 프로세서들(πk)(1≤k≤p)의 집합(P)에 의해 처리될 수 있다(여기서, n은 일반적으로 p 보다 매우 크다). 일 적절한 배열에서, 각 테스크(τi)는 특정 프로세서(πk)에 할당되며, 이는 테스크(τi)가 프로세서(πk)상에서만 실행된다는 것을 의미한다. 최악의 경우의 메모리 요구들(MP)은 이때 하기와 같이 주어진다.
Figure 112005058209586-PCT00006
(수학식 1')
MP가 가용 메모리 보다 작을 때, 임의의 프로세서들상으로 테스크들의 스케줄링을 제약할 필요는 없지만(단계 504), 그러나, MP가 가용 메모리를 초과하지 않을 때, 하나 이상의 테스크들의 스케줄링은 하나 이상의 지정된 프로세서들에 제약될 수 있다. 단일 프로세서상에 모든 테스크들의 스케줄링을 제약하는 효과는 제1 실시예에 관하여 제시된 수학식 2 같은 수학식을 사용하여 결정될 수 있다. 모든 가용 프로세서들에 걸쳐 이루어지도록 모든 테스크들의 스케줄링을 제약하는 영향은 (수학식 2')로부터 결정될 수 있다.
Figure 112005058209586-PCT00007
(수학식 2')
여기서, 총 메모리 요구들(MD)은 각 프로세서들(πk)의 메모리 요구들(Mk D)의 합이다.
상기 실시예에서, 테스크들은 소프트웨어 테스크들로서 설명되었지만, 테스크는 또한 하드웨어로 구현될 수도 있다. 통상적으로, 하드웨어 디바이스(하드웨어 테스크로서 거동)는 소프트웨어 테스크에 의해 제어되며, 이 소프트웨어 테스크는 하드웨어 디바이스에 의해 요구되는 (최악의 경우의) 메모리를 할당하고, 후속하여, 하드웨어 테스크가 구동되도록 명령한다. 하드웨어 테스크가 완료될 때, 이는 소프트웨어 테스크에게 알리고, 이는 후속하여 메모리를 할당 해제한다. 상술된 다수의 프로세서들을 수반하는 할당 변형이 또한 조합된 SW 및HW 테스크들에 적용된다. 그러므로, 제어 소프트웨어 테스크를 가짐으로써, 하드웨어 테스크들은 변형된 수학식들 수학식 1' 및 수학식 2'를 사용하여, 상술된 실시예에 따라 간단히 다루어질 수 있다.
본 내용은 단지 예시를 위한 것이며, 본 발명은 이에 대한 변형들, 변용들 및 개선들로 확장된다는 것을 이해할 것이다.

Claims (20)

  1. 데이터 처리 시스템(100)에서 복수의 테스크들(tasks;τi)을 스케줄링하는 방법으로서, 각 테스크는 그와 연관된 메모리 사용량에 기초하여 상기 테스크의 보류를 지정하는 보류 데이터(303)를 가지는, 상기 테스크 스케줄링 방법에 있어서,
    상기 복수의 테스크들 중 하나를 처리하는 단계,
    상기 테스크와 연관된 상기 보류 데이터와 일치하는 상기 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계,
    상기 감시된 입력에 기초하여 상기 테스크의 처리를 보류하는 단계, 및
    상기 복수의 테스크들 중 다른 하나를 처리하는 단계를 포함하는, 테스크 스케줄링 방법.
  2. 제 1 항에 있어서, 상기 복수의 테스크들과 연관된 최대 메모리 사용량을 식별하는 제1 데이터(303d)를 수신하는 단계(501),
    상기 복수의 테스크들을 처리에 가용한 메모리를 식별하는 제2 데이터를 수신하는 단계, 및
    상기 테스크들을 처리하에 충분한 가용 메모리가 있는지 여부를 상기 제1 및 제2 데이터에 기초하여 식별하는 단계(504)를 포함하고,
    상기 감시 및 보류 단계들은 불충분한 메모리의 식별에 응답하여서만 적용되 는(509), 테스크 스케줄링 방법.
  3. 제 1 항에 있어서, 상기 입력은 보류 요청을 나타내는 데이터를 포함하는, 테스크 스케줄링 방법.
  4. 제 1 항에 있어서, 상기 입력은 상기 테스크의 메모리 사용량을 나타내는 데이터를 포함하고, 상기 방법은 상기 메모리 사용량이 상기 테스크와 연관된 보류 데이터와 일치할 때를 식별하는 단계를 포함하는, 테스크 스케줄링 방법.
  5. 제 1 항에 있어서, 테스크들의 종료를 감시하는 단계(601) 및 테스크 종료에 응답하여 메모리의 가용도를 식별하는 상기 단계를 반복하는 단계(603)를 포함하는, 테스크 스케줄링 방법.
  6. 제 5 항에 있어서, 잔여 테스크들을 실행하기에 충분한 메모리를 식별하는 것에 응답하여, 상기 감시 단계는 불필요한 것으로 간주되는(605), 테스크 스케줄링 방법.
  7. 복수의 테스크들(τi)을 실행하도록 배열되며, 테스크들의 실행시 사용하기 위한 특정 메모리의 양에 대한 엑세스를 가지는 데이터 처리 시스템(100)에 사용하 기 위한 스케줄러(401)에 있어서,
    테스크와 연관된 최대 메모리 사용량을 식별하는 데이터를 수신하도록 배열된 데이터 수신기(203),
    상기 테스크들을 실행하기에 충분한 메모리가 존재하는지 여부를 상기 수신된 데이터에 기초하여 식별하도록 배열된 평가기(403),
    상기 테스크 실행 동안 보류를 위한 적어도 하나의 테스크를 선택하도록 배열된 선택기(τi, 401, 403)로서, 상기 보류는 상기 테스크에 의한 특정 메모리 사용량과 일치하는, 상기 선택기(τi, 401, 403)를 포함하고,
    상기 평가기가 상기 복수의 테스크들의 실행을 위해 불충분한 메모리가 존재하는 것으로 식별하는 것에 응답하여, 상기 선택기는 상기 데이터 처리 시스템에 가용한 특정 메모리의 양과 그들의 특정 메모리 사용량에 기초하여 보류를 위한 하나 이상의 테스크들을 선택하고, 상기 스케줄러는 상기 특정 메모리를 사용하는 상기 테스크에 응답하여 상기 선택된 테스크 또는 각 선택된 테스크의 실행을 보류하는, 스케줄러.
  8. 제 7 항에 있어서, 상기 평가기(403)는 테스크들의 종료를 감시하도록 배열되고, 테스크 종료에 응답하여, 상기 잔여 테스크들을 실행하기에 충분한 메모리가 존재하는지 여부를 식별하는, 스케줄러.
  9. 제 7 항에 있어서, 상기 데이터는 상기 테스크와 연관된 실행 데드라인을 식별하는, 스케줄러.
  10. 제 9 항에 있어서, 상기 잔여 테스크들을 실행하기 위해 충분한 메모리를 나타내는 상기 평가기(403)에 응답하여, 상기 스케줄러(401)는 실행 데드라인이 없는 테스크를 식별하고, 상기 식별된 테스크를 스케줄하도록 배열되는, 스케줄러.
  11. 제 8 항 내지 제 10 항 중 어느 한 항에 있어서, 상기 잔여 테스크들을 실행하기에 충분한 메모리를 식별하는 상기 평가기(403)에 응답하여, 상기 선택기(τi, 401, 403)는 상기 선택된 하나 이상의 테스크들을 선택해제하도록 배열되는, 스케줄러.
  12. 복수의 테스크들을 실행하도록 배열된 데이터 처리 시스템에 있어서,
    테스크(τi)의 실행 동안 데이터 및 명령들을 유지하도록 배열된 메모리(205),
    테스크와 연관된 최대 메모리 사용량을 식별하는 데이터를 수신하도록 배열된 수신 수단(203),
    상기 테스크들을 실행하기에 충분한 메모리가 존재하는지 여부를 상기 수신된 데이터에 기초하여 식별하도록 배열된 평가 수단(403), 및
    상기 평가 수단으로부터 수신된 입력에 기초하여 상기 테스크들의 실행을 스케줄링하도록 배열된 스케줄러(501)을 포함하고,
    상기 복수의 테스크들을 실행하기에 불충분한 메모리의 식별에 응답하여, 상기 스케줄러는 상기 테스크에 의한 메모리 사용량에 따라 적어도 하나의 테스크의 실행을 보류하도록 배열되는, 데이터 처리 시스템.
  13. 제 12 항에 있어서, 디지털 텔레비전 시스템을 포함하는 데이터 처리 시스템.
  14. 데이터 처리 시스템으로 데이터를 전송하는 방법에 있어서,
    테스크(τi)의 처리시 상기 데이터 처리 시스템이 사용하는 데이터를 전송하는 단계, 및
    테스크의 처리 동안의 메모리 사용량에 기초하여 상기 테스크의 보류를 지정하는 보류 데이터(303)를 전송하는 단계를 포함하고,
    상기 데이터 처리 시스템은,
    상기 테스크와 연관된 상기 보류 데이터와 일치하는 상기 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계, 및
    상기 감시된 입력에 기초하여 상기 테스크의 처리를 보류하는 단계를 포함하는 프로세스를 수행하도록 배열되는, 데이터 전송 방법.
  15. 제 14 항에 있어서, 상기 보류 데이터는 상기 테스크의 메모리 사용량에 기초하여 상기 테스크의 처리가 보류될 수 있는 적어도 하나의 지점(303b)을 식별하는, 데이터 전송 방법.
  16. 제 14 항에 있어서, 상기 보류 데이터는 상기 테스크와 연관된 최대 메모리 사용량을 식별하는 데이터(303d)를 포함하는, 데이터 전송 방법.
  17. 제 15 항에 있어서, 상기 테스크는 복수의 서브 작업들(sub jobs;τij)을 포함하고, 상기 테스크의 처리가 보류될 수 있는 적어도 하나의 지점을 나타내는 상기 데이터(303b)는 상기 서브 작업 각각에 대응하는, 데이터 전송 방법.
  18. 데이터 처리 시스템에 사용하기 위해 테스크(τi)를 구성(configuring)하는 방법으로서, 보류 데이터(303)를 상기 테스크와 연관시키는 단계를 포함하고, 상기 보류 데이터는 상기 테스크와 연관된 메모리 사용량에 기초하여 상기 테스크의 보류를 지정하며, 상기 데이터 처리 시스템은 복수의 테스크에 관한 프로세스를 수행하도록 배열되는, 상기 테스크 구성 방법에 있어서, 상기 프로세스는,
    상기 테스크와 연관된 상기 보류 데이터와 일치하는 상기 테스크의 메모리 사용량을 나타내는 입력을 감시하는 단계, 및
    상기 감시된 입력에 기초하여 상기 테스크의 처리를 보류하는 단계를 포함하는, 테스크 구성 방법.
  19. 제 18 항에 있어서, 상기 테스크를 처리하도록 구성된 데이터 처리 시스템을 식별하고, 상기 보류 데이터를 상기 데이터 처리 시스템에 전송하는 단계를 포함하는, 테스크 구성 방법.
  20. 처리 시스템이 제 1 항 내지 제 6 항 중 어느 한 항에 따른 방법을 수행하게 하도록 배열된 명령들의 집합을 포함하는 컴퓨터 프로그램.
KR1020057019644A 2003-04-14 2004-04-05 자원 관리 방법 및 장치 KR20060008896A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100996.2 2003-04-14
EP03100996 2003-04-14

Publications (1)

Publication Number Publication Date
KR20060008896A true KR20060008896A (ko) 2006-01-27

Family

ID=33155242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019644A KR20060008896A (ko) 2003-04-14 2004-04-05 자원 관리 방법 및 장치

Country Status (6)

Country Link
US (1) US20060212869A1 (ko)
EP (1) EP1683015A2 (ko)
JP (1) JP2006523881A (ko)
KR (1) KR20060008896A (ko)
CN (1) CN1802635A (ko)
WO (1) WO2004090720A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160076896A (ko) * 2014-12-23 2016-07-01 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.
US9424105B2 (en) 2011-12-07 2016-08-23 Samsung Electronics Co., Ltd. Preempting tasks at a preemption point of a kernel service routine based on current execution mode

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005045666A2 (en) * 2003-11-06 2005-05-19 Koninklijke Philips Electronics, N.V. An enhanced method for handling preemption points
CN1910553A (zh) * 2004-01-08 2007-02-07 皇家飞利浦电子股份有限公司 基于存储器要求在多处理器系统中进行任务调度的方法和设备
EP1677233A1 (en) 2004-12-29 2006-07-05 Sap Ag Technique for mass data handling in a preference processing context
US7823170B2 (en) * 2005-08-31 2010-10-26 Sap Ag Queued asynchronous remote function call dependency management
US20070156879A1 (en) * 2006-01-03 2007-07-05 Klein Steven E Considering remote end point performance to select a remote end point to use to transmit a task
US7870517B1 (en) 2006-04-28 2011-01-11 Cadence Design Systems, Inc. Method and mechanism for implementing extraction for an integrated circuit design
JP4770602B2 (ja) * 2006-06-23 2011-09-14 株式会社デンソー 電子機器
US7861203B2 (en) * 2006-12-29 2010-12-28 Cadence Design Systems, Inc. Method and system for model-based routing of an integrated circuit
US8141084B2 (en) * 2008-04-07 2012-03-20 International Business Machines Corporation Managing preemption in a parallel computing system
US8656145B2 (en) * 2008-09-19 2014-02-18 Qualcomm Incorporated Methods and systems for allocating interrupts in a multithreaded processor
JP2011053995A (ja) * 2009-09-03 2011-03-17 Hitachi Ltd データ処理制御方法および計算機システム
US8375344B1 (en) 2010-06-25 2013-02-12 Cadence Design Systems, Inc. Method and system for determining configurations
US8516433B1 (en) * 2010-06-25 2013-08-20 Cadence Design Systems, Inc. Method and system for mapping memory when selecting an electronic product
CN102750179B (zh) * 2011-04-22 2014-10-01 中国移动通信集团河北有限公司 云计算平台与数据仓库间任务的调度方法与装置
DE102012103654A1 (de) * 2011-05-17 2012-11-22 International Business Machines Corp. Installieren und Prüfen einer Anwendung auf einer stark genutzten Computerplattform
US9292427B2 (en) 2012-09-13 2016-03-22 International Business Machines Corporation Modifying memory space allocation for inactive tasks
US9195492B2 (en) * 2012-10-25 2015-11-24 Empire Technology Development Llc Secure system time reporting
US9678797B2 (en) 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
US9740513B2 (en) * 2014-06-05 2017-08-22 Futurewei Technologies, Inc. System and method for real time virtualization
CN104834556B (zh) * 2015-04-26 2018-06-22 西北工业大学 一种多态实时任务与多态计算资源的映射方法
EP3443456A1 (en) * 2016-04-12 2019-02-20 Telefonaktiebolaget LM Ericsson (PUBL) Process scheduling in a processing system having at least one processor and shared hardware resources
US20190171611A1 (en) * 2017-12-05 2019-06-06 Qualcomm Incorporated Protocol-framed clock line driving for device communication over master-originated clock line
CN109284180B (zh) * 2018-08-30 2021-06-18 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、电子设备及存储介质
CN110351345B (zh) * 2019-06-25 2021-10-12 创新先进技术有限公司 用于业务请求处理的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5587928A (en) * 1994-05-13 1996-12-24 Vivo Software, Inc. Computer teleconferencing method and apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424105B2 (en) 2011-12-07 2016-08-23 Samsung Electronics Co., Ltd. Preempting tasks at a preemption point of a kernel service routine based on current execution mode
KR20160076896A (ko) * 2014-12-23 2016-07-01 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.

Also Published As

Publication number Publication date
WO2004090720A2 (en) 2004-10-21
US20060212869A1 (en) 2006-09-21
EP1683015A2 (en) 2006-07-26
CN1802635A (zh) 2006-07-12
JP2006523881A (ja) 2006-10-19
WO2004090720A3 (en) 2006-03-02

Similar Documents

Publication Publication Date Title
KR20060008896A (ko) 자원 관리 방법 및 장치
US20070124733A1 (en) Resource management in a multi-processor system
KR100649107B1 (ko) 실시간 동작 수행방법 및 시스템
US7685599B2 (en) Method and system for performing real-time operation
US7657890B2 (en) Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7418705B2 (en) Method and system for performing real-time operation
US8087020B2 (en) Method and system for performing real-time operation
US8813084B2 (en) Broadcast receiving apparatus and scheduling method thereof
US20070022423A1 (en) Enhanced method for handling preemption points
US20020124043A1 (en) Method of and system for withdrawing budget from a blocking task
Valls et al. An architecture of a quality of service resource manager middleware for flexible embedded multimedia systems
KR100719416B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
US20040122983A1 (en) Deadline scheduling with buffering
US6952826B1 (en) Method for implementing a multi-level system model for deterministically handling selected data
JP2009116881A (ja) データ処理装置およびその方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid