KR20010103719A - Method and apparatus for providing operating system scheduling operations - Google Patents

Method and apparatus for providing operating system scheduling operations Download PDF

Info

Publication number
KR20010103719A
KR20010103719A KR1020017007977A KR20017007977A KR20010103719A KR 20010103719 A KR20010103719 A KR 20010103719A KR 1020017007977 A KR1020017007977 A KR 1020017007977A KR 20017007977 A KR20017007977 A KR 20017007977A KR 20010103719 A KR20010103719 A KR 20010103719A
Authority
KR
South Korea
Prior art keywords
thread
traversal
list
threads
during
Prior art date
Application number
KR1020017007977A
Other languages
Korean (ko)
Inventor
제임스 에이. 후하
Original Assignee
파워티브이, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 파워티브이, 인코포레이티드 filed Critical 파워티브이, 인코포레이티드
Publication of KR20010103719A publication Critical patent/KR20010103719A/en

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

Abstract

스레드 목록에 포함된 스레드를 스케쥴링하는 컴퓨터 구현 방법 및 장치에서 최소한 두 스레드가 두 스레드에 대해 스케쥴링된 실행을 표시하는 우선순위를 갖는다. 본 발명은 스레드 목록에 걸친 트래버셜 동안 동등한 우선순위를 갖는 최소한 두 스레드의 스케쥴링된 실행을 변형하는 단계와, 최소한 한 스레드에 대해 기한 처리를 수행하는 단계와, 최소한 한 스레드의 미리 정해진 에러 조건에 대해 조사하는 단계를 수행한다.In a computer-implemented method and apparatus for scheduling threads included in a thread list, at least two threads have priority to indicate scheduled execution for both threads. The present invention is directed to modifying scheduled execution of at least two threads of equal priority during traversal across a thread list, performing deadline processing on at least one thread, and at least one predetermined error condition for the thread. Follow the steps to investigate.

Description

운영 체계 스케쥴링 동작을 제공하는 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING OPERATING SYSTEM SCHEDULING OPERATIONS}METHOD AND APPARATUS FOR PROVIDING OPERATING SYSTEM SCHEDULING OPERATIONS}

셋탑 박스 텔레비전 환경은 동작이 신속하게 수행되어야 하는 실시간 환경이다. 셋탑 박스 환경에서, 컴퓨터 구현 스레드는, 이에 한정되지는 않지만 사용자에게 비디오 및 오디오를 제공하는 것과 같은 셋탑 박스에 대한 많은 기능을 수행하기 위해서 중앙 처리 장치(CPU)상에서 실행한다. 이러한 환경에서, 스레드는 그 기능이 달성되기 위해서 요구되는 시간을 최적화되도록 스케쥴링되어야 한다.Set-top box television environments are real-time environments where operations must be performed quickly. In a set top box environment, a computer implemented thread runs on a central processing unit (CPU) to perform many functions for a set top box, such as but not limited to providing video and audio to a user. In such an environment, threads must be scheduled to optimize the time required for their functionality to be achieved.

본 발명은 일반적으로 텔레비전 셋탑 박스(television set-top box)에 관한 것으로, 더 구체적으로 셋탑 박스 텔레비전 환경에서 컴퓨터 구현 커널 동작에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to television set-top boxes and, more particularly, to computer implemented kernel operation in set top box television environments.

도 1은 셋탑 박스 시스템의 투시도.1 is a perspective view of a set top box system.

도 2는 도 1의 셋탑 박스 시스템 내에서 다양한 예시적인 프로그램을 도시하는 블록도.FIG. 2 is a block diagram illustrating various example programs within the set top box system of FIG. 1.

도 3은 본 발명의 새로운 3층 구조의 스케쥴링 시스템을 도시하는 블록도.3 is a block diagram illustrating a new three-layer scheduling system of the present invention.

도 4는 단일 패스에서 스레드 목록의 처리를 도시하는 블록도.4 is a block diagram illustrating processing of a thread list in a single pass.

도 5는 스레드 목록에 걸친 단일 패스를 형성할 때 스레드에 대한 동작 단계를 도시하는 흐름도.5 is a flow diagram illustrating the operational steps for a thread when forming a single pass across a thread list.

본 발명은 셋탑 박스 환경의 이러한 필요성 및 다른 요구에 대해 언급한다. 본 발명의 교시에 따르면, 스레드 목록에 포함된 스레드를 스케쥴링하는 컴퓨터 구현 방법 및 장치를 제공한다. 최소한 두 스레드가 두 스레드에 대한 스케쥴링된 실행을 표시하는 우선순위를 갖는다. 본 발명은 스레드 목록의 트랜스버셜 중에 동등한 우선순위를 갖는 최소한 두 스레드의 스케쥴링된 실행을 변형하는 단계와,최소한 한 스레드에 대해 기한 처리를 수행하는 단계와, 최소한 한 스레드의 미리 정해진 에러 조건에 대해 조사하는 단계를 제공한다.The present invention addresses this need and other needs of a set top box environment. According to the teachings of the present invention, there is provided a computer-implemented method and apparatus for scheduling threads included in a thread list. At least two threads have priority to indicate scheduled execution for both threads. The present invention is directed to modifying scheduled execution of at least two threads having equal priority among the transitives in the thread list, performing deadline processing for at least one thread, and for a predetermined error condition of at least one thread. Provide steps for investigation.

도 1은 케이블(28)을 통해 텔레비전(24)에 연결된 예시적인 셋탑 박스(set-top box)(20)를 도시한다. 케이블(cable)(32)은 셋탑 박스(20)에 방송 아날로그(broadcast analog), 방송 디지털(broadcast digital) 및 대화형 디지털(interactive digital) 전송을 제공한다. 셋탑 박스(20)는 진보된 대화형 텔레비전 환경을 제공하기 위한 응용 프로그램(application) 및 운영 체계(operating system) 소프트웨어를 포함한다. 운영 체계는 셋탑 박스(20)에 의해, 예를 들면 셋탑 박스(20)에 의해 사용된 응용 프로그램 소프트웨어와 다양한 장치 사이에 인터페이스를 제공하기 위해 이용된다.1 shows an exemplary set-top box 20 connected to a television 24 via a cable 28. A cable 32 provides broadcast analog, broadcast digital, and interactive digital transmission to the set top box 20. The set top box 20 includes application and operating system software for providing an advanced interactive television environment. The operating system is used by the set top box 20 to provide an interface between the various applications and the application software used, for example, by the set top box 20.

도 2는 셋탑 박스의 소프트웨어 구성 요소를 도시한다. 셋탑 박스의 멀티태스킹(multitasking) 운영 체계는 셋탑 박스를 통해 전달되는 미디어 중심 실시간 응용 프로그램 의 고성능 요구에 부응한다. 운영 체계는 멀티미디어 콘텐츠를 개발하고 방송 및 클라이언트/서버망을 통해 소비자에게 전달하기 위한 개방형 스케일조정가능 플랫폼(open, scalable platform)을 제공한다. 운영 체계에 대한 소프트웨어 구조는 상호작용하는 망 설정에서 리던던시(redundancy)를 최소화하고 멀티미디어 처리를 최적화하기 위해 상호연결된 모듈의 층을 포함한다. 구조의 층은 하드웨어 추상화층(hardware abstraction layer)(40), 코어층(core layer)(42), 응용 지원층(44) 및 응용층(46)을 포함한다.2 shows the software components of the set top box. The set-top box's multitasking operating system addresses the high performance demands of media-centric real-time applications delivered through set-top boxes. The operating system provides an open, scalable platform for developing multimedia content and delivering it to consumers via broadcast and client / server networks. The software architecture for the operating system includes layers of interconnected modules to minimize redundancy and optimize multimedia processing in the interactive network setup. The layer of structure includes a hardware abstraction layer 40, a core layer 42, an application support layer 44 and an application layer 46.

멀티미디어 클라이언트와 관련된 각 하드웨어 장치는 하드웨어 추상화층(40)에 장착된 소프트웨어 장치 모듈로 추상화된다. 이 장치 모듈 각각은 미디어 전달 및 하드웨어 장치와 운영 체계 나머지 부분 사이의 조작에 대한 기능을 책임진다. 각 장치 모듈에 의해 지원된 응용 프로그램 인터페이스(APIs)는 휴대용 운영 체계설비와 각 장치의 하드웨어 의존성을 별도로 하여 다른 하드웨어 구현물마다의 특성을 망라한다.Each hardware device associated with the multimedia client is abstracted into a software device module mounted on the hardware abstraction layer 40. Each of these device modules is responsible for the media delivery and operation between the hardware device and the rest of the operating system. Application program interfaces (APIs) supported by each device module cover the characteristics of different hardware implementations, with the portable operating system facilities separate from each device's hardware dependencies.

코어층(42)에 장착된 커널(kernel)(48) 및 메모리 관리자(50)는 응용 프로그램을 지원하기 위해 필요한 기본 기능들을 제공한다. 완전 선점형 멀티스레드화 멀티태스킹 커널(fully preemptive multithreaded multitasking kernel)은 셋탑 박스 메모리 풋프린트(footprint) 및 처리 속도를 최적화하도록 설계된다. 운영 체계는 소비자 유닛에 장착되므로, 이는 매우 작은 풋프린트(예를 들면, 1 메가바이트)를 갖는 ROM 기반 시스템에 존재하도록 설계되어 있다. 또한, 커널은 복잡한미디어 유형의 고속 전송, 조작 및 디스플레이가 가능한 32 비트 리스크(RISC: Reduced Instruction Set Computer) 프로세서를 이용하도록 생성되어 있다.The kernel 48 and the memory manager 50 mounted on the core layer 42 provide basic functions necessary to support an application program. The fully preemptive multithreaded multitasking kernel is designed to optimize set-top box memory footprint and processing speed. Since the operating system is mounted on the consumer unit, it is designed to exist in a ROM based system with a very small footprint (eg 1 megabyte). The kernel is also created to use a 32-bit Reduced Instruction Set Computer (RISC) processor capable of high-speed transfer, manipulation and display of complex media types.

본 발명의 분야내에서, 프로세스는 프로세스에 할당된 시스템 자원을 소유한 주체이다. 스레드(thread)는 실행될 일 또는 명령어의 스트링의 단위이다. 프로세스는 하나보다 많은 스레드를 가질 수 있고 이러한 경우는 "멀티스레드화"로 고려된다.Within the field of the present invention, a process is a subject that owns the system resources assigned to the process. A thread is a unit of string of work or instructions to be executed. A process can have more than one thread, which is considered "multithreaded".

메모리 관리자(50)는 한정된 메모리 자원을 이용하여 최고 성능을 낼 수 있는 효율적인 할당 기법을 제공한다. 메모리 관리자(50)는 한정된 셋탑 메모리 자원을 사용하여 최적의 성능을 낼 수 있는 효율적인 메모리 할당 기법을 제공한다. 코어층(42)은 집적 이벤트 시스템(integrated event system)(52) 및 ANSI C 유틸리티 기능의 표준 세트를 제공한다. 코어층(42)의 상부에는 응용 지원층(44)이 장착되어 있다. 지원 모듈의 이러한 세트는 보다 높은 수준의 처리 기능 및 응용 서비스를 제공한다.The memory manager 50 provides an efficient allocation technique that can achieve the best performance by using limited memory resources. The memory manager 50 provides an efficient memory allocation technique that can achieve optimal performance using limited set-top memory resources. Core layer 42 provides a standard set of integrated event system 52 and ANSI C utility functions. The application support layer 44 is mounted on the core layer 42. This set of support modules provides a higher level of processing and application services.

응용 프로그램 관리, 세션(session) 관리, 및 튜너(tuner) 관리는 이 서비스 중의 몇가지 예이다. 최상 응용 수준(46)에서, 상주 프로그램이라 지칭되는 최소한 한 응용 프로그램이 통상적으로 항시 셋탑 박스에서 실행되고 있다. 응용 수준(46)은 응용 프로그램을 기술하고 셋탑 박스에 장착된 상주 응용 프로그램 및 다른 배경 응용 프로그램 사이의 자원(예를 들면, 튜너)을 관리하기 위한 필요한 용량도 제공한다.Application management, session management, and tuner management are some examples of these services. At the highest application level 46, at least one application, referred to as a resident program, is typically running in a set top box at all times. Application level 46 also provides the necessary capacity to describe the application and to manage resources (e.g., tuners) between resident applications mounted on the set-top box and other background applications.

