KR100401613B1 - 범용 운영체제의 실시간 처리방법 - Google Patents

범용 운영체제의 실시간 처리방법 Download PDF

Info

Publication number
KR100401613B1
KR100401613B1 KR10-2000-0081830A KR20000081830A KR100401613B1 KR 100401613 B1 KR100401613 B1 KR 100401613B1 KR 20000081830 A KR20000081830 A KR 20000081830A KR 100401613 B1 KR100401613 B1 KR 100401613B1
Authority
KR
South Korea
Prior art keywords
task
scheduler
real
interrupt
time processing
Prior art date
Application number
KR10-2000-0081830A
Other languages
English (en)
Other versions
KR20020052528A (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 KR10-2000-0081830A priority Critical patent/KR100401613B1/ko
Publication of KR20020052528A publication Critical patent/KR20020052528A/ko
Application granted granted Critical
Publication of KR100401613B1 publication Critical patent/KR100401613B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명의 범용 운영체제의 실시간 처리방법은, 인터럽트 정의 테이블에 인터럽트 서비스 루틴을 등록하여 스케줄러를 구성하고 상기 인터럽트에 의해 요청된 프로세스의 수행을 위한 태스크의 수행시간과 상기 태스크의 구문을 상기 인터럽트 서비스 루틴에 등록하는 단계와; 상기 인터럽트 서비스 루틴에 등록된 태스크의 수행을 위한 스케줄러를 메모리 영역에 저장하고, 상기 스케줄러를 구성하는 하드웨어 인터럽트를 제외한 인터럽트의 발생을 조정하는 단계와; 상기 메모리에 저장된 스케줄러로부터 처리대상 태스크를 순차적으로 읽어 프로세서가 수행할 현재 태스크의 구문을 설정하여 해당 태스크가 수행되도록 하는 단계를 포함하여 이루어져, 범용 운영체제 환경에서 시스템 리소스를 이용하면서, 저비용으로 실시간 처리를 위한 시스템을 구축할 수 있게 된다.

Description

범용 운영체제의 실시간 처리방법{METHOD FOR REAL-TIME PROCESSING OF GENERAL PURPOSE OPERATING SYSTEM}
본 발명은 범용 운영체제의 실시간 처리방법에 관한 것으로, 보다 상세하게는 범용 운영체제에서 하드웨어 인터럽트를 이용하여 실시간 타이밍을 결정하고 시스템 자원을 사용할 수 있도록 하기 위한 범용 운영체제의 실시간 처리방법에 관한 것이다.
일반적으로 범용 운영체제는 다양한 용도에 적용 가능하도록 하기 위하여, 요청되는 각 프로세스와 태스크의 우선 순위에 의해 처리 시간을 할당하게 된다.
그런데 태스크에 따라서는 실시간 처리를 요하는 경우가 있다. 실시간 처리란 각 입출력 하드웨어의 트랜잭션(Transaction)이 발생했을 때 그 처리에 의해 얻어진 데이터 또는 처리 결과가 그 후의 처리에 도움이 되거나 영향을 미칠 수 있는정도로 신속하게 처리되는 것을 의미한다. 이러한 실시간 처리를 실시간 처리 운영체제 또는 시스템을 갖추어야 구현될 수 있다.
그런데 실시간 처리 운영체제는 특정한 환경에 적응하도록 프로그램 되기 때문에 다른 환경에는 적용하기가 용이하지 않으며, 시스템 구축 및 유지 관리에 높은 비용을 요한다.
그리고 다양한 운용환경에서 낮은 비용으로 구축할 수 있는 특징을 갖는 범용 운영체제는, 실시간 처리를 제공하지 못하는 한계가 있다.
따라서 범용 운영체제에서 실시간 처리를 수행하기 위해서는 운영체제의 커널(Kernel)이 수정된 실시간 처리용 소프트웨어를 필요로 하는 문제점이 있다. 한편, 범용 운영체제에서 인터럽트에 의한 실시간 처리를 구현할 수도 있으나, 프로세스의 수행시간이 짧을 것을 요하고 시스템 자원의 사용방법에 제한이 가해져 그 구현이 용이하지 않은 문제점이 있다.
본 발명은 상기와 같은 종래의 문제점을 해소하기 위해 창출된 것으로, 본 발명의 목적은 범용 운영체제에서 하드웨어 인터럽트를 이용하여 실시간 타이밍을 결정하고 시스템 자원을 사용할 수 있도록 한 범용 운영체제의 실시간 처리방법을 제공하는 데 있다.
도1은 본 발명에 의한 범용 운영체제의 실시간 처리방법의 순서도.
도2는 도1에 의한 실시간 처리방법이 적용된 범용 운영체제의 개략적인 블록도.
상기 목적을 달성하기 위한 본 발명의 범용 운영체제의 실시간 처리방법은, 하드웨어 인터럽트에 따라 프로세스를 할당하는 범용의 운영체제에서 하드웨어 인터럽트가 발생되면, 인터럽트 정의 테이블에 인터럽트 서비스 루틴을 등록하여 스케줄러를 구성하고 상기 인터럽트에 의해 요청된 프로세스의 수행을 위한 태스크의 처리시간과 상기 태스크의 구문을 상기 인터럽트 서비스 루틴에 등록하는 단계와; 상기 인터럽트 서비스 루틴에 등록된 태스크의 수행을 위한 스케줄러를 메모리 영역에 저장하고, 상기 스케줄러를 구성하는 하드웨어 인터럽트를 제외한 인터럽트의 발생을 조정하는 단계와; 상기 메모리에 저장된 스케줄러로부터 처리대상 태스크를 순차적으로 읽어 프로세서가 수행할 현재 태스크의 구문을 설정하여 해당 태스크가 수행되도록 하는 단계를 포함하는 것을 그 특징으로 한다.
이하, 첨부도면을 참조하여 본 발명에 따른 바람직한 실시예를 설명한다.
도1에는 본 발명의 실시예에 따른 범용 운영체제의 실시간 처리방법이 도시되어 있고, 도2에는 도1의 방법이 적용되는 범용 운영체제의 개략적인 블록이 도시되어 있다.
도2에 도시된 범용 운용체제는 각종 데이터를 처리할 수 있는 x86 계열의 프로세서와, 상기 프로세서에서 처리되는 데이터 또는 처리 결과를 일시적으로 보유하기 위한 스택(Stack) 형식의 메모리와, 하드웨어 인터럽트를 발하여 상기 프로세서로 프로세스 할당을 요청하는 하드웨어 보드 등을 포함하여 이루어진다.
이러한 범용 운영체제에서 실시간 처리를 수행하기 위해서는, 실시간 처리에 적정하도록 각 기능부간의 조정이 이루어져야 한다. 그래서 본 발명은 각 입출력 하드웨어에서 전달될 수 있는 하드웨어 인터럽트 번호에 해당하는 인터럽트 서비스 루틴(Interrupt Service Routine, 또는 ISR)을 인터럽트 정의 테이블(InterruptDescription Table, 또는 IDT)에 등록한다(ST21).
상기 인터럽트 정의 테이블은 하드웨어 인터럽트 발생시 해당 인터럽트에 의해 호출될 인터럽트 서비스 루틴을 지정하기 위한 것이다.
그리고 각 인터럽트 서비스 루틴은 도2의 태스크군과 같이 다수의 태스크(태스크1, 태스크2, .., 태스크N)를 포함하는 것이 보통이므로, 상기 등록된 각 인터럽트 서비스 루틴에 대해 처리대상 태스크의 처리시간과 상기 태스크의 구문을 실시간 스케줄러에 등록한다(ST22).
상기에서 태스크의 처리시간은 각 태스크의 특성에 따라 적정한 시간으로 설정하게 되는데, 최대 한계 처리시간을 정하여 설정하는 것이 바람직하다. 그리고 상기 태스크 구문은 입출력 하드웨어와 프로세서간에 교환되는 파라미터의 구성에 대한 체계를 지시하는 것으로, 이러한 구문에 적합하도록 파라미터를 구성하여야만 프로세서가 해당 데이터를 해석할 수 있다.
이어서 상기 등록된 태스크의 수행 순서를 지시하는 스케줄러를 구성하기 위한 메모리 영역을 확보하게 된다(ST23).
상기에서 스케줄러는 각 태스크의 수행 순서를 지시하고 있으므로 스택 형식의 메모리를 사용하는 것이 바람직하다. 즉, x86 계열 등의 프로세서는 스택 또는 힙(Heap) 형식의 메모리를 운용할 수 있는데, 상기 스택 형식의 메모리는 데이터를 순차적으로 저장되고 순차적으로 읽게 되므로 스케줄러를 저장하기에 적합한 것이다.
한편, 실시간 처리가 요구되는 인터럽트 서비스 루틴을 수행하려면 현재 수행중이거나 스택 포인터를 할당받은 프로세스가 완료되기 전에 상기 인터럽트 서비스 루틴을 수행하여야 하므로, 실시간 처리를 요하지 않는 프로세스의 수행을 유예시키는 조치가 필요하다.
그래서 상기 단계 ST23에서 스케줄러를 위한 스택영역이 확보되면, 상기 확보된 스택 영역에 각 레지스터의 현재 상태를 기본 스택에 임시 저장하게 된다(ST24).
상기 단계 ST24에서 스택영역이 확보되면, 프로세서는 확보된 스택 영역을 스케줄러의 각 태스크에 할당한다(ST25).
상기 단계 ST25에서 스택영역이 할당되면, 실시간 처리의 수행을 지연시킬 가능성이 있는 하드웨어 인터럽트의 발생을 방지하게 된다(ST26).
이처럼 하드웨어 인터럽트를 조정함으로써, 범용 운영체제에서 다른 인터럽트에 의한 실시간 처리 방해 상태를 방지할 수 있게 된다.
상기 단계 ST26에서 하드웨어 인터럽트의 조정이 이루어지면, 현재 상태의 스택 포인터와 태스크 구문을 상기 기본 스택의 각 레지스터에 저장하게 된다(ST27).
상기 레지스터에 저장된 데이터는 실시간 처리 스케줄러의 수행이 완료된 후에 스택 영역을 실시간 처리를 위해 확보되기 직전의 상태로 복원시킬 수 있도록 한다.
상기 단계 ST27이 수행된 후, 스케줄러내 각 태스크들이 그 처리 순서에 따라 순차적으로 수행되어진다. 즉, 프로세서는 현재 스택 포인터에 의해 지시되는태스크의 구문을 설정하여 해당 태스크를 수행하게 된다(ST28).
그래서 구문 설정된 태스크의 수행이 완료되면 실시간 처리를 위해 호출된 인터럽트 서비스 루틴을 종료하게 된다(ST29).
상기에서 인터럽트 서비스 루틴의 종료시, 기본 스택으로부터 각 레지스터의 상태와 구문 및 스택 포인터를 읽어들여 상기 스케줄러에 할당되었던 스택영역을 실시간 처리가 수행되기 직전의 상태로 복구시키게 된다(ST30).
그리고 하드웨어 인터럽트를 다시 원상태로 재조정하여 다른 하드웨어 인터럽트의 입력이 가능하게 되며, 전체적으로 범용 운영체제의 정상적인 기능이 복원된다.
이상 설명한 본 발명의 범용 운영체제의 실시간 처리방법에 따르면, 저렴한 범용 운영체제 환경에서 제공되는 시스템 리소스를 이용할 수 있으면서 실시간 처리를 수행할 수 있게 되어 고비용이 요구되는 실시간 처리 시스템을 대체할 수 있는 효과를 갖는다.
그리고 범용의 운영체제 환경에서 프로그램의 개선으로 실시간 처리를 가능케 하므로, 실시간 처리의 점유율이 높지 않은 운용환경에서 범용성과 처리시간의 즉시성을 동시에 구현하는 시스템을 구축하는 효과가 있다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 예들 들어, 상기 실시예에서는 x86 계열의프로세서가 사용되었으나, 이외에도 인터럽트 신호를 처리 할 수 있는 다른 형식의 프로세서에도 간단한 변형만으로 적용 가능하다.
따라서 상기 기재 내용은 하기 특허청구범위를 한정하는 것이 아니다.

Claims (5)

  1. (a) 범용의 운영체제에서 있어서,
    하드웨어의 인터럽트 요구가 발생되면, 인터럽트 정의 테이블에 인터럽트 서비스 루틴을 등록하여 스케줄러를 구성하고 상기 하드웨어의 인터럽트에 의해 요청된 프로세스의 실시간 수행을 위한 태스크의 처리시간과 상기 태스크의 구문을 상기 인터럽트 서비스 루틴에 등록하는 단계와;
    (b) 상기 인터럽트 서비스 루틴에 등록된 태스크의 수행을 위한 스케줄러를 메모리 영역에 저장하고, 상기 스케줄러를 구성하는 하드웨어 인터럽트를 제외한 인터럽트의 발생을 조정하는 단계와;
    (c) 상기 메모리에 저장된 스케줄러로부터 처리대상 태스크를 순차적으로 읽어 프로세서가 수행할 현재 태스크의 구문을 설정하여 해당 태스크가 실시간적으로 수행되도록 하는 단계를 포함하는 것을 특징으로 하는 범용 운영체제의 실시간 처리방법.
  2. 제 1항에 있어서, 상기 단계 (a)에서,
    상기 인터럽트 정의 테이블에서 상기 하드웨어 인터럽트의 번호에 의해 호출될 인터럽트 서비스 루틴을 실시간 처리용 인터럽트 서비스 루틴으로 대체하여 등록함으로써 스케줄러를 구성하는 것을 특징으로 하는 범용 운영체제의 실시간 처리방법.
  3. 제 1항에 있어서, 상기 단계 (b)는,
    상기 단계 (a)에 의해 등록된 태스크의 수행 순서를 지시하는 스케줄러의 저장을 위한 메모리 영역을 확보하는 단계와;
    상기 스케줄러의 저장을 위한 메모리 영역이 확보되면, 상기 확보된 메모리 영역에 각 레지스터의 현재 상태를 특정의 메모리에 저장하는 단계와;
    프로세서가 상기 스케줄러의 저장을 위해 확보된 메모리 영역을 스케줄러의 각 태스크에 할당하는 단계와;
    상기 스케줄러에 메모리 영역이 할당되면, 실시간 처리와 관련되지 않은 하드웨어 인터럽트의 입력을 차단시켜 실시간 처리의 중단을 방지하는 단계를 포함하여 이루어지는 것을 특징으로 하는 범용 운영체제의 실시간 처리방법.
  4. 제 3항에 있어서,
    데이터의 저장 및 출력을 순차적으로 수행하기 위해 스택 형식의 메모리를 적용하는 것을 특징으로 하는 범용 운영체제의 실시간 처리방법.
  5. 제 1항에 있어서, 상기 단계 (c)는,
    상기 단계 (b)에 의해 하드웨어 인터럽트의 조정이 이루어지면, 현재 상태의 스택 포인터와 태스크 구문을 상기 스케줄러를 위해 할당된 메모리 영역 이외의 영역에 저장하는 단계와;
    프로세서가 상기 스케줄러내 각 태스크들에 대해 태스크의 구문을 설정하여 해당 태스크를 순차적으로 수행하는 단계와;
    상기 구문 설정된 태스크의 수행이 완료되면 실시간 처리를 위해 호출된 인터럽트 서비스 루틴을 종료하고, 상기 스케줄러에 할당되었던 메모리 영역을 상기 단계에서 상기 스택 포인터와 태스크 구문이 저장된 메모리 영역의 값으로 대체하여 해당 메모리 영역을 실시간 처리가 수행되기 직전의 상태로 복구시키는 단계를 포함하여 이루어지는 것을 특징으로 하는 범용 운영체제의 실시간 처리방법.
KR10-2000-0081830A 2000-12-26 2000-12-26 범용 운영체제의 실시간 처리방법 KR100401613B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0081830A KR100401613B1 (ko) 2000-12-26 2000-12-26 범용 운영체제의 실시간 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0081830A KR100401613B1 (ko) 2000-12-26 2000-12-26 범용 운영체제의 실시간 처리방법

Publications (2)

Publication Number Publication Date
KR20020052528A KR20020052528A (ko) 2002-07-04
KR100401613B1 true KR100401613B1 (ko) 2003-10-11

Family

ID=27685835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0081830A KR100401613B1 (ko) 2000-12-26 2000-12-26 범용 운영체제의 실시간 처리방법

Country Status (1)

Country Link
KR (1) KR100401613B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791296B1 (ko) * 2006-03-03 2008-01-04 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03174632A (ja) * 1989-09-01 1991-07-29 Litton Syst Inc リアルタイムでコンピュータシステムを動作させる方法及び装置
KR970016949A (ko) * 1995-09-27 1997-04-28 김광호 쓰레드 예외처리 시스템 및 방법
US5721922A (en) * 1994-10-13 1998-02-24 Intel Corporation Embedding a real-time multi-tasking kernel in a non-real-time operating system
KR980010769A (ko) * 1996-07-08 1998-04-30 기따오까 다까시 리얼 타임 제어 시스템
KR20010055463A (ko) * 1999-12-10 2001-07-04 서평원 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03174632A (ja) * 1989-09-01 1991-07-29 Litton Syst Inc リアルタイムでコンピュータシステムを動作させる方法及び装置
US5721922A (en) * 1994-10-13 1998-02-24 Intel Corporation Embedding a real-time multi-tasking kernel in a non-real-time operating system
KR970016949A (ko) * 1995-09-27 1997-04-28 김광호 쓰레드 예외처리 시스템 및 방법
KR980010769A (ko) * 1996-07-08 1998-04-30 기따오까 다까시 리얼 타임 제어 시스템
KR20010055463A (ko) * 1999-12-10 2001-07-04 서평원 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법

Also Published As

Publication number Publication date
KR20020052528A (ko) 2002-07-04

Similar Documents

Publication Publication Date Title
US5386566A (en) Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
US7386646B2 (en) System and method for interrupt distribution in a multithread processor
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US6675191B1 (en) Method of starting execution of threads simultaneously at a plurality of processors and device therefor
US4318174A (en) Multi-processor system employing job-swapping between different priority processors
US7996843B2 (en) Symmetric multi-processor system
US20170076421A1 (en) Preemptive context switching of processes on an accelerated processing device (apd) based on time quanta
US7103631B1 (en) Symmetric multi-processor system
CN109376104B (zh) 一种芯片及基于其的数据处理方法和装置
EP0614139A2 (en) External procedure call for distributed processing environment
US6832266B1 (en) Simplified microkernel application programming interface
KR100495240B1 (ko) 프로세서 시스템
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
KR100401613B1 (ko) 범용 운영체제의 실시간 처리방법
US7516311B2 (en) Deterministic microcontroller context arrangement
US7103528B2 (en) Emulated atomic instruction sequences in a multiprocessor system
WO2022161013A1 (zh) 处理器装置及其指令执行方法、计算设备
US6865579B1 (en) Simplified thread control block design
CN114371920A (zh) 一种基于图形处理器加速优化的网络功能虚拟化系统
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
US20210279097A1 (en) Interrupt handling method, computer system, and non-transitory storage medium
CN113439260A (zh) 针对低时延存储设备的i/o完成轮询
KR100401560B1 (ko) 운영체제의 커널 스택 동적 할당 방법
US11385927B2 (en) Interrupt servicing in userspace

Legal Events

Date Code Title Description
A201 Request for examination
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: 20070928

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee