KR19990017724A - 실시간 운영체제의 인터럽트 마스킹 방법 - Google Patents

실시간 운영체제의 인터럽트 마스킹 방법 Download PDF

Info

Publication number
KR19990017724A
KR19990017724A KR1019970040739A KR19970040739A KR19990017724A KR 19990017724 A KR19990017724 A KR 19990017724A KR 1019970040739 A KR1019970040739 A KR 1019970040739A KR 19970040739 A KR19970040739 A KR 19970040739A KR 19990017724 A KR19990017724 A KR 19990017724A
Authority
KR
South Korea
Prior art keywords
interrupt
real
operating system
time operating
message
Prior art date
Application number
KR1019970040739A
Other languages
English (en)
Other versions
KR100324264B1 (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 구자홍
Priority to KR1019970040739A priority Critical patent/KR100324264B1/ko
Publication of KR19990017724A publication Critical patent/KR19990017724A/ko
Application granted granted Critical
Publication of KR100324264B1 publication Critical patent/KR100324264B1/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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

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

Abstract

본 발명은 외부사건에 빠르고 효율적으로 대처함과 아울러 명료한 커널을 작성할 수 있는 실시간 운영체제의 인터럽트 마스킹 방법에 관한 것이다.
본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 각 인터럽트 종류에 인터럽트 메시지 큐를 하나씩 할당하는 단계와; 메시지를 인터럽트 메시지 큐에 삽입하는 단계를 포함한다.
본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 외부사건에 빠르고 효율적으로 대처함과 아울러 명료한 커널을 작성할 수 있다.

Description

실시간 운영체제의 인터럽트 마스킹 방법
본 발명은 실시간 운영체제에 관한 것으로, 특히 외부사건에 빠르고 효율적으로 대처함과 아울러 명료한 커널을 작성할 수 있는 실시간 운영체제의 인터럽트마스킹 방법에 관한 것이다.
마이크로 커널(micro kernel)을 기반으로 하는 종래의 실시간 운영체제는 인터럽트 지연 시간을 최소화하기 위하여 인터럽트 처리를 일반 테스크에게 맡긴다. 따라서, 인터럽트가 발생하면 인터럽트 처리 문맥에서 단순히 메시지 패싱(Massage Passing)을 통해 인터럽트로부터의 메시지를 기다리며 특정 메시지 큐(Massage queue)에 대하여 잠든 테스크(Sleep task)를 깨운 후에 바로 복귀하여 인터럽트 지연 시간을 최소화한다. 이에 따라, 실질적으로 인터럽트가 처리되는 시점은 인터럽트 핸들러 테스크(Interrupt handler Task)가 스케쥴링(Scheduling)되었을 때이다.
이 방법은 RTEMS라는 실시간 운영체제에서 채택하고 있다. 이 방법은 인터럽트 처리 문맥에서 인터럽트 핸들러 테스크로의 메시지 패싱 기술을 사용하고 있는데, 메시지 패싱 기술은 필수적으로 메시지를 수신하는 테스크(핸들러 테스크)의 스테이터스(Status)를 변경시켜야 하고 따라서 태스크 자료구조분만 아니라 핸드러 테스크가 잠든 메시지 큐의 슬립 큐(Sleep queue)와 레디 큐(Ready queue)도 변경시켜야 한다.
그런데 슬립 큐(Sleep queue)와 레디 큐(Ready queue)는 실시간 운영 체제의 전역 범위를 가지는 자료구조이고, 커널(Kernel) 내의 다양한 부분에서 접근하는 자료구조임으로 아토믹 처리(Atomic operation)를 수행하여 그 자료의 자료구조가 손상되는 것을 방지하고 있다.
도 1을 참조하면, 종래의 실시간 운영체제의 인터럽트 마스킹 방법은 실시간 운영체제의 커널 내에서 슬립 큐와 레디 큐등 인터럽트로부터 보호해야 할 커널의 자료구조가 나누어져 있음으로 필연적으로 인터럽트를 마스킹해야 한다. 따라서 마스킹해야 하는 코드 부분을 분산시켜야 한다. 이러한 문제로, 실시간 운영체제 소스 코드의 관리가 어려운 단점이 있다. 그리고 인터럽트를 마스킹해야 될 코드 부분이 명확치 않아 트라이 앤드 에러(Try and Error) 방식으로 코드구조를 접근하는 경우가 흔히 발생하기 때문에 한 번에 두 개 이상, 많게는 모든 인터럽트가 커널 내의 특정 부분에서 마스킹 되어야 하는 상황이 발생한다. 이는 결국, 종래의 실시간 운영체제의 인터럽트 마스킹 방법에서 외부 사건에 신속하고 효율적으로 반응하지 못하는 문제점을 초래한다.
따라서, 본 발명의 목적은 외부사건에 빠르고 효율적으로 대처함과 아울러 명료한 커널을 작성할 수 있는 실시간 운영체제의 인터럽트 마스킹 방법을 제공하는데 있다.
도1은 종래의 인터럽트 핸들러 테스크를 이용한 실시간운영체제의 인터럽트 마스킹 방법의 처리수순을 나타내는 도면.
도2는 본 발명의 실시예에 따른 실시간 운영체제의 인터럽트 마스킹 방법에서 인터럽트 메시지 큐의 구조를 나타내는 도면.
도3는 본 발명의 실시예에 따른 실시간 운영체제의 인터럽트 마스킹 방법의 처리 수순을 나타내는 도면.
상기 목적을 달성하기 위하여, 본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 각 인터럽트 종류에 인터럽트 메시지 큐를 하나씩 할당하는 단계와; 메시지를 인터럽트 메시지 큐에 삽입하는 단계를 포함한다.
본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 메시지를 인터럽트 메시지 큐에 삽입하는 단계와; 임의의 인터럽트를 마스킹하여 임의의 인터럽트 메시지 큐에 억세스하는 단계와; 메시지들을 처리하는 단계와; 사용자 모드로 복귀하도록 스케쥴링하는 단계를 포함한다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부도면을 참조한 실시예에 대한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 도2 및 도3을 참조하여 본 발명의 바람직한 실시예에 대하여 설명하기로 한다.
도3은 본 발명의 실시예에 따른 실시간 운영체제의 인터럽트 마스킹 방법에서 인터럽트 메시지 큐의 구조를 나타내는 도면이다.
도3을 참조하면, 인터럽트 메시지 큐(Interrupt message queue)는 각 인터럽트 종류당 하나씩 할당된다. 모든 인터럽트는 인터럽트 처리 문맥에서 인터럽트 핸들러 테스크를 깨우기 위하여, 인터럽트 핸들러 테스크가 메시지를 기다리며 잠든 메시지 큐에 메시지를 전달하게 된다. 각 인터럽트 처리 문맥에서는 커널의 자료구조의 일관성을 위하여, 이 메시지들을 직접 해당 테스크의 메시지 큐에 삽입하는 것이 아니라 해당 인터럽트의 인터럽트 메시지 큐에 삽입한다. 그리고 인터럽트 처리 문맥에서 바로 복귀한다. 따라서, 커널의 어느 부분에서도 슬립 큐와 레디 큐와 같은 일관성이 유지되어야 할 자료구조를 인터럽트 마스킹 없이 자유롭게 억세스할 수 있다.
또한, 인터럽트 메시지 큐를 총 인터럽트 개수만큼 설정함으로서 특정 N 번째 인터럽트가 발생했을 때 인터럽트 처리 문맥에서는 자기 자신의 인터럽트만 마스킹함으로서 커널 자료구조를 안전하게 유지할 수 있다.
특히 각 인터럽트가 접근하는 인터럽트 메시지 큐는 1개 이하로 제한한다.
도3은 본 발명의 실시예에 따른 실시간 운영체제의 인터럽트 마스킹 방법에서 인터럽트 테스크를 이용한 인터럽트 처리 메커니즘을 나타내는 도면이다.
도3을 참조하면, 인터럽트 메시지 큐에 삽입된 메시지들은 커널 모드에서 사용자 모드로 복귀가 일어날 때, 인터럽트 메시지 큐에서 꺼내져서 수신자 테스크(Receiver task)가 메시지를 기다리며 잠든 메시지 큐에 삽입된다. 이러한 과정은 수신자 테스크를 깨움으로 반드시 슬립 큐와 레디 큐등을 건드리게 되지만 슬립 큐, 레디 큐는 커널의 다른 어떤 부분에서도 건드리지 않고, 또 강제 배제점(Preemption point)이 제한되어 있음으로 커널 데이터 구조(Kernel Data Structrre)는 안전하게 유지된다.
인터럽트 메시지 큐 N을 접근할 때에는 단지 인터럽트 N만을 마스킹하여 인터럽트 메시지 큐 N이 보호되도록 하여 다른 어떤 인터럽트도 마스킹할 필요가 없다. 그 이유는 다른 종류의 인터럽트들이 서로 다른 인터럽트 메시지 큐를 접근하기 때문이다.
모든 인터럽트 메시지 큐에 저장된 메시지들을 처리한 후 커널은 사용자 모드로의 복귀에 앞서 재스케쥴링을 수행한다.
강제 배제점(Preemption point)을 커널에서 사용자 문맥으로의 복귀시점으로 제한하는 것은 전체적인 커널의 강제 배제성(Preemptibility)은 떨어뜨리지만 커널 내부에서 인터럽트에 의한 테스크간의 무분별한 문맥 교환의 수를 제한하는 부수적인 장점을 얻는다.
커널이 인터럽트 메시지 큐 N을 처리하고 있는 동안 발생하여 인터럽트 메시지 큐에 삽입된 제1 인터럽트(Interrupt 1)부터 제N-1 인터럽트(Interrupt N-1)까지의 메시지들은 다음 번의 커널 모드에서 사용자 모드로의 복귀 때 처리된다.
왜냐하면, 커널은 제1 인터럽트 메시지 큐(Interrupt message queue MAX)까지 저장된 인터럽트 메시지들을 순차적으로 처리하고 모든 인터럽트 메시지 큐가 처리된 후에는 인터럽트 메시지 큐를 처리하고 있던 중간에 들어온 인터럽트 메시지들을 더 이상 처리하지 않게 때문이다.
결과적으로, 본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 특정 인터럽트가 처리되는 시간을 대폭 줄임으로서 로스트 인터럽트(Lost Interrupt)를 줄이게 되어 외부 사건에 신속히, 그리고 정확히 대처할 수 있도록 한다.
그리고 본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 특정 인터럽트로부터 보호되어야 할 자료구조가 명확하고 이에 따른 인터럽트가 마스킹되는 시점이 명확함으로서 이 기법을 채택한 실시간 운영체제는 재생성(readability)이 뛰어나고 관리하기가 용이하다.
상술한 바와 같이, 본 발명의 실시간 운영체제의 인터럽트 마스킹 방법은 외부사건에 빠르고 효율적으로 대처함과 아울러 명료한 커널을 작성할 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여 져야만 할 것이다.

Claims (8)

  1. 각 인터럽트 종류에 인터럽트 메시지 큐를 하나씩 할당하는 단계와; 메시지를 상기 인터럽트 메시지 큐에 삽입하는 단계를 포함하는 실시간 운영체제의 인터럽트 마스킹 방법.
  2. 제1항에 있어서, 상기 인터럽트 메시지 큐를 상기 인터럽트의 수만큼 설정하는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  3. 제1항에 있어서, 임의의 N 번째 인터럽트가 발생하는 경우 인터럽트 문맥에서는 자신의 인터럽트만 마스킹하는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  4. 메시지를 인터럽트 메시지 큐에 삽입하는 단계와; 임의의 인터럽트를 마스킹하여 임의의 상기 인터럽트 메시지 큐에 억세스하는 단계와; 상기 메시지들을 처리하는 단계와; 사용자 모드로 복귀하도록 스케쥴링하는 단계를 포함하는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  5. 제4항에 있어서, 상기 메시지를 삽입하는 단계는 커널 모드에서 사용자 모드로 복귀할 때 수행되는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  6. 제4항에 있어서, 상기 임의의 인터럽트 N만을 마스킹하여 상기 인터럽트 메시지 큐 N에 억세스하는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  7. 제4항에 있어서, 강제 배제점(Preemption point)을 커널에서 사용자 문맥으로의 복귀 시점으로 제한하는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
  8. 제4항에 있어서, 현재 임의의 상기 인터럽트 메시지 큐 N을 처리하고 있는 동안 발생하여 상기 인터럽트 메시지 큐에 삽입된 제1 내지 제N-1 인터럽트까지의 메시지들은 다음 번의 커널 모드에서 사용자 모드로 전환될 때 처리되는 것을 특징으로 하는 실시간 운영체제의 인터럽트 마스킹 방법.
KR1019970040739A 1997-08-25 1997-08-25 실시간운영체제의인터럽트마스킹방법 KR100324264B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970040739A KR100324264B1 (ko) 1997-08-25 1997-08-25 실시간운영체제의인터럽트마스킹방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970040739A KR100324264B1 (ko) 1997-08-25 1997-08-25 실시간운영체제의인터럽트마스킹방법

Publications (2)

Publication Number Publication Date
KR19990017724A true KR19990017724A (ko) 1999-03-15
KR100324264B1 KR100324264B1 (ko) 2002-07-02

Family

ID=37460922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970040739A KR100324264B1 (ko) 1997-08-25 1997-08-25 실시간운영체제의인터럽트마스킹방법

Country Status (1)

Country Link
KR (1) KR100324264B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836291B2 (en) 2006-02-06 2010-11-16 Samsung Electronics Co., Ltd. Method, medium, and apparatus with interrupt handling in a reconfigurable array

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836291B2 (en) 2006-02-06 2010-11-16 Samsung Electronics Co., Ltd. Method, medium, and apparatus with interrupt handling in a reconfigurable array

Also Published As

Publication number Publication date
KR100324264B1 (ko) 2002-07-02

Similar Documents

Publication Publication Date Title
US5202988A (en) System for communicating among processors having different speeds
US6560626B1 (en) Thread interruption with minimal resource usage using an asynchronous procedure call
EP1012715B1 (en) Hardware assisted method of context switching
Gaitan et al. CPU architecture based on a hardware scheduler and independent pipeline registers
US20080178183A1 (en) Scheduling Threads In A Multi-Processor Computer
EP0717361A2 (en) System to reduce latency for real time interrupts
EP1880289B1 (en) Transparent support for operating system services
US20060277551A1 (en) Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions
JPH0535454B2 (ko)
US7043729B2 (en) Reducing interrupt latency while polling
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
US6795873B1 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
WO2005048009A2 (en) Method and system for multithreaded processing using errands
EP0614139A2 (en) External procedure call for distributed processing environment
US20240036921A1 (en) Cascading of Graph Streaming Processors
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
WO2004017196A3 (en) Timing ring mechanism
Sarolahti Real-time application interface
KR19990017724A (ko) 실시간 운영체제의 인터럽트 마스킹 방법
Leyva-del-Foyo et al. Predictable interrupt scheduling with low overhead for real-time kernels
US20030204639A1 (en) Task dispatch in priority pre-emptive real-time operating systems
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
WO1992003779A1 (en) Method of efficient communication between coprocessors
Moisuc et al. Hardware event handling in the hardware real-time operating systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090105

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee