KR20010104716A - 멀티-태스킹 소프트웨어 구조 - Google Patents

멀티-태스킹 소프트웨어 구조 Download PDF

Info

Publication number
KR20010104716A
KR20010104716A KR1020017011022A KR20017011022A KR20010104716A KR 20010104716 A KR20010104716 A KR 20010104716A KR 1020017011022 A KR1020017011022 A KR 1020017011022A KR 20017011022 A KR20017011022 A KR 20017011022A KR 20010104716 A KR20010104716 A KR 20010104716A
Authority
KR
South Korea
Prior art keywords
task
data
message
events
message files
Prior art date
Application number
KR1020017011022A
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 KR20010104716A publication Critical patent/KR20010104716A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

본 발명은 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지 제 1 태스크를 정지시키기 위한 세마포어 수단을 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 컴퓨터 프로그램 제품은 제 1 태스크에 의해 처리될 데이터를 수신하기 위해 상기 제 1 태스크와 연관된 특정한 메시지 파일들을 포함한다. 상기 미리 결정된 세트의 이벤트들 중 하나의 발생은 한 조각의 데이터가 연관된 메시지 파일들 중 하나의 파일 내에 기록되게 한다. 본 발명에 따른 컴퓨터 프로그램은 기본 동기화 도구들(basic synchronization tools)을 갖는 임의의 운용 시스템을 사용함으로써 구현될 수 있다. 그러한 동기화 도구들은 태스크가 다른 태스크에 의한 세마포어의 해제와 같은 특별한 이벤트를 기다리게 하기 위한 세마포어 수단을 포함한다. 또한, 그들은 제 1 태스크와 연관된 메시지 파일들 내에 데이터를 기록(메시지 수신)하는 동안 인터럽션 핸들러들로부터 오는 "인터럽션들"을 일시적으로 폐색하기 위한 폐색 메커니즘들을 포함한다. 본 발명은, 실제로, 내장 시스템들(embedded systems)에 적당하도록 매우 기본적인 동기화 도구들만을 사용하는 것을 제외하고는 "선택 메커니즘"과 동등물을 제공한다.

Description