도 3은 운영 체계 스케쥴러(100)가 사용하는 3층 구조 스케쥴링 운영 체계를도시한다. 하부층(102)에서, 라운드로빈(round robin) 스케쥴러(104)가 동등한 우선순위 수준을 공유하는 스레드에 대해 이용된다. 예를 들어, 만약 우선순위 5에 3개의 스레드가 있고 모든 스레드가 실행대기중이면, 각 스레드에는 순서대로 짧은 시간 슬라이스(time slice)가 주어진다. 이 "소프트 실시간(soft real time)" 방법은 개별적으로 기술된 멀티스레드화 응용 프로그램이 서로의 존재를 모른 채 동일한 시스템에서 실행하게 하는 점에서 유리하다.3 illustrates a three-tiered structured scheduling operating system used by operating system scheduler 100. In the lower layer 102, a round robin scheduler 104 is used for threads that share an equal priority level. For example, if there are three threads at priority 5 and all threads are waiting, each thread is given a short time slice in sequence. This "soft real time" approach is advantageous in that individually written multithreaded applications run on the same system without knowing each other.

중간층(106)은 선점형 스케쥴러(108)이다. 선점형 선취권 스케쥴러(108)에서, 우선순위(priority) 수준은 뒤바뀔 수 없다. 예를 들면, 우선순위 3의 스레드와 우선순위 4의 스레드가 모두 실행 대기중이면, 우선순위 3의 스레드가 실행될 것이다. 이 스케쥴링 방식은 가장 결정적인 대기 스레드의 기한(deadline)을 최우선으로 하는 이로움을 포함한다. 선점형 선취권 스케쥴링은 결정적인 기한을 놓칠 경우 매우 심각한 비용이 들게 되는 "하드(hard)" 실시간 시스템에서 공통적으로 사용된다.The intermediate layer 106 is a preemptive scheduler 108. In the preemptive lien schedule 108, the priority level cannot be reversed. For example, if both priority 3 and priority 4 threads are waiting to be executed, priority 3 threads will run. This scheduling scheme includes the benefit of prioritizing the deadline of the most critical waiting thread. Preemptive lien scheduling is commonly used in "hard" real-time systems, which can be very costly if missed deadlines.

상부층(110)은 스레드를 자신의 우선순위 또는 다른 우선순위 수준으로 변동할 수 있게 하는 콜(call)을 사용하여 응용 프로그램 및 드라이버가 고객 스케쥴링 알고리듬(112)을 구현할 수 있게 한다. 우선순위 변동 방식은 이에 한정되지는 않는 다음의 방식, 우선순위 계승(inheritance) 및 우선순위 역전(inversion)을 포함한다.The upper layer 110 allows applications and drivers to implement the customer scheduling algorithm 112 using a call that allows the thread to vary to its own priority or other priority level. Priority change schemes include, but are not limited to, the following schemes, priority inheritance, and priority inversion.

우선순위 계승에서, 스레드는 덜 결정적인 스레드에 의해 점유된 자원을 대기하고 있을 더 결정적인 스레드의 우선순위를 계승한다. 우선순위 계승의 다른유형은 클라이언트의 스레드의 우선순위를 요청당 기조(per request basis)로 계승하면서 모니터 스레드가 서비스를 다른 스레드에 제공할 수 있게 한다.In priority inheritance, a thread inherits the priority of a more deterministic thread that will be waiting for resources occupied by a less deterministic thread. Another type of priority inheritance allows the monitor thread to provide services to other threads while inheriting the priority of the client's threads on a per request basis.

우선순위 역전에서, 우선순위 순위는 덜 결정적인 스레드가 더 결정적인 스레드에 의해 요청된 자원을 해제하기에 충분히 길게 실행할 수 있도록 간단하게 역전된다(즉, 높은 우선순위가 낮은 우선순위로 된다). 이는 전형적으로 높은 우선순위 스레드는 중간 우선순위를 갖는 제3 스레드 때문에 전혀 실행 시간이 제공되지 않고 있는 낮은 우선순위 스레드에 의해 점유되어 있는 자원을 자신이 필요로 함을 검출할 때 트리거된다.In priority inversion, the priority priority is simply reversed (ie, high priority becomes low priority) so that less critical threads can run long enough to release resources requested by more critical threads. This is typically triggered when a high priority thread detects that it needs a resource occupied by a low priority thread that is not given any execution time at all because of a third thread with medium priority.

본 발명은, 예를 들면 레이트 모노토닉(rate-monotonic) 스케쥴링, 리스드 스페이스 슬랙 타임(leased space slack-time) 스케쥴링 및 최선도 기한(earliest deadline) 스케쥴링인 사용될 수 있는 다른 고객 스케쥴링 방법을 포함한다.The present invention includes other customer scheduling methods that may be used, for example, rate monotonic scheduling, leased space slack-time scheduling, and earliest deadline scheduling. .

도 4는 한 패스 내(134)의 스레드 목록(130) 트랜스버셜과 관련된 구성 요소 및 동작을 도시한다. 본 발명은 양호하게는 라운드 로빈 스케쥴링(104), 기한 처리(138) 및 에러 조사(142)와 같은 한 패스(134) 내의 다중 스케쥴링 동작을 수행하기 위해서 스레드 목록 트래버셜기(thread list traverser)(138)를 통해 한 패스 내의 스레드 목록을 트래버셜한다.4 illustrates components and operations associated with thread list 130 transverse in one pass 134. The present invention preferably provides a thread list traverser for performing multiple scheduling operations within one pass 134, such as round robin scheduling 104, due date processing 138, and error checking 142. 138) traverse the list of threads in one pass.

선점형 커널(146) 내에서, 동일한 우선순위의 스레드는 물론 다른 우선순위의 스레드들 각각은 처리의 시간 슬라이스를 얻고자 시도한다. 양호하게는, 본 발명은, 이에 한정하지는 않지만, 예를 들면 사용자가 한 키를 임의의 시간에 누를 수 있고, 셋탑 박스에서 무엇이 실행되고 있던지간에 눌러진 키 이벤트를 서비스하기 위해 스레드는 현재 실행되는 어떠한 스레드도 인터럽트하여 그것이 실행될 수 있음을 표시하는 완전 선전형 커널을 사용한다.Within the preemptive kernel 146, threads of the same priority as well as threads of other priorities attempt to obtain a time slice of processing. Preferably, the present invention is not limited to this, for example, a user may press a key at any time, and a thread is currently running to service a pressed key event whatever was running in the set-top box. Use a fully propagated kernel that interrupts any thread to indicate that it can run.

라운드 로빈 스케쥴링(104)은 한 패스(134) 내에서 동일한 우선순위는 갖는 스레드의 우선순위를 회전(rotate)시켜 효율적으로 수행된다. 우선순위 회전(150)은 양호하게는 한 패스(134) 내의 동일 우선순위의 스레드를 회전시키기 위해서 버블 소팅(154)을 사용한다. 본 발명에서 "한 패스(one pass)"라는 용어는 양호하게는 목록의 최상부가 고려되지 않고 목록내에서 이전 스레드로의 트래버셜이 최소화됨을 의미한다.Round robin scheduling 104 is efficiently performed by rotating the priority of threads having the same priority within one pass 134. Priority rotation 150 preferably uses bubble sorting 154 to rotate threads of the same priority in one pass 134. The term "one pass" in the present invention preferably means that the top of the list is not considered and the traversal to the previous thread in the list is minimized.

우선순위 회전(150)은 동일한 우선순위의 스레드를 내부적으로 재설정하여 회전되도록 한다. 예를 들면, 이에 한정되는 않지만, 모두 우선순위 수준 9인 4 스레드가 동작할 수 있다. 우선순위 회전 방식(150)은 스레드의 우선순위 수준을 9.1, 9.2, 9.3 및 9.4로 내부적으로 설정한다. 그러나, 각 패스에 대해, 우선순위 수준은 우선순위 수준 9.1, 9.2, 9.3 및 9.4가 버블 소팅(bubble sorting)(154)을 통해 돌아가며 전환된다. 회전은 최하부(즉 우선순위 수준 9.4)에 있는 스레드가 우선순위 수준 9.1이 되는 효과가 있다. 우선순위 수준 9.1이었던 스레드는 우선순위 수준 9.2가 되고 이 예의 다른 나머지 두 스레드에 대해서도 마찬가지로 된다.Priority rotation 150 internally resets threads of the same priority to be rotated. For example, but not limited to, four threads of all priority levels 9 may operate. Priority rotation scheme 150 internally sets the priority levels of the threads to 9.1, 9.2, 9.3, and 9.4. However, for each pass, the priority levels are switched by way of bubble sorting 154 with priority levels 9.1, 9.2, 9.3 and 9.4. The rotation has the effect of bringing the thread at the bottom (ie priority level 9.4) to priority level 9.1. A thread that was at priority level 9.1 is at priority level 9.2, and so on for the other two threads in this example.

최상부 스레드가 처리될 것이 아무것도 없고 제2 위치에 스레드는 있다면, 제2 위치에 있는 스레드는 최상부의 스레드가 자신의 시간 슬라이스 내에 해야 할 것이 있을 때까지 실행할 것이다. 한 패스(134) 내에서, 기한 처리(138)는 타임아웃(166)이 만료된 스레드(162)에 대해 조사하기 위해서 타임 아웃 조사를 수행한다. 스레드(162)는 데이터 구조에 스레드가 이벤트에 대해 스레드 목록(130)을 대기해야 할 시간을 나타내는 타임 아웃값(146)을 포함한다. 스레드 목록 트래버셜기(138)는 스레드의 타임 아웃값에 도달하였는지를 한 패스(134) 내에서 조사한다. 타임아웃값(166)에 도달하였다면, 스레드 트래버셜기는 스레드를 "기상(wake up)"시켜 스레드는 타임아웃에 대한 적절한 처리를 수행할 수 있다.If the top thread has nothing to process and there is a thread at the second position, the thread at the second position will run until the top thread has to do within its time slice. Within one pass 134, the deadline process 138 performs a timeout check to check for threads 162 whose timeout 166 has expired. Thread 162 includes a timeout value 146 in the data structure indicating the time that the thread should wait for thread list 130 for the event. The thread list traversal 138 checks in one pass 134 if the thread's timeout value has been reached. Once the timeout value 166 has been reached, the thread traversal machine "wakes up" the thread so that the thread can perform appropriate processing for the timeout.

본 발명은 이벤트가 규정된 이후 시간(future time)에 발생하도록 스케쥴링될 수 있다. 이 이후 시간은, 예를 들면, 이에 한정되는 않지만 10억분의 1초 단위와 같은 시간의 매우 정밀한 단위로 규정될 수 있다. 이는 전형적으로 시간 결정적 응용 프로그램에 대해 사용된다.The invention can be scheduled to occur at a future time after an event is defined. The time thereafter may be defined in very precise units of time, such as but not limited to, for example, billionths of a second. This is typically used for time critical applications.

그러나, 다른 상황에서 이러한 해결책은 실제로 필요한 것보다 정밀한 것이다. 때때로, 100분의 1초 단위로 측정하는 해결책이면 충분하다. 따라서, 본 발명은 각 스레드가 개략 타임아웃(coarse time-out)(180) 또는 정밀 타임아웃(fine time-out)(184)을 갖도록 한다. 개략 타임아웃의 한가지 비한정적인 유리함은 이것이 매우 효율적으로 구현되고 전형적으로 지원하기 위해 중앙처리장치(CPU) 사이클을 덜 사용한다는 점이다. 이 효율적인 구현은 양호하게는 매10밀리초마다 발행하는 스케쥴러 인터럽트마다 단일 패스(134)를 스레드 목록(130)에 거쳐 형성하도록 된 스케쥴러를 사용한다. 스레드 목록(130)이 트래버셜되는 동안, 타임아웃 조사(158)는 만료된 타임아웃(166)을 단일 비교 동작으로써 조사하기 위해서 수행될 수 있다.However, in other situations this solution is more precise than what is actually needed. Sometimes, a solution measuring in hundredths of seconds is sufficient. Thus, the present invention allows each thread to have a coarse time-out 180 or a fine time-out 184. One non-limiting advantage of the schematic timeout is that it is implemented very efficiently and typically uses less central processing unit (CPU) cycles to support it. This efficient implementation uses a scheduler that is configured to form a single pass 134 via thread list 130 for scheduler interrupts that are issued every 10 milliseconds. While thread list 130 is traversed, timeout check 158 may be performed to check for expired timeout 166 as a single compare operation.