멀티-태스킹 소프트웨어 구조{Multi-tasking software architecture}
유럽 특허 출원 제 592 117 A2 호는 실-시간 및 멀티프로세서 응용들을 위한 운용 시스템(operating system)에서 비동기 인터프로세스 통신 배열(asynchronous interprocess communications arrangement)을 설명한다.
본 발명은 컴퓨터 시스템들 및 컴퓨터 시스템들을 위한 소프트웨어 구조(software architecture)에 관한 것이다. 특히, 본 발명은 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지 태스크를 정지(stalling)시키기 위한 세마포어 수단(semaphore means)을 포함하는 소프트웨어 구조에 관한 것이다.
도 1은 본 발명을 도시하는 개념도.
도 2는 본 발명에 따른 컴퓨터 시스템의 블록도.
도 3은 본 발명에 따른 전자 장치(electronic apparatus)의 블록도.
도 4는 본 발명에 따른 방법을 도시하는 도면.
본 발명에 따라, 서두에 정의된 바와 같이, 컴퓨터 프로그램은 제 1 태스크에 의해 처리될 데이터를 수신하기 위해 상기 제 1 태스크와 연관된 특정한 메시지 파일을 포함하고, 상기 미리 결정된 세트의 이벤트들 중 하나의 발생이 한 조각의 데이터(a piece of data)가 연관된 메시지 파일들 중 하나에 기록되게 하는 것을 특징으로 한다. 미리 결정된 이벤트들의 결과들(consequences)은, 예컨대, 다른 태스크 또는 인터럽션 핸들러(interruption handler)로부터 특정한 메시지 파일들(specific message files) 중 하나의 기록을 포함할 수 있다. 후자는 하드웨어 인터럽션을 처리하기 위해 현재의 태스크가 인터럽션 핸들러에 의해 정지 또는 "인터럽트"되게 하는 하드웨어 인터럽션(IT)에 의해 트리거될 수 있다. 본 발명에 따른 컴퓨터 프로그램은 기본적인 동기화 도구들(basic synchronization tools)을 갖는 임의의 운용 시스템(operating system)을 사용함으로써 구현될 수 있다. 그러한 동기화 도구들은 태스크가 다른 태스크에 의한 세마포어의 해제(release)와 같은 특별한 이벤트(unique event)를 기다리게 하기 위한 세마포어 수단을 포함한다. 또한, 그들은 제 1 태스크와 연관된 메시지 파일들 내의 데이터를 기록(메시지 수신)하는 동안 인터럽션 핸들러들로부터 오는 "인터럽션들"을 일시적으로 폐색하기 위한 폐색 메커니즘들(blocking mechanisms)을 포함한다. 단어 "인터렵션"은, 인터럽션 핸들러에 의해 처리되는 하드웨어 인터럽션으로부터 인터럽션 핸들러에 의해 야기된 "인터럽션"을 구별하기 위해 인용 부호들 사이에 두며, 소프트웨어 인터럽션의 소스이다. 인터럽션 핸들러들로부터 "인터럽션들"을 일시적으로 폐색하기 위한 폐색 메커니즘들은 제 1 태스크로 보내질 메시지에 대응하는 데이터의 저장(storage) 동안 메모리 충돌(memory conflict)을 방지하게 한다. 내장 시스템들(embedded systems)은 단순한 운용 시스템들(OS)을 사용함으로써 양호하게 구현된다. 그러한 OS는 일반적으로, 태스크의 실행이 태스크들 및 IT 핸들러들과 같은 상이한 엔티티들(entities)로부터 오는 몇몇 이벤트들에 의존하게 하기 위한 "선택" 수단과 같은 복잡한 동기화 도구들을 포함하지 않는다. 반대로, 복잡한 OS는 일반적으로, 미리 결정된 이벤트가 발생할 때까지 태스크의 정지(즉, 태스크를 수면상태(sleep)로 보냄)를 인가하는 파일 디스크립터들(file descriptors)을 사용하는 "선택" 메커니즘을 포함한다. 파일들 중 하나에 데이터를 기록하는 것은 이벤트의 한 예이다. 이것은 OS가 더 복잡한 파일-처리 수단(file-handling means)을 포함한다는 것을 암시한다. 따라서, 그들은 내장 시스템들에 적절하지 않다. 본 발명은, 사실상, 내장 시스템들에 적당하도록 매우 기본적인 동기화 도구들만을 사용한다는 것을 제외하고는 "선택 메커니즘"과 동등물을 제공한다.
본 발명의 다른 이점은 다음의 관점들에 관한 것이다. 태스크에 비해 매우 빈약한 성능을 갖는 인터럽트 핸들러는, 예컨대, 단순한 FIFO(first in first out) 데이터 구조의 타입의 메시지 파일에 직접 기록할 수 있다. 그러한 메시지 파일에 데이터를 기록하는 것은 대체로 포인터 조작들(pointer manipulations)을 요구하기 때문에, 이것은 인터럽트 핸들러(태스크에 의해서 뿐만 아니라)에 의해 수행될 수 있다. 파일 디스크립터들을 사용하는 복잡한 OS에 있어서, IT 핸들러가 파일에 기록하는 것은 불가능하다. 이러한 경우에, 실제로, 데이터 기록은 포인터 조작들보다 훨씬 더 복잡한 실행들(actions)을 요구하므로, 그들은 인터럽트 핸들러에 의해 수행될 수 없다. 태스크와 연관된 소위 메시지 파일이라 불리는 단순한 데이터 구조를 사용함으로써, 본 발명은 태스크가 다른 태스크들로부터 뿐만 아니라 인터럽션 핸들러들로부터 직접 메시지들을 수신하게 하며, 이것은 매우 흥미롭다.
본 발명 및 유리하게 본 발명을 구현하는데 선택적으로 사용될 수 있는 부가적인 특징들은 하기에 설명된 도면들을 참조하여 명백해지고 해명될 것이다.
도 1은 한 세트의 미리 결정된 이벤트들에 관하여 제 1 태스크(F1)를 동기화하기 위한 소프트웨어 구조를 갖는 본 발명에 따른 컴퓨터 프로그램 제품(computer program product)을 도시한다. 미리 결정된 이벤트들은 표시된 태스크들(F2 및 F3) 또는 표시된 인터럽션 핸들러들(interruption handlers)(또는 IT 핸들러들)(IT1 및 IT2)의 실행을 야기할 수 있다. 태스크들 및 IT 핸들러들은 도 2에 도시된 바와 같이 마이크로프로세서에 의해 수행된다. IT 핸들러들은 하드웨어 인터럽션들을 처리하며, 태스크들은 프로그램에 따라 마이크로프로세서에 의해 실행된다.
표시된 메시지 파일들(MF1 내지 MF3)은 미리 결정된 이벤트들의 발생에 의해 야기된 메시지들을 수신하기 위해 제 1 태스크(F1)와 연관된다. 도 1에 도시된 바와 같이, IT 핸들러들(IT1 및 IT2)은 메시지 파일(MF1)을 위해 예약되며, 태스크들(F2 및 F3)은 메시지 파일들(MF2 및 MF3)을 위해 각각 예약된다. 본 발명의 양호한 실시예에 따라, 우선도 레벨들(priority levels)은 메시지 파일들에 할당될 수 있다. 높은 우선도 레벨을 갖는 메시지 파일들은 보다 낮은 우선도 레벨들을 갖는 메시지 파일들에 우선하여 수행될 것이다. 양호하게는, 인터럽션 핸들러들과 연관된 파일들, 즉, 파일(MF1)은 태스크들, 즉, MF2 및 MF3과 연관된 파일들보다 더 높은 우선도 레벨로 주어진다.
메시지 파일은, 예컨대, 데이터가 조작 포인터들(manipulating pointers)에 의해서만, 즉, 매우 빨리 저장 및 검색될 수 있는 FIFO와 같은 단순한 데이터 구조일 수 있다. FIFO는 비-제한적인 예이다. 하기에 설명되는 바와 같이, IT 핸들러에 의해 액세스될 수 있도록 제공된 훨씬 많은 데이터 구조들이 메시지 파일들을 구현하기 위해 사용될 수 있다. 이들 메시지 파일들 중 하나에 기록하는 것은 태스크(F2 또는 F3)로부터 뿐만 아니라 IT 핸들러(IT1 또는 IT2)로부터 이루어질 수 있다. 그러한 기록이 메모리 할당을 위해 메모리 테이블들 상에 포인터들의 조작만을 요구할 때, 단지 적은 마이크로초(a few microseconds)가 걸린다. 따라서, 매우 빈약한 기능들을 갖는 IT 핸들러가 이들 메시지 파일들 내에 데이터 기록을 야기하는 것이 가능하다. 제 1 태스크와 연관된 데이터 구조 없이,IT 핸들러들로부터 메시지들을 처리하기 위한 특정한 여분의 태스크(specific extra task)를 갖는 것이 필요하며, 메시지들은 제 1 태스크에 대해 예정된다.
구조는, 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지, 제 1 태스크(F1)(태스크는 세마포어(semaphore; S) 상에 계류중(pending)임)를 정지(stalling)하기 위해 표시된 세마포어 수단(S)을 포함한다. 이벤트는 IT 핸들러 또는 태스크로부터 메시지 파일들 중 하나에 기록을 야기할 수 있다. 세마포어 수단은, 상기 미리 결정된 세트의 이벤트들 중 하나가 발생할 때마다 증가되는 카운터를 포함한다. 따라서, 제 1 태스크(F1)는, 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지, 그 세마포어 상에 계류중이다. 이벤트의 발생은 발생된 이벤트에 관하여 특정한 프로그램을 실행하기 위해 태스크를 웨이크업(wake up)시킨다.세마포어의 카운터는 연관된 파일들 중 임의의 하나에 메시지의 수신 상에 증가된다. 카운터는 얼마나 많은 메시지들이 제 1 태스크(F1)에 의해 아직 판독되지 않았음을 지시한다. 메시지가 제 1 태스크(F1)에 의해 판독될 때마다, 카운터는 감소된다.
모든 수신된 메시지들은 미리 할당된 메모리 테이블(pre-allocated memory table) 또는 파일에 실제로 물리적으로 저장된다. 메모리 위치 체인(memory location chain)은 각각의 메시지 파일에 할당되며, 각각의 파일의 모든 수신된 메시지들을 포함한다. 메시지들에 포함된 정보는 체인의 제 1 위치의 주소를 액세스함으로써 검색될 수 있다.
새로운 메시지의 수신과 동시에, 자유로운 위치(free location)가 새로운 메시지에 할당된다. 동시에 2 개의 목적들을 위한 자유로운 위치의 할당을 피하기 위해, 할당이 확실히 완료될 수 있도록 메시지의 수신 동안 "인터럽션들"을 일시적으로 폐색(block)하는 것이 필요하다. 폐색 메커니즘(blocking mechanism)은 일반적으로 운용 시스템(operating system)에 포함된다. 여기에서 운용 시스템은, 메시지 수신 동안, 즉, 메시지 파일들 중 하나에 데이터를 기록하는 동안 IT 핸들러들(IT1 및 IT2)로부터 오는 "인터럽션들"을 일시적으로 폐색하기 위해 사용된다. 사실상, 인터럽션들을 폐색하는 것은 현재 태스크의 처리 상에서 우선도를 취하는 것으로부터 태스크들 또는 IT 핸들러들을 보호한다. 전술된 바와 같이, 메모리 할당은 극히 적은 시간이 걸린다. 이어서, 인터럽트들은 일반적으로 실-시간 응용들(real-time applications)을 위해 받아들일 수 있는 단지 몇 마이크로초 동안 폐색될 것을 필요로 한다.
새로운 메시지가 수신되지 않는 동안, 제 1 태스크는, 이벤트가 태스크들 또는 IT 핸들러들 중 하나로부터 발생할 때까지, 그 세마포어(S) 상에 계류중이다. 이것은 큰 점과 함께 시작하는 점선들에서 화살표(11)에 의해 도시된다. 이벤트의 발생은 어떤 일정한 데이터(a certain data)로 하여금 실선 화살표(12)에 의해 도시되는 예약된 파일에 기록되게 한다. 상기 데이터 기록을 야기했던 태스크 또는 IT 핸들러는 또한, 세마포어(S)가 해제(release)되게 하고, 그 카운터가 증가되게 한다. 이것은 새로운 메시지가 연관된 메시지 파일들 중 하나에 수신됨을 지시한다. 세마포어의 해제는 점선 화살표(13)에 의해 지시된다. 세마포어(S)의 해제와 동시에, 제 1 태스크(F1)는 그 실행을 다시 시작하기 위해 웨이크업된다.
본 발명의 양호한 실시예에 따라, 제 1 태스크가 웨이크업되자마자, 제 1 태스크는 가장 높은 우선도 레벨을 갖는 메시지 파일들을 조사하여 이 메시지 파일에 판독하지 않은 메시지들이 존재하는지를 검사하는 것을 시작한다. 이어서, 제 1 태스크는, 메시지가 수신되는 파일들에 주어진 우선도의 순서로 메시지들을 판독 및 처리한다. 도 1에 도시된 바와 같이, 태스크(F1)는 가장 높은 우선도를 갖는 메시지 파일(MF1)에 메시지들을 판독하기 시작한다. 메시지가 한 번 판독되면, 세마포어의 카운터는 감소된다. 판독은 큰 점(14)과 함께 시작하는 실선들에서 화살표에 의해 도시된다.
세마포어의 카운터가 양(positive)(또는 운용 시스템 내의 세마포어의 구현에 의존하여 0과 같음)이면, 적어도 하나의 연관된 메시지 파일들에서 판독되지 않은 메시지들이 존재한다. 그러한 경우에, 제 1 태스크는 수신된 메시지들의 판독 및 처리를 유지한다. 카운터가 음(negative)(또는 0이 앞에 포함되지 않은 경우에 0과 같음)이면, 제 1 태스크는, 새로운 메시지가 도착하고, 카운터가 다시 양으로 되게 할 때까지, 그 세마포어 상에 폐색되도록 말해진다. 제 1 태스크(F1)와 함께 설명된 동일한 메커니즘은 태스크들(F2 및 F3)과 함께 구현될 수 있다.
전술된 메커니즘은 태스크, 도 1에 도시된 제 1 태스크(F1)로 하여금, 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지 정지되게 한다. 이 이벤트들은 F2 및 F3과 같은 태스크들의 실행, 또는 (IT1 및 IT2와 같은 인터럽트 핸들러들(interrupt handlers)의 실행에 의해 야기될 수 있다. 메커니즘은 다른 태스크들 또는 IT 핸들러들로부터 메시지들을 수신하기 위한 제 1 태스크와 연관되는 메시지 파일들의 구현에 기초한다. 인터럽트들은 메모리 충돌을 방지하도록 메시지들의 기록 동안 일시적으로 폐색된다.
도 2는 도 1에 도시된 바와 같은 소프트웨어 구조를 구현하기 위한 컴퓨터 시스템을 도시하는 블록도이다. 컴퓨터 시스템은 장치 내에 내장되는 마이크로프로세서(μP)를 포함한다. 마이크로프로세서는 장치를 제어하기 위해 미리 저장된 프로그램을 실행한다. 프로그램은 프로그램에 관하여 스케줄러(SCHED)에 의해 제어되는 태스크들(21)을 포함한다. 표시된 인터럽트들(ITS)은 하드웨어 구성요소들에 의해 발생될 수 있다. 연속적인 라인(serial line) 상에 ASCI 문자의 도착은 인터럽트를 야기할 수 있다. 인터럽트들은 인터럽트 서버(IT SERV.)에 의해 먼저 처리된다. 그것은 인터럽트의 소스에 의존하여 적절한 인터럽트 핸들러(25)를 선택한다.이어서, IT 핸들러는 인터럽트를 처리한다. 도 2에 있어서, IT 핸들러들 및 태스크들은 마이크로프로세서 블록 내부에 표현된다. 이것은 단지 그들이 마이크로프로세서에 의해서 실행됨을 의미한다. 그러나, 태스크들 및 인터럽트들과 연관된 코드는 마이크로프로세서 내부 또는 외부 중 하나의 임의의 메모리 위치에 저장될 수 있다. 특정한 메모리 수단은 또한, 도 1을 참조하여 설명된 바와 같이, 메시지 파일들(MF1, MF2 및 MF3) 또는 세마포어 수단에 대응하는 메모리 위치들을 나타내기 위한 블록(MEM)의 형태로 지시된다. 메시지 파일들 및 세마포어 수단은 또한, 분리된 메모리 수단들 내에 저장될 수 있다.
도 3에는 본 발명에 따른 전자 장치의 한 예의 블록도가 도시된다. 도 3은, 케이블 또는 위성 오디오 및 비디오 대화식 프로그램들(cable or satellite audio and video interactive programs)을 수신하도록 의도된 TV 수신 및 디코딩 장치, 또는 셋 탑 박스(set top box)를 도식적으로 도시한다.
도 3에 도시된 전자 장치는 주파수 변환 블록, 튜너(TUN)와 중간 주파수 증폭기(IF)를 구비하는 파라볼릭 안테나(31)를 포함한 다. 중간 주파수 증폭기(IF)는 아날로그-디지털 변환기(analog-to-digital converter; A/D)에서 디지털 값들로 변환되고, 이어서 복조기(DEM)에 의해 복조되는 출력 신호를 제공한다. 결국, 일정한 에러들이 에러 정정기(F.E.C; "Forward Error Correction")에서 정정된다.
아래에 주어진 설명은 비제한적인 예이다. 장치의 입력은, 모듈들(TUN, IF, A/D 및 DEM)이 상이한 경우에, 예컨대, 케이블 또는 헤르츠 분배 시스템(hertzian distribution system)에도 마찬가지로 접속될 수 있다.
에러 정정기(F.E.C)의 출력에서의 복조된 신호는 MPEG-2 신호("MPEG-2 전송 스트림(transport stream)")이다. 이 신호는 몇몇 경우에 스크램블될 수 있는 사운드 및 데이터를 갖는 몇몇 프로그램들을 포함한다.
가장 단순한 경우에 있어서, 이 MPEG-2 TS 신호는 병렬 타입의 접속(32)을 통해 언스크램블링(unscrambling), 조건부 액세스(conditional access), 및 디멀티플렉싱(demultiplexing) 집적 회로(33)로 직접 공급된다. 신호는 언스크램블링 회로(DSC)에서 언스크램블되고, 버스를 통해 마이크로프로세서(μP)로 , 이어서 또한, 버스를 통해 디멀티플렉서(DEMUX)로 전송된다. 디멀티플렉서는 MPEG-2 TS 신호로부터 프로그램을 선택한다. 이 프로그램은 비디오 디코더(34) 및 오디오 디코더(35)에 디지털 형태로 응용된다. 응답하여, 이 디코더들은 각각 스크린 상에 이미지를 투사하고 확성기로부터 사운드를 발생시키기 위해 아날로그 신호들을 공급한다. 이 디코더들은 외부 텔레비전에 각각 접속된 오디오 및 비디오 회로들(36 및 37)에 의해 수반된다. 따라서, 본 명세서에 설명된 장치는 주변의 TV 모니터 또는 전형적인 TV 세트의 입력에 접속되도록 설계된 박스일 수 있다. 대안적으로, 이들 모든 회로들은 TV 세트 내에 통합될 수 있다.
도 1에 도시된 바와 같이, 소프트웨어 구조는, 예컨대, 언스크램블링, 조건부 액세스, 및 디멀티플렉싱 집적 회로(33)의 마이크로프로세서 블록 내에 구현될 수 있다. 인터럽트(IT1 또는 IT2)는, 예컨대, 제조 처리 동안 테스트 목적들을 위해 연속적인 라인(도면에 도시 안됨) 상에 ASCI 문자의 존재에 의해 야기될 수 있다. 또한, 인터럽트는 셋 탑 박스의 정규 작업 처리(normal working process) 동안RC6 원격 제어 코드의 존재에 의해 야기될 수 있다. 또한, 인터럽트는 디멀티플렉서(DEMUX)의 진입(entry)에서 데이터 버스트(data burst)의 존재에 의해 야기될 수 있다. 예로서, 제 1 태스크(F1)는 다른 태스크들(F3 또는 F2)로부터 오는 TCP/IP 스택을 기다릴 수 있다.
본 발명의 유리한 응용은 아래에 설명된다. 이러한 예에 따라, 미리 결정된 이벤트들은 다른 태스크들 또는 인터럽트들 핸들러에 의해 제 1 태스크와 연관된 특정한 메시지 파일들에 기록들을 야기한다. 후자의 경우에, 기록은 적절한 IT 핸들러에 의해 처리되는 하드웨어 인터럽션에 의해 야기된다. IT 핸들러는 특정한 태스크에 메시지를 보내도록 요구될 수 있다. 예컨대, 인터럽션이 ASCI 문자의 도착에 관한 것이면, 이 인터럽션을 처리하는 IT 핸들러는 제 1 태스크에 ASCI 문자를 통신하도록 요구될 수 있다. 정상적으로, IT 핸들러로부터 예정된 제 1 태스크로 메시지를 전송하기 위한 특정한 태스크를 갖는 것이 요구될 것이다. 태스크들에 연관된 메시지 파일들을 제공하는 본 발명에 따라, IT 핸들러는 ASCI 문자를 포함하는 그 메시지를 제 1 태스크와 연관된 예약된 메시지 파일을 통해 예정된 제 1 태스크로 보낼 수 있다. 제 1 태스크는 IT 핸들러로부터 오는 모든 ASCI 문자들을 모을 수 있고, 캐릭터 체인을 만들 수 있다. 이어서, 제 1 태스크는 모든 체인을 이 캐릭터 체인을 처리하는데 필요한 제 2 태스크로 전송할 수 있다.
도 4는 본 발명에 따라 표시된 미리 결정된 세트의 이벤트들(E) 중 하나의 발생에 대하여 태스크를 동기화하는 방법을 도시하는 다이어그램이다. 방법의 단계들은 K0 내지 K4 경우들에서 지시된다.
- K0은, 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지, 제 1 태스크(F!)가 특정한 세마포어를 기다리게 하기 위한 대기 단계(WAIT)이며, 제 1 태스크는 미리 결정된 이벤트들의 발생에 의해 야기된 메시지들을 수신하기 위한 메시지 파일들과 연관된다.
- K1은 다음의 메시지 수신 단계 동안 메모리 할당 충돌들을 피하기 위해 상기 메시지들의 수신 동안 IT 핸들러로부터 오는 인터럽션들을 일시적으로 폐색하기 위한 폐색 단계(block)이고,
- K2는 제 1 태스크와 연관된 파일들 중 하나에 메시지를 수신하기 위한 메시지 수신 단계(recept)이고,
- K3은 미리 결정된 이벤트 중 하나의 발생과 동시에 제 1 태스크를 웨이크업시키기 위한 웨이크업 단계(wake)이며,
- K4는 메시지 파일들 내에 수신된 메시지들을 판독 및 처리하기 위한 판독 및 처리 단계(R&P)이다.

Claims (10)

  1. 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지, 제 1 태스크를 정지시키는 세마포어 수단(semaphore means)을 포함하는 컴퓨터 프로그램 제품(computer program product)에 있어서,
    상기 컴퓨터 프로그램 제품은, 상기 제 1 태스크에 의해 처리될 데이터를 수신하기 위해 상기 제 1 태스크와 연관된 특정한 메시지 파일들을 포함하며, 상기 미리 결정된 세트의 이벤트들 중 하나의 발생은 한 조각의 데이터(a piece of data)가 상기 연관된 메시지 파일들 중 하나에 기록되게 하는 것을 특징으로 하는, 컴퓨터 프로그램 제품.
  2. 제 1 항에 있어서,
    상기 미리 결정된 세트의 이벤트들은 하드웨어 인터럽션들을 포함하고, 하드웨어 인터럽션은 선택된 인터럽션 핸들러가 상기 제 1 태스크와 연관된 메시지 파일들 중 하나의 파일에 데이터를 기록하게 하며, 폐색 메커니즘(blocking mechanism)은 상기 메시지 파일에 상기 데이터를 기록하는 동안 상기 인터럽션들을 일시적으로 폐색하기 위해 사용되는, 컴퓨터 프로그램 제품.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 미리 결정된 세트의 이벤트들은, 제 2 태스크로 하여금 상기 연관된 메시지 파일들 중 하나에 데이터를 기록하게 하는 적어도 하나의 이벤트를 포함하는, 컴퓨터 프로그램 제품.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 메시지 파일들은 우선도 레벨이 주어지고, 상기 제 1 태스크는 데이터가 수신되는 파일의 우선도(priority)의 순서로, 상기 연관된 파일들에 수신된 상기 데이터를 처리하는, 컴퓨터 프로그램 제품.
  5. 제 4 항에 있어서,
    최고 우선도 레벨을 갖는 메시지 파일들이 상기 인터럽션 핸들러들로부터 데이터를 수신하기 위해 인터럽션 핸들러들에 할당되는, 컴퓨터 프로그램 제품.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 메시지 파일들은 포인터 조작(pointer manipulation)에 의해 액세스 가능한 데이터 구조를 포함하는, 컴퓨터 프로그램 제품.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 청구된의 컴퓨터 프로그램을 구현하기 위한 컴퓨터 시스템에 있어서,
    - 적어도 상기 제 1 태스크를 포함하는 한 세트의 스케줄링 가능한 태스크들(schedulable tasks)을 실행하기 위한 프로세서,
    - 상기 프로세서에 의한 실행을 위해 상기 스케줄링 가능한 태스크들 중 하나를 선택하기 위한 스케줄러,
    - 인터럽트들을 처리하기 위한 적어도 인터럽트 핸들러와,
    - 인터럽트의 발생에 응답하여 특정한 기능을 수행하기 위한 인터럽트 서버를 포함하는, 컴퓨터 시스템.
  8. 제 7 항에 청구된 컴퓨터 시스템을 포함하는 전자 장치.
  9. 미리 결정된 세트의 이벤트들 중 하나의 발생에 대하여 제 1 태스크를 동기화하는 방법에 있어서,
    - 상기 미리 결정된 세트의 이벤트들 중 하나가 발생할 때까지, 상기 제 1 태스크가 특정한 세마포어를 기다리게 하기 위한 대기 단계(waiting step)로서, 상기 제 1 태스크는 메시지 내의 데이터를 수신하기 위해 메시지 파일들과 연관되며, 상기 데이터 수신은 상기 미리 결정된 이벤트들 중 하나의 발생에 의해 야기되는, 상기 대기 단계,
    - 상기 데이터의 수신 동안 인터럽션들을 일시적으로 폐색하기 위한 폐색 단계,
    - 상기 연관된 메시지 파일들 중 하나에 상기 데이터를 수신하기 위한 수신 단계,
    - 그 연관된 파일들 중 하나에 데이터의 수신과 동시에 상기 제 1 태스크를웨이크업시키기 위한 웨이크업 단계(wakeup step)와,
    - 메시지 파일에 수신된 데이터를 판독 및 처리하기 위해 상기 제 1 태스크에 의해 수행된 판독 및 처리 단계를 포함하는 제 1 태스크 동기화 방법.
  10. 제 9 항에 있어서,
    상기 미리 결정된 세트의 이벤트들은 인터럽트 핸들러들로 하여금 상기 제 1 태스크와 연관된 메시지 파일들 중 하나에 데이터를 기록하게 하는 하드웨어 인터럽트들을 포함하는, 제 1 태스크 동기화 방법.
KR1020017011022A 1999-12-30 2000-12-18 멀티-태스킹 소프트웨어 구조 KR20010104716A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP99403326 1999-12-30
EP99403326.4 1999-12-30
PCT/EP2000/012926 WO2001050241A2 (en) 1999-12-30 2000-12-18 Multi-tasking software architecture

Publications (1)

Publication Number Publication Date
KR20010104716A true KR20010104716A (ko) 2001-11-26

Family

ID=8242241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017011022A KR20010104716A (ko) 1999-12-30 2000-12-18 멀티-태스킹 소프트웨어 구조

Country Status (6)

Country Link
US (1) US6877157B2 (ko)
EP (1) EP1194842A2 (ko)
JP (1) JP2003519831A (ko)
KR (1) KR20010104716A (ko)
CN (1) CN1211737C (ko)
WO (1) WO2001050241A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
JP2004064731A (ja) * 2002-06-03 2004-02-26 Sharp Corp ローノイズブロックダウンコンバータ
FR2854263A1 (fr) * 2003-04-24 2004-10-29 St Microelectronics Sa Procede d'execution de taches concurrentes par un sous-systeme gere par un processeur central
EP1787196B1 (en) * 2004-08-16 2014-07-23 National Instruments Corporation Synchronizing execution of graphical programs executing on different computer systems
US9983874B2 (en) 2006-03-16 2018-05-29 International Business Machines Corporation Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling
US9390015B2 (en) 2006-03-16 2016-07-12 International Business Machines Corporation Method for performing cacheline polling utilizing a store and reserve instruction
US8117389B2 (en) 2006-03-16 2012-02-14 International Business Machines Corporation Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions
US8219763B2 (en) 2006-03-16 2012-07-10 International Business Machines Corporation Structure for performing cacheline polling utilizing a store and reserve instruction
CA2677131C (en) 2007-02-06 2014-10-14 Mba Sciences, Inc. A resource tracking method and apparatus
CN101470636B (zh) * 2007-12-27 2011-10-26 北京东方通科技股份有限公司 一种消息的读写方法和装置
DE102011083468A1 (de) * 2011-09-27 2013-03-28 Robert Bosch Gmbh Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253418A5 (ko) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US5313638A (en) * 1992-03-24 1994-05-17 International Business Machines Corp. Method using semaphores for synchronizing communication between programs or processes resident in a computer system
US5327558A (en) * 1992-04-30 1994-07-05 Motorola, Inc. Method for asynchronous application communication
US5434975A (en) 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
AU1424697A (en) * 1995-12-29 1997-07-28 Powertv, Inc. Event filtering feature for a computer operating system in home communications terminal
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6567840B1 (en) * 1999-05-14 2003-05-20 Honeywell Inc. Task scheduling and message passing
US6687257B1 (en) * 1999-08-12 2004-02-03 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing dynamic guaranteed mixed priority scheduling for communications and processing
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management

Also Published As

Publication number Publication date
EP1194842A2 (en) 2002-04-10
US6877157B2 (en) 2005-04-05
CN1360696A (zh) 2002-07-24
US20010018716A1 (en) 2001-08-30
JP2003519831A (ja) 2003-06-24
WO2001050241A2 (en) 2001-07-12
CN1211737C (zh) 2005-07-20
WO2001050241A3 (en) 2002-02-07

Similar Documents

Publication Publication Date Title
US6195701B1 (en) Method and apparatus for synchronization and scheduling of multiple data streams and real time tasks
US5563648A (en) Method for controlling execution of an audio video interactive program
US5903752A (en) Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US6246720B1 (en) Flexible software-based decoding system with decoupled decoding timing and output timing
US20050125789A1 (en) Executing processes in a multiprocessing environment
EP0422310A1 (en) Distributed mechanism for the fast scheduling of shared objects
US6877157B2 (en) Multi-tasking software architecture
WO2010067492A1 (ja) マルチプロセッサシステム及びその排他制御の調停方法
KR20040106535A (ko) 적어도 하나의 데이터 스트림, 데이터 기억 시스템의데이터 처리 방법 및 사용 방법
KR20060008896A (ko) 자원 관리 방법 및 장치
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
US20060149877A1 (en) Interrupt management for digital media processor
US20080317119A1 (en) Av Renderer Peripheral with Dual Inerrupt Lines for Staggered Interrupts
US8782648B2 (en) Information processing system and related method thereof
EP1446719A2 (en) Efficient communication method and system
US9443109B2 (en) Computing device and method of processing secure services for computing device
CN1135471C (zh) 管理进程的方法
EP0796466A4 (en) METHOD AND DEVICE FOR EMBEDDING A REAL-TIME MULTITASCULAR IN A NON-REAL-TIME OPERATING SYSTEM
US6745393B2 (en) Broadcast receiving apparatus
Butler et al. Microprocessor Control Achieves Design Flexibility for Video Production Switchers
JPH0496167A (ja) マルチプロセッサシステムの割込み方式
WO2001017147A1 (en) Multi-threaded direct memory access engine for broadcast data demultiplex operations
CN114675944A (zh) 事件处理方法、装置、智能终端及计算机可读存储介质
JPH047742A (ja) アプリケーション・プログラムの管理システム
CN114327319A (zh) 一种屏幕切换的处理方法、装置、设备和存储介质

Legal Events

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