또한, 예시적인 상황내에, 전형적으로 응용 스레드 이외에 셋탑 박스에서 실행하는 약 25 운영 체계 스레드가 있다. 임의의 시간에, 이 스레드의 대부분은 이벤트 대기 모드에 있다. 개략 타임아웃을 이벤트 대기 상황에서 사용하면 타이머 큐(129)(timer queue)(이벤트를 처리함)가 너무 "가득차게(crowded)"되지 않도록 한다.Also within the illustrative context, there are typically about 25 operating system threads running on set top boxes in addition to application threads. At any time, most of this thread is in event waiting mode. The use of the coarse timeout in an event waiting situation ensures that the timer queue 129 (which processes the event) is not too "crowded".

스케쥴러(100)는 양호하게는 스레드 목록에 걸친 단일 패스(134)를 매10밀리초마다 한번 형성한다. 스레드 목록에 걸친 이 패스가 수행되는 동안, 스케쥴러(100)는, 예를 들면, 이에 한정하지는 않지만 스택 오버플로우 및 스택 언더플로우와 같은 에러 조건에 대해 에러 조사도 수행한다.The scheduler 100 preferably forms a single pass 134 once every 10 milliseconds across the thread list. While this pass over the thread list is performed, the scheduler 100 also performs error checking for error conditions such as, but not limited to, stack overflow and stack underflow.

스레드(162) 각각은 우선순위 수준(190)을 갖는다. 스레드(162)는 양호하게는 우선순위 수준을 1-31 범위에서 가정할 수 있다. 동일한 우선순위 수준을 공유하는 임의의 개수의 스레드 및 다중 스레드가 있을 수 있다. 양호한 실시예에서, 가장 결정적인 우선순위 수준은 1이고 가장 덜 결정적인 우선순위 수준은 31이다.Each of the threads 162 has a priority level 190. Thread 162 may preferably assume a priority level in the 1-31 range. There can be any number of threads and multiple threads sharing the same priority level. In the preferred embodiment, the most critical priority level is 1 and the least critical priority level is 31.

본 발명은 양호하게는 하나 이상의 스레드가 스레드 목록(130)의 최상부에 항상 남아있고 하나 이상의 스레드가 스레드 목록(130)의 최하부에 남아있는 소정 수의 사전 결정 스레드(194)를 포함한다. 이 양호한 실시예에서, 본 발명은 최상 우선순위인 시스템 스레드(198) 및 최하 우선순위인 유휴 스레드(202)를 포함한다. 시스템 스레드(198)는 우선순위 수준 0을 사용하고 유휴 스레드(202)는 우선순위 수준 32를 사용하는데, 이 우선 순위 수준들은 드라이버 및 응용 프로그램에게 허용된 우선순위 수준이 우선순위 수준 1 내지 우선순위 수준 31 범위에 있으므로 이범위 밖에 있다.The present invention preferably includes a predetermined number of predetermined threads 194 where at least one thread always remains at the top of the thread list 130 and at least one thread remains at the bottom of the thread list 130. In this preferred embodiment, the present invention includes a system thread 198 with the highest priority and an idle thread 202 with the lowest priority. System threads 198 use priority level 0 and idle threads 202 use priority level 32, which is the priority level allowed for drivers and applications from priority level 1 to priority. It is outside the range because it is in the level 31 range.

본 발명은 개시된 수준의 우선순위 기법에만 한정되는 것이 아니며 주어진 상황에 적절한 모든 우선순위 기법을 포함한다는 것을 이해해야 한다.It is to be understood that the present invention is not limited to the disclosed level of priority techniques, but includes all priority techniques appropriate for a given situation.

스레드 목록(130)은 스레드 우선순위에 의해 소팅되므로, 시스템 스레드(198)는 항상 제1 주체이고 유휴 스레드(202)는 항상 최종 주체이다. 이는 스레드 목록(130)을 관리하는 스케쥴러(100)가 새로운 스레드를 목록의 맨앞 또는 맨뒤에 추가하는 특수한 경우에 대해 전혀 고려하지 않음을 의미한다.Since thread list 130 is sorted by thread priority, system thread 198 is always the first subject and idle thread 202 is always the last subject. This means that the scheduler 100 managing the thread list 130 takes no account of the special case of adding new threads to the beginning or end of the list.

본 발명은 시스템 스레드(198)의 우선순위 수준에 대해 두번째인 제2 최상 우선순위를 갖는 스케쥴러 스레드(206)도 포함한다. 사전 결정 스레드의 사용으로 인해, 본 발명은 유휴 스레드에 대한 조사만으로 목록의 조사를 언제 중지할지가 표시되므로 맨끝에서 최종 포인터가 없는지 조사할 필요가 없다.The invention also includes a scheduler thread 206 having a second highest priority that is second to the priority level of the system thread 198. Due to the use of predetermined threads, the present invention does not need to examine the absence of the final pointer at the end, since only a survey of idle threads indicates when to stop examining the list.

본 발명은 양호한 실시예에서 만료될 수 있는 가장 먼 시간인 "무한(forever)" 시간에서 이벤트가 발생하도록 스케쥴링한다. 이 이벤트는 전혀 발생하지 않을 수 있고 시간 큐의 맨끝(이벤트 시간에 의해 소팅됨)에 항상 존재할 것이다. 이는 본 발명이 빈 타이머 큐와 협상하거나 목록의 맨끝에 이벤트를 추가하는 것을 전혀 고려하지 않음을 의미한다.The present invention schedules the event to occur at a " forever " time, which is the furthest time that can expire in the preferred embodiment. This event may not occur at all and will always be present at the end of the time queue (sorted by event time). This means that the present invention does not consider any negotiation with an empty timer queue or adding an event to the end of the list.

도 5는 스레드 목록을 통해 한 패스를 형성하는데 스케쥴러에 의해 수행되는 예시적인 동작 단계를 도시하는 흐름도이다. 시작 표시 블록(250)은 반복(iteration) 블록(254)이 맨먼저 실행되는 것을 표시한다. 반복 블록(254)에서, 단일 패스 하나가 스레드 목록에 걸쳐 형성된다. 반복 블록(258)에서, 각 스레드에 대한 소정 단계가 수행된다.5 is a flow diagram illustrating exemplary operational steps performed by the scheduler to form one pass through a thread list. Start mark block 250 indicates that iteration block 254 is executed first. At repeat block 254, a single pass is formed over the thread list. In iteration block 258, certain steps are performed for each thread.

처리 블록(262)은 현재 선택된 스레드의 우선순위 수준을 이전 스레드의 우선순위와 비교한다. 판단 블록(266)에 의해 판정될 때 스레드가 동일한 우선순위를 갖지 않으면, 처리 블록(274)이 실행된다. 그러나, 스레드가 동일한 우선순위라면, 본 발명의 라운드 로빈 스케쥴링 방식이 처리 블록(270)에서 이용되어 스레드가 양호하게는 버블 소팅되어 동일한 우선순위를 갖는 스레드에 대해 실행 순서가 역전된다. 처리는 처리 블록(274)에서 계속된다.Processing block 262 compares the priority level of the currently selected thread with the priority of the previous thread. If the threads do not have the same priority as determined by decision block 266, then processing block 274 is executed. However, if the threads are of the same priority, then the round robin scheduling scheme of the present invention is used in processing block 270 so that the threads are preferably bubble sorted and the execution order is reversed for threads having the same priority. Processing continues at processing block 274.

처리 블록(274)에서, 현재 스케쥴러에 의해 분석되고 있는 스레드가 타임아웃되었는지 판정하기 위해서 조사를 수행한다. 그렇다면, 스레드는 스레드가 타임아웃 동작을 수행할 수 있도록 기상된다. 처리 블록(278)이 실행되어 에러 조사가 수행된다.At processing block 274, a check is made to determine if the thread currently being analyzed by the scheduler has timed out. If so, the thread wakes up so that the thread can perform a timeout operation. Processing block 278 is executed to perform error checking.

판단 블록(282)은 최하 우선순위를 갖는 유휴 스레드가 고려되었는지를 문의한다. 그렇다면, 처리 블록(264)이 처리되고 미리 정해진 시간이 반복 블록(254)이 실행되기 전에 만료되어야 한다. 판단 블록(282)이 고려되었던 유휴 스레드를 찾지 못한다면, 반복 블록(258)이 실행된다.Decision block 282 queries whether the idle thread with the lowest priority is considered. If so, processing block 264 is processed and a predetermined time must expire before repeating block 254 is executed. If decision block 282 does not find the idle thread that was considered, then iteration block 258 is executed.

전술한 본 발명의 실시예는 도시의 목적으로 설명되었으며 본 발명을 한정하는 의도는 아니다. 본 발명의 기술 분야의 당업자는 첨부된 특허청구의 범위에 의해 정의된 본 발명의 사상과 범위를 벗어남없이 본 명세서에 논의된 실시예에 대해 다양한 변화물 및 변형물이 이루어질 수 있음을 알아야 한다. 예를 들면, 본 발명은 도 5에 도시된 처리가 도 3의 다른 층 스케쥴링 방식의 사용도 포함한다는 것을포함한다.The foregoing embodiments of the invention have been described for purposes of illustration and are not intended to limit the invention. Those skilled in the art should appreciate that various changes and modifications can be made to the embodiments discussed herein without departing from the spirit and scope of the invention as defined by the appended claims. For example, the present invention includes that the process shown in FIG. 5 also includes the use of the other layer scheduling scheme of FIG.

Claims (20)

스레드 목록(thread list)에 포함된 스레드 -최소한 두 스레드는 이들 두 스레드에 대해 스케쥴링된 실행(execution)을 표시하는 우선순위(priority)를 가짐- 를 스케쥴링하기 위한 컴퓨터 구현 방법에 있어서,A computer implemented method for scheduling threads included in a thread list, wherein at least two threads have a priority indicative of scheduled execution for those two threads. 상기 스레드 목록의 트래버셜(traversal) 동안During the traversal of the thread list (a) 동등한 우선순위를 갖는 최소한 두 스레드의 스케쥴링된 실행을 변형하는 단계와,(a) modifying scheduled execution of at least two threads of equal priority; (b) 상기 스레드의 최소한 하나에 대해 기한(deadline) 처리를 수행하는 단계와,(b) performing deadline processing on at least one of the threads; (c) 상기 스레드의 최소한 하나에 대해 미리 정해진 에러 조건을 조사하는 단계를(c) examining a predetermined error condition for at least one of the threads. 포함하는 방법.How to include. 제1항에 있어서, 동등한 우선순위를 갖는 상기 최소한 두 스레드의 스케쥴링된 실행을 변형하기 위해서 상기 트래버셜 중에 버블 소팅(bubble sort)을 수행하는 단계를 더 포함하는 방법2. The method of claim 1, further comprising performing bubble sort during the traversal to modify scheduled execution of the at least two threads having equal priority. 제1항에 있어서, 상기 스레드의 최소한 하나는 타임아웃(time-out) 값을 포함하고, 상기 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 타임아웃 값을 상기 트래버셜 중에 조사하는 단계를 더 포함하는 방법.2. The method of claim 1, wherein at least one of the threads comprises a time-out value, and further comprising examining the timeout value during the traversal to determine if a deadline associated with the thread has occurred. How to. 제1항에 있어서, 상기 스레드의 최소한 하나는 개략 타임아웃(coarse time-out) 값을 포함하고, 상기 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 개략 타임아웃 값을 상기 트래버셜 중에 조사하는 단계를 더 포함하는 방법.2. The method of claim 1, wherein at least one of the threads comprises a coarse time-out value and examining the coarse timeout value during the traversal to determine if a deadline associated with the thread has occurred. How to include more. 제1항에 있어서, 제1 스레드는 개략 타임아웃(coarse time-out) 값을 포함하고 제2 스레드는 정밀 타임아웃(fine time-out) 값을 포함하고,The method of claim 1, wherein the first thread comprises a coarse time-out value and the second thread comprises a fine time-out value, 상기 제1 스레드와 관련된 기한이 발생되었는지를 판정하기 위해서 상기 제1 스레드의 상기 개략 타임아웃 값을 상기 트래버셜 중에 조사하는 단계와,Examining the coarse timeout value of the first thread during the traversal to determine if a deadline associated with the first thread has occurred; 상기 제2 스레드와 관련된 기한이 발생되었는지를 판정하기 위해서 상기 제2 스레드의 상기 정밀 타임아웃 값을 상기 트래버셜 중에 조사하는 단계Examining the precision timeout value of the second thread during the traversal to determine if a deadline associated with the second thread has occurred. 를 더 포함하는 방법.How to include more. 제1항에 있어서, 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 최초로 실행하도록 스케쥴링된 스레드를 상기 스레드 목록 내에 유지하는 단계를 더 포함하는 방법.2. The method of claim 1, further comprising maintaining a thread in the thread list scheduled for first execution within the thread list during each traversal of the thread list. 제1항에 있어서, 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 최종으로 실행하도록 스케쥴링된 스레드를 상기 스레드 목록 내에 유지하는 단계를 더 포함하는 방법.The method of claim 1, further comprising maintaining a thread in the thread list that is scheduled to run last in the thread list during each traversal of the thread list. 제7항에 있어서, 상기 스레드 목록 내에서 최종으로 실행될 상기 스레드를 판단한 후에 상기 스레드 목록의 다른 트래버셜을 수행하는 단계를 더 포함하는 방법.8. The method of claim 7, further comprising performing another traversal of the thread list after determining the thread to be executed last in the thread list. 제7항에 있어서, 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 실질적으로 최초로 실행되도록 스케쥴링된 스레드를 상기 스레드 목록 내에 유지하는 단계를 더 포함하는 방법.8. The method of claim 7, further comprising maintaining a thread in the thread list that is scheduled to run substantially first in the thread list during each traversal of the thread list. 제1항에 있어서, 제1 스레드가 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 실질적으로 최초로 실행하게 스케쥴링되도록 상기 제1 스레드의 우선순위를 상기 스레드 목록 내에 최상 우선순위가 되도록 설정하는 단계를 더 포함하는 방법.2. The method of claim 1, wherein setting the priority of the first thread to be the highest priority in the thread list such that the first thread is scheduled to run substantially within the thread list during each traversal of the thread list. How to include more. 제10항에 있어서, 제2 스레드가 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 실질적으로 최종으로 실행하게 스케쥴링되도록 상기 제2 스레드의 우선순위를 상기 스레드 목록 내에 최하 우선순위가 되도록 설정하는 단계를 더 포함하는 방법.11. The method of claim 10, wherein the priority of the second thread is set to be the lowest priority in the thread list such that a second thread is scheduled to run substantially within the thread list during each traversal of the thread list. The method further comprises a step. 제11항에 있어서, 상기 제3 스레드가 상기 스레드 목록의 각 트래버셜 중에 상기 스레드 목록 내에서 실질적으로 두번째로 실행하게 스케쥴링되도록 제2 스레드의 우선순위를 상기 스레드 목록 내에 제2 최상 우선순위가 되도록 설정하는 단계를 더 포함하는 방법.12. The method of claim 11, wherein the priority of the second thread is to be the second highest priority in the thread list such that the third thread is scheduled to execute substantially second in the thread list during each traversal of the thread list. The method further comprises the step of setting. 제12항에 있어서,The method of claim 12, 시스템 동작을 수행하기 위해서 상기 제1 스레드를 사용하는 단계와,Using the first thread to perform a system operation; 스케쥴링 동작을 수행하기 위해서 상기 제2 스레드를 사용하는 단계와,Using the second thread to perform a scheduling operation; 유휴 스레드(idle thread)로서 상기 제3 스레드를 사용하는 단계를 더 포함하는 방법.Using the third thread as an idle thread. 제1항에 있어서, 상기 트래버셜 중에 상기 스레드 중의 하나와 관련된 스택 에러 조건(stack error condition)을 조사하는 단계를 더 포함하는 방법.2. The method of claim 1, further comprising investigating a stack error condition associated with one of the threads during the traversal. 스레드 -상기 스레드의 최소한 두 스레드는 이들 두 스레드에 대한 스케쥴링된 실행을 표시하는 우선순위를 가짐- 를 스케쥴링하는 컴퓨터 구현 장치에 있어서,A computer implemented apparatus for scheduling a thread, wherein at least two threads of the thread have a priority indicative of scheduled execution of these two threads. 상기 스레드를 포함하는 스레드 목록(thread list)과,A thread list containing the thread, 상기 스레드 목록의 단일 트래버셜 중에During a single traversal of the thread list (a) 동등한 우선순위를 갖는 최소한 두 스레드의 스케쥴링된 실행을 변형하는 단계와,(a) modifying scheduled execution of at least two threads of equal priority; (b) 상기 스레드 중의 최소한 하나에 대해 기한 처리를 수행하는 단계와,(b) performing a deadline process on at least one of said threads, (c) 상기 스레드 중의 최소한 하나에 대해 미리 정해진 에러 조건을 조사하는 단계를 수행하는 스레드 목록 트래버셜기(thread list traverser)(c) a thread list traverser performing the step of examining a predetermined error condition for at least one of the threads. 를 포함하는 장치.Device comprising a. 제15항에 있어서, 상기 스레드 목록 트래버셜기는 동등한 우선순위를 갖는 최소한 두 스레드의 상기 스케쥴링된 실행을 변형하기 위해서 상기 트래버셜 중에 버블 소팅을 수행하는 장치.16. The apparatus of claim 15, wherein the thread list traversal performs bubble sorting during the traversal to modify the scheduled execution of at least two threads of equal priority. 제15항에 있어서, 상기 스레드의 최소한 하나는 타임아웃 값을 포함하고, 상기 스레드 목록 트래버셜기는 상기 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 트래버셜 중에 상기 타임아웃 값을 조사하는 장치.16. The apparatus of claim 15, wherein at least one of the threads comprises a timeout value and the thread list traversal examines the timeout value during the traversal to determine if a deadline associated with the thread has occurred. 제15항에 있어서, 상기 스레드의 최소한 하나는 개략 타임아웃 값을 포함하고, 상기 스레드 목록 트래버셜기는 상기 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 트래버셜 중에 상기 개략 타임아웃 값을 조사하는 장치.16. The apparatus of claim 15, wherein at least one of the threads comprises a coarse timeout value, and wherein the thread list traversal device examines the coarse timeout value during the traversal to determine if a deadline associated with the thread has occurred. . 제15항에 있어서, 제1 스레드는 개략 타임아웃 값을 포함하고 제2 스레드는정밀 타임아웃 값을 포함하며, 상기 스레드 목록 트래버셜기는 상기 제1 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 제1 스레드의 상기 개략 타임아웃 값을 상기 트래버셜 중에 조사하고, 상기 스레드 목록 트래버셜기는 상기 제2 스레드와 관련된 기한이 발생하였는지를 판정하기 위해서 상기 제2 스레드의 상기 정밀 타임아웃 값을 상기 트래버셜 중에 조사하는 장치.16. The system of claim 15, wherein the first thread includes a coarse timeout value and the second thread includes a precise timeout value, wherein the thread list traversal unit is configured to determine whether a deadline associated with the first thread has occurred. The coarse timeout value of one thread is examined during the traversal, and the thread list traversal unit reads the fine timeout value of the second thread during the traversal to determine whether a deadline associated with the second thread has occurred. Device to investigate. 제15항에 있어서, 상기 스레드 목록에 실질적으로 영구적으로 존재하고 상기 스레드 목록 내에서 최초로 실행하는 제1 스레드와,16. The method of claim 15, further comprising: a first thread that is substantially permanently present in the thread list and that executes first in the thread list; 상기 스레드 목록에 실질적으로 영구적으로 존재하고 상기 스레드 목록 내에서 최종으로 실행하는 제2 스레드를 포함하고,A second thread that is substantially permanently present in the thread list and finally runs within the thread list, 상기 스레드 목록 트래버셜기는 상기 트래버셜 중에 상기 제2 스레드를 판단한 후에 상기 스레드 목록의 다른 트래버셜을 수행하는 장치.And the thread list traversal machine performs another traversal of the thread list after determining the second thread during the traversal.
KR1020017007977A 1998-12-23 1999-12-17 Method and apparatus for providing operating system scheduling operations KR20010103719A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US21982598A 1998-12-23 1998-12-23
US09/219,825 1998-12-23
PCT/US1999/030247 WO2000039677A1 (en) 1998-12-23 1999-12-17 Method and apparatus for providing operating system scheduling operations

Publications (1)

Publication Number Publication Date
KR20010103719A true KR20010103719A (en) 2001-11-23

Family

ID=22820936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017007977A KR20010103719A (en) 1998-12-23 1999-12-17 Method and apparatus for providing operating system scheduling operations

Country Status (3)

Country Link
EP (1) EP1141827A1 (en)
KR (1) KR20010103719A (en)
WO (1) WO2000039677A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047138B2 (en) 2010-07-22 2015-06-02 Samsung Electronics Co., Ltd. Apparatus and method for thread scheduling and lock acquisition order control based on deterministic progress index

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9354926B2 (en) 2011-03-22 2016-05-31 International Business Machines Corporation Processor management via thread status
US9652027B2 (en) * 2015-04-01 2017-05-16 Microsoft Technology Licensing, Llc Thread scheduling based on performance state and idle state of processing units

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1322422C (en) * 1988-07-18 1993-09-21 James P. Emmond Single-keyed indexed file for tp queue repository
JPH0954699A (en) * 1995-08-11 1997-02-25 Fujitsu Ltd Process scheduler of computer
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047138B2 (en) 2010-07-22 2015-06-02 Samsung Electronics Co., Ltd. Apparatus and method for thread scheduling and lock acquisition order control based on deterministic progress index

Also Published As

Publication number Publication date
EP1141827A1 (en) 2001-10-10
WO2000039677A1 (en) 2000-07-06

Similar Documents

Publication Publication Date Title
Rajkumar et al. Resource kernels: A resource-centric approach to real-time and multimedia systems
US7246167B2 (en) Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections
US20070124733A1 (en) Resource management in a multi-processor system
US7373640B1 (en) Technique for dynamically restricting thread concurrency without rewriting thread code
Bangs et al. Better operating system features for faster network servers
US20100043009A1 (en) Resource Allocation in Multi-Core Environment
Kaneko et al. Integrated scheduling of multimedia and hard real-time tasks
Pyarali et al. Evaluating and optimizing thread pool strategies for real-time CORBA
US20060212869A1 (en) Resource management method and apparatus
JPH1055284A (en) Method and system for scheduling thread
JP2004213625A (en) Response-time basis workload distribution technique based on program
EP1342156A2 (en) Resource manager architecture
US10908963B2 (en) Deterministic real time business application processing in a service-oriented architecture
US20070022423A1 (en) Enhanced method for handling preemption points
Zhang et al. Scheduling best-effort and real-time pipelined applications on time-shared clusters
KR20010103719A (en) Method and apparatus for providing operating system scheduling operations
Kravetz et al. Enhancing Linux scheduler scalability
Mercer Operating system resource reservation for real-time and multimedia applications
Lagerstrom et al. PScheD Political scheduling on the CRAY T3E
Leontyev Compositional analysis techniques for multiprocessor soft real-time scheduling
Jehuda et al. A time-sharing architecture for complex real-time systems
No A Time-Sharing Architecture for Complex Real-Time Systems
Wolf et al. Resource Scheduling
Gill et al. Enhancing adaptivity via standard dynamic scheduling middleware
Researchz Richard N. Lagerstrom Cray Research

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