KR100321408B1 - 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 - Google Patents
처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 Download PDFInfo
- Publication number
- KR100321408B1 KR100321408B1 KR1019980062916A KR19980062916A KR100321408B1 KR 100321408 B1 KR100321408 B1 KR 100321408B1 KR 1019980062916 A KR1019980062916 A KR 1019980062916A KR 19980062916 A KR19980062916 A KR 19980062916A KR 100321408 B1 KR100321408 B1 KR 100321408B1
- Authority
- KR
- South Korea
- Prior art keywords
- task
- block
- processing
- execution
- time
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 98
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 11
- 238000002844 melting Methods 0.000 claims description 2
- 230000008018 melting Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 4
- 108010053911 PRS-110 Proteins 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012508 change request Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 실시간 다중처리 시스템에서 외부시스템으로부터 실행명령을 수신한 응용타스크 블록이 GSM타스크 블록으로 자신의 처리기한에 관한 시간정보를 송신하는 타스크 처리기한정보송신단계와, 상기 타스크 처리기한정보 송신단계후에 GSM 타스크 블록이 정보를 제공한 응용타스크 블록의 실행우선순위를 처리기한 정보에 따라 결정하고 그 처리결과를 GSS타스크 블록으로 송신하는 실행우선순위 송신단계와, 상기 실행우선순위 송신단계후에 GSS타스크블록이 GSM타스크블록으로 부터 송신된 타스크 실행우선순위정보에 따라 PRS타스크 블록의 RTQ에 저장된 용용타스크들의 실행순서를 재조정하는 실행순서 조정단계와, 상기 실행순서 조정단계 후에 PRS 타스크블록이 GSS블록에 의해 조정된 응용타스크의 실행순서에 따라 응용타스크를 실행하는 응용타스크 실행단계로 이루어진 것을 특징으로 하는 처리 기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템 및 그 처리방법을 제공한다.
상기와 같은 본 발명은 실시간 시스템을 현실 세계의 데이터 처리 기한에 대한 요구를 그대로 Task의 설계에 반영하여 종전 시스템보다 효율적인 프로세서 자원 분배를 가능하게 한다.
Description
본 발명은 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템 및 그 처리방법에 관한 것으로, 상세하게는 실시간으로 데이터를 처리해야 하며 하나의 태스크(Task)가 여러 데이터 유형을 처리해야 하는 복합한 다중 처리(Multi-tasking)구조의 시스템에 적용하기 위한 데이터 처리 순서에 의한 실시간 다중처리 시스템 및 그 처리방법에 관한 것이다.
일반적으로 실시간 다중처리 시스템의 예로는 수신된 각종 제어 신호 및 유료 정보 처리 및 여러 부속품들에 대한 제어 신호를 처리해야 하면서도 프로세서의 수는 제한된 이동전화 단말기 등이다.
도 1 에는 종래의 실시간 다중 처리 시스템의 전형적인 구성도가 도시된다.
종래의 실시간 다중 처리 시스템은 도 1에 도시된 바와같이 크게 실제 데이터 처리하는 프로그램인 Task들을 관리하고 Task의 시스템 요구에 대응하는 시스템 코어(100)와 실제 데이터를 처리하는 Task부(200)로 구성된다.
상기 시스템 코어(100)는 실행할 Task를 선택하여 실행시키는 PRS(Process Rescheduling Service)(110)와, 기타 시스템 서비스(120)와, Task에 관한 정보를 보관하고 있는 TCB(Task Control Block) List(130)로 이루어진다.
상기 PRS(110)는 실행중인 Task의 TID를 저장하는 ETID(Executing Task ID)(111)와, 우선 순위에 따라 Task 들의 TID와 Status 들을 저장하는 TQ1(1stPriority Task Queue)(112), TQ2(2nd Priority Task Queue)(113), TQ3(3rd Priority Task Queue)(114)으로 이루어진다.
상기 Task부(200)는 여러 개의 Task(210)와 각각에 구비되는 MQ(Message Queue)(220)로 이루어진다.
상기 시스템 코어(100)는 실제 데이터 처리하는 프로그램인 Task들을 관리하고 Task의 시스템 요구에 대응한다.
상기 PRS(110)는 실행할 Task를 선택하여 실행시키는 서비스(시스템 콜)이다.
상기 ETID(111)는 현재 실행중인 Task의 TID를 저장해 두는 기억장소이다. TID는 Task를 구분하기 위한 Task 마다 유일하게 할당되는 수이다.
상기 TQ1(112)은 Task들 중에서 가장 우선 순위가 높은 Task 들의 TID와 Status 들을 저장해 두는 Queue 형태의 기억장소이다. Status는 해당 Task가 Ready 상태인지 Suspended 상태인지를 나타낸다. Suspended 상태는 해당 Task가 특정 메시지를 대기하고 있는 상태이며, Ready 상태는 어떠한 메시지도 대기하지 않고 있으며 바로 실행될 수 있는 상태이다.
가장 최근에 실행된 Task의 TID 및 Status가 Queue의 제일 마지막 노드에 저장된다.
상기 TQ2(113)는 Task들 중에서 둘째로 우선 순위 높은 Task들의 TID와 Status를 저장해 두는 Queue이다.
상기 TQ3(114)는 세째로 우선 순위의 Queue이며, 이후에도 TQ4, TQ5... 등여러 Queue를 가질 수 있다.
상기 기타 시스템 서비스(120)는 시스템 코어 내에 PRS(110)외에 Task간의 메시지의 전달, 인터럽트의 초기 처리, Task의 생성, 소멸, Task의 우선 순위 변경 등 시스템에 따라 Task를 관리하는데 필요한 여러 가지 서비스가 존재한다.
상기 TCB List(130)는 Task에 관한 정보를 보관하고 있는 TCB의 목록이다. 모든 Task에 대한 TCB가 저장되어 있다. TCB에는 도 2에 도시된 바와 같이 보통 TID, 프로세서의 레지스터들의 상태 등을 저장하는 영역(PS: Processor Status) 그리고 자신이 원래 속해있는 Queue 번호를 저장하는 Priority 영역 등이 있다.
상기 Task(210)은 실제 데이터를 처리하는 프로그램 실행 단위이다.
각 Task(210)마다 하나의 MQ(220)를 갖는데, MQ는 해당 Task에게 들어오는 메시지를 보관하는 Queue이다.
외부환경(300)은 이 시스템에 대하여 인터럽트 또는 데이터를 주고 받는 외부 하드웨어 또는 소프트웨어를 지칭한다. 인터럽트에는 Clock Tick 인터럽트를 포함 외부 입력을 알려주는 인터럽트 등이 있다.
상기와 같이 구성되는 종래의 실시간 다중 처리 시스템은 다음과 같이 동작한다.
PRS(110)가 기동하게 되면 PRS(110)는 TQ1(112)의 가장 앞에 있는 노드부터 시작하여 Status 가 Ready인 Task를 찾는다. TQ1(112)에 Status가 Ready인 Task가 없으면, TQ2(113)를 찾고, TQ2(113)에도 없으면, 마지막으로 TQ3(114)을 찾는다. TQ3(114)에도 없으면 PRS(110)는 임의 Idle Task, 즉 아무 일도 하지 않는 Task를기동한다. 결국, TQ1(112)에 속하는 Task이냐, TQ2(113)에 속하는 Task이냐 TQ3(114)에 속하는 Task이냐에 따라 Task의 우선 순위가 결정된다. 기동할 Task는 Task Queue 상의 노드 위치를 변경하는데 TCB의 Priority가 가리키는 Task Queue의 맨 끝으로 이동한다. 그리고 Task Queue간의 이동은 Task가 전혀 실행되지 않고 있는 시간을 점검해 일정 시간동안 처리가 되지 않으면 하위 우선 순위 Queue로부터 높은 우선 순위의 Queue로 이동하도록 해준다. 이것은 수많은 실시간 다중 처리 시스템의 한 예이며, 이 밖에도 Task의 우선 순위를 결정하는 데는 여러 가지 방법이 있다.
기타 시스템 서비스(120)는 각자 할 일을 처리하고서 일반적으로 PRS(110)를 시작하여 Task의 우선 순위 및 다음에 실행할 Task를 재 선정한다. 실시간 다중 처리 시스템에서는 일반적으로 일정 시간마다 인터럽트가 발생하는 데 이 때에 PRS를 불러줌으로 해서 하나의 Task가 계속 프로세서를 장악하는 경우를 방지한다.
각 Task(200)들은 서로 메시지를 전달하거나 대기할 때 또 Task를 생성, 소멸하기 위해서 자기가 속한 우선 순위를 변경하기 위해서 시스템 서비스를 호출한다.
상술한 바와 같이 종래 기술로도 Task가 스스로 우선 순위 변경하거나 Task의 최종 실행 시각에 대한 정보에 의해 우선 순위가 변경되기도 하는 등 실시간 데이터 처리를 위해 여러 가지 기법이 제안되었다. 그러나, 현실 세계에서 실시간 시스템은 각 데이터에 대한 처리 기한이 결정되어 있는데 반해 이러한 처리 기한이 지켜지도록 자원의 분배를 관리하는 메커니즘은 제공하지 않고 있으며, 각 Task를적당히 잘 설계하여 데이터의 처리 기한이 지켜지도록 하는 수 밖에 없다. 이를 테면, A라는 데이터는 입력 후 1초 이내 처리해야 하고 B라는 데이터는 입력 후 10초 이내에 처리해야 한다면 종래의 실시간 다중처리 시스템은 B라는 데이터가 입력되고 9.9초만에 A데이터가 입력된다면 A데이터를 처리하는 Task보다 B데이터를 처리하는 Task에 더 높은 우선 순위 부여하도록 Task를 설계하기가 어려운 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위해 안출된 것으로, 실시간 시스템을 현실 세계의 데이터 처리 기한에 대한 요구를 그대로 Task의 설계에 반영하여 종전 시스템보다 효율적인 프로세서 자원 분배를 가능하게 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템 및 그 처리방법을 제공하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명은 외부 시스템의 요청에 의해 응용타스크를 실행하는 실시간 다중처리 시스템에서, 상기 외부 시스템으로부터 타스크 요청시 처리기한에 따른 시간정보를 해당 처리모듈로 제공하고 그 결정된 타스크 실행 우선순위에 따라 타스크의 실행을 제어하는 시스템 코어모듈부와, 상기 시스템 코어 모듈부의 요청에 의해 각 타스크의 처리기한에 따른 시간정보를 분석하여 타스크 실행우선순위에 따른 GS변경신호를 생성하고 GS에 의해 실제 타스크 데이터를 처리하는 타스크프로세스모듈부와, 상기 타스크프로세스모듈부의 검색요청에 의해 처리기한에 따라 기록된 GS자료목록을 저장하고 있는 GS리스트모듈부를 포함하는처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템을 제공한다.
본 발명의 다른 특징은 실시간 다중처리 시스템에서 외부시스템으로부터 다수의 응용타스크블록중 해당 타스크블록으로 전송되는 실행명령을 수신하는 타스크 실행명령수신단계와, 상기 타스크 실행명령 수신단계후에 외부시스템으로부터 실행명령을 수신한 응용타스크 블록이 GSM타스크 블록으로 자신의 처리기한에 관한 시간정보를 송신하는 타스크 처리기한정보송신단계와, 상기 타스크 처리기한정보 송신단계후에 GSM 타스크 블록이 정보를 제공한 응용타스크 블록의 실행우선순위를 처리기한 정보에 따라 결정하고 그 처리결과를 GSS타스크 블록으로 송신하는 실행우선순위 송신단계와, 상기 실행우선순위 송신단계후에 GSS타스크블록이 GSM타스크블록으로부터 송신된 타스크 실행우선순위정보에 따라 PRS타스크 블록의 RTQ에 저장된 용용타스크들의 실행순서를 재조정하는 실행순서 조정단계와, 상기 실행순서 조정단계후에 PRS 타스크블록이 GSS블록에 의해 조정된 응용타스크의 실행순서에 따라 응용타스크를 실행하는 응용타스크 실행단계로 이루어진 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템의 처리방법을 제공한다.
도 1 은 종래의 실시간 다중 처리 시스템의 전형적인 구성도,
도 2 는 종래의 TCB 및 Task Queue의 구조도,
도 3 은 본 발명의 일실시예에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템의 구성도,
도 4 는 본 발명의 TCB 및 Task Queue의 구조도,
도 5는 본 발명의 플로우차트.
* 도면의 주요 부분에 대한 부호의 설명 *
400 : 시스템 코어모듈부 410 : PRS블록
411 : ETID 및 ETGS 메모리 412 : RTQ
413 : STQ 420 : IHS블록
430 : GSS블록 440 : 기타 시스템 서비스
450 : TCB List 500 : Task 프로세스모듈부
510 : GSM 타스크블록 520 : IS Task
530 : Idle Task 540 : App Task
550 : MQ 600 : GS List모듈부
이하, 첨부한 도면을 참조로 하여 본 발명을 상세히 설명한다.
도 3 에는 본 발명의 일실시예에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템의 구성도가 도시된다.
본 발명의 실시간 다중 처리 시스템은 도 3에 도시된 바와같이 외부 시스템으로부터 타스크 요청시 처리기한에 따른 시간정보를 해당 모듈로 제공하고 그 결정된 타스크 실행우선순위에 따라 타스크의 실행을 제어하는 시스템 코어모듈부(400)와, 이 시스템코어모듈부(400)의 기능제어신호에 따라 실제 데이터를 처리하는 Task프로세스모듈부(500)와, 상기 Task프로세스모듈부(500)의 검색요청에 의해 처리기한에 따라 기록된 GS자료목록을 저장하고 있는 GS(Global Sequence) Lsit모듈부(600)로 구성된다.
그리고, 상기 시스템 코어모듈부(400)는 상기 Task프로세스모듈부(400)로부터 입력된 실행우선순위에 따라 실행할 Task를 선택하여 실행시키는 PRS블록(410)과, 상기 외부 시스템으로부터 입력된 인터럽트를 처리하기 위한 IHS(Interrupt Handing Sevice)블록(420)과, 상기 Task프로세스모듈부(400)로부터 입력된 특정 Task의 GS값을 변경하여 타스크의 실행우선순위를 재조정하는 GSS(Global Sequence Service)블록(430)과, 상기 Task에 관한 정보를 저장하는 TCB List블록(450)으로 이루어진다.
여기서, 상기 시스템 코어모듈(400)에는 타스크의 실행에 필요한 작업을 지원하는 기타 시스템 서비스부(440)도 포함된다.
그리고, 상기 PRS블록(410)은 현재 실행중인 응용 타스크의 식별정보를 저장하는 ETID메모리(411)와, 상기 각 응용 타스크들의 처리기한에 따른 우선순위정보를 저장하는 ETGS메모리(411-1)와, 상기 실행 대기중인 응용타스크들의 식별정보와 상기 GSS블록(430)에서 제공된 응용 타스크들의 우선순위 정보를 저장하는 RTQ메모리(412)와, 상기 외부 시스템(300)으로부터 특정 메시지가 수신될 경우 실행되는 응용타스크들의 식별정보와 우선순위정보를 저장하는 STQ메모리(413)로 이루어진다.
상기 Task프로세스모듈부(500)는 요청된 타스크의 처리기한에 따른 시간정보를 분석하고 타스크의 실행우선순위를 결정하여 GS변경신호를 생성하는 GSM Task블록(Global Sequence Manager Task)(510)과, 상기 지정된 Task로 메시지를 보내는 IS Task(Interrupt Service Task)(520)와, 상기 타스크의 실행이 없을 경우 아이들타스크를 실행하는 Idle Task(530)와, 상기 타스크의 실제적인 처리를 담당하는 App Task(540)와, 상기 입력된 타스크중 미처리된 메시지를 저장하는 MQ(550)로 이루어진다.
여기서, 상기 시스템 코어모듈부(400)는 태스크간의 이행 및 메시지 전달, 태스크의 생성과 소멸, 그리고 인터럽트의 초기 처리 등을 해주는 프로그램 또는 서비스 및 이에 필요한 자료구조의 집합체이다.
상기 PRS블록(410)은 Task 실행 순서를 재배열하여 다음에 처리할 Task를 실행시키는 서비스이다.
상기 ETID/ETGS(411, 411-1)는 현재 실행중인 Task의 TID 및 GS 를 저장해 두는 기억장소이다. TID 는 Task를 구분하기 위해 Task마다 유일하게 할당되는 수이다.
상기 RTQ(412)는 여러 Task의 TID와 GS 를 저장해 두는 Queue이다. 이 Queue에는 아무런 메시지도 대기하고 있지 않으며 따라서 당장이라도 실행시킬 수 있는 Task들만 저장되면 그 순서는 GS의 값에 따라 결정된다. GS는 GSM Task에서 각 Task에 대해 부여해 주며, 특정한 GSmin에서 GSmax사이의 값을 갖게 된다.GSwnd는 (GSmax_GSmin)/2의 값이며 GS간의 크기 비교는 │GS_a-GS_b│<GSwnd일 때는 GS가 작을 때 더 우선 순위 높다고 하고, │GS_a-GS_b│>GSwnd이면 GS가 클 때 우선 순위가 높다고 한다. RTQ(412)는 GS는 우선 순위가 높은 항목부터 낮은 항목으로 정렬되어 있다. GS는 데이터 처리순서를 암시한다. 특수 목적의 Task인 IS Task(520), GSM Task(510)와 Idle Task(530)는 따로 GS가 부여되어 있지 않고 IS Task(520)가 최우선순위, GSM Task(510)가 다음 우선 순위를 갖고 항상 GS를 가지고 있는 Task보다 우선 순위가 높은 것으로 간주한다. Idle Task(530)는 항상 일반 Task보다 우선 순위가 낮다고 본다.
상기 IHS(420)는 외부 환경으로부터의 인터럽트를 처리해주는 서비스이다.
상기 GSS블록(430)은 GSM 타스크블록(510)의 GS변경요청을 받아 RTQ(412)내의 특정 Task의 GS값을 변경하고 그에 따라 RTQ(412)의 실행 우선순위를 재조정하는 기능을 실행한다.
기타 시스템 서비스(440)는 종래 시스템과 마찬가지로 메시지 전달, Task생성 등 여러 시스템 서비스가 있을 수 있다.
상기 TCB List(450)는 모든 Task에 대한 정보를 보관하는 database로 도 4에 도시된 바와 같이 TID 및 프로세서 레지스터 등의 값을 저장하는 영역인 PS등 여러 정보들이 보관되어 있다.
상기 Task(500)는 시스템 코어(400)에 의해 관리되는 프로그램 및 자료구조 단위이다.
상기 GSM Task(510)는 App Task(540)의 메시지를 받아 해당 App Task(540)의GS를 부여하고 변경해주는 Task이다.
상기 GSM Task(510)가 관리하는 GS List모듈부(600)는 GS, 처리기한, TID 정보를 가진 항목들로 구성된 환형 Linked List이다.
상기 IS Task(520)는 IHS블록(420)의 요구에 의해 실행되며 인터럽트 신호에 따라 미리 지정된 Task로 메시지를 보내는 역할을 한다. 가장 우선 순위가 높도록 가상적으로 GS값이 부여된 것으로 간주한다.
상기 Idle Task(530)는 아무 일도 하지 않는 Task이며 가장 낮은 우선 순위의 GS값이 부여된 것으로 간주한다.
상기 App Task(540)는 실제로 데이터 처리를 담당하는 Task이다.
상기 MQ(550)는 Idle Task(530) 및 IS Task(520)를 제외한 모든 Task가 하나씩 가지고 있으며, 해당 Task로 전달되었으나 아직 처리되지 않은 메시지를 저장해두고 있는 FIFO Queue이다.
다음에는 본 발명 시스템의 처리방법을 설명한다.
본 발명은 도 5에 도시된 바와같이 먼저, 초기상태(S1)에서 타스크 실행명령 수신단계(S2)로 진행하여 외부시스템으로부터 다수의 응용타스크블록중 해당 타스크블록으로 전송되는 실행명령을 수신한다.
그리고, 상기 타스크 실행명령 수신단계(S2)후에 타스크 처리기한정보송신단계(S3)로 진행하여 외부시스템으로부터 실행명령을 수신한 응용타스크 블록이 GSM타스크 블록으로 자신의 처리기한에 관한 시간정보를 송신한다.
즉, 상기 시스템코어블록부(400)의 PRS(410)를 포함하여 다수의 타스크블록들은 다른 시스템 코어 서비스 또는 Task의 요청이 오면 GSM 타스크블록(510)으로 자신의 처리기한이 포함된 시간정보를 전송한다. 예컨대, 만약 상기 PRS블록(410)으로 외부시스템으로부터 타스크요청이 있을 경우 이 PRS블록(410)은 시스템 코어 호출 이전의 프로세서의 상태(즉, 모든 레지스터의 값 등)를 ETID가 가리키는 TCB의 PS영역에 기록한다. 그리고, 상기 기록단계후에 내부의 RTQ(412)의 가장 앞 노드의 GS와 ETGS의 값을 비교하여 ETGS의 우선순위가 낮다면 요청한 타스크의 값을 ETID 및 ETGS(411)에 저장한다. 그리고, 상기 RTQ(412)의 맨 앞 노드는 삭제한다. 이때, 만일, 처음 ETGS의 값이 크다면 앞에서 언급한 작업은 행하지 않는다. 여기서, 만약 ETGS의 우선순위가 낮다면 ETID가 지정하는 TCB LIST(450)의 PS영역에 저장된 값을 프로세서 상태로 복원하고 프로세서는 ETID가 지정하는 Task를 재개할 것이다.
여기서, 다른 시스템 서비스 중 메시지의 전달과 관련된 시스템 서비스에 의해 RTQ(412)와 STQ(413)의 항목이 서로 바뀔 수 있는데 이 때, Queue에 추가되는 항목은 항상 GS 우선 순위에 의해 정렬될 수 있도록 적합한 위치를 찾아서 삽입되어야 한다.
또한, 상기 과정중에 외부 시스템으로부터 IHS블록(420)으로 인터럽트신호가 입력되면 상기 IHS블록(420)은 IS Task 블록(520)의 TCB의 인터럽트 처리 관련 정보를 변경한 후 만약 IS Task(520)가 STQ(413)의 첫째 노드에 있으면 이 노드를 RTQ(412)의 첫째 노드에 옮긴다. IS Task(520)는 우선순위가 가장 높은 것으로 간주하므로 RTQ(412) 또는 STQ(413)의 첫째 항목에 위치한다.
따라서, 상기와 같이 외부시스템으로부터 다수의 응용타스크블록중 어느하나로 실행명령이 수신되면 각 블록들은 자신의 처리기한이 포함된 시간정보를 GSM 타스크블록(510)으로 전송한다.
또한, 상기 타스크 처리기한정보 송신단계(S3)후에 실행우선순위 송신단계(S4)로 진행하여 GSM타스크 블록이 정보를 제공한 응용타스크 블록의 실행우선순위를 처리기한 정보에 따라 결정하고 그 처리결과를 GSS타스크 블록으로 송신한다.
그리고, 상기 실행우선순위 송신단계(S4)후에 실행순서 조정단계(S5)로 진행하여 GSS타스크블록이 GSM타스크블록으로부터 송신된 타스크 실행우선순위정보에 따라 PRS타스크 블록의 RTQ에 저장된 용용타스크들의 실행순서를 재조정한다.
즉, 상기 GSM Task블록(510)은 메시지를 대기하고(메시지가 수신되면)그 메시지를 처리하고 다시 메시지를 대기하는 루프 형태로 구현된다. 상기 GSM Task블록(510)이 대기하는 메시지에는 GS 부여 요청 메시지와 GS 포기 요청 메시지이다.
상기 GS 부여 요청 메시지에는 처리기한에 대한 절대시간 정보를 내용으로 담고 있다. 상기 GSM Task블록(510)은 GS 부여 요청 메시지가 수신되면 처리기한 순으로 정렬된 환형 List인 GS List블록(600)를 검색하면서 주어진 처리기한이 삽입될 위치를 찾는다. 위치를 발견하면, 앞 항목과 뒤 항목의 GS 값을 가지고 새로 부여할 GS값을 계산한다.
이때, 먼저 앞 항목과 뒤 항목 GS의 값의 차를 계산하는데, 그 값(이하 GSdif라 칭함)이 GSwnd보다 크면 GSwnd*2-GSdif를 차로 간주한다(GSdif에 치환).GSdif의 값이 특정한 GSstep의 값보다 더 크면 새로 부여할 GS값은 앞 항목의 GS 값에서 GSstep을 더한 값(혹은 이 값이 GSmax보다 크면 이 값에서 GSwnd*2를 뺀 값)으로 한다. 만약 GSdif의 값이 특정한 GSstep의 값보다 작으면 새로 부여할 GS 값은 앞 항목의 GS 값에서 GSdif/2를 더한 값(혹은 이 값이 GSmax 보다 크면, 이 값에서 GSwnd*2를 뺀 값)으로 한다.
만약, 상기 과정중에 앞 항목이 없으면 (없다는 것은 환형 List상 앞 항목이 있더라도 그 항목의 처리기한이 새로 추가할 주어진 처리기한보다 늦는 경우도 포함한다) 새로 부여할 GS의 값은 뒤 항목의 GS값에서 GSstep값을 더한 값(혹은 이 값이 GSmin 보다 작으면 이 값에서 GSwnd*2를 더한 값)으로 한다. 만약 뒤 항목이 없으면(없다는 것은 환형 List상 뒤 항목이 있더라도 그 항목의 처리기한이 새로 추가할 주어진 처리기한보다 빠른 경우도 포함한다) 새로 부여할 GS의 값은 뒤 항목의 GS 값에서 GSstep 값을 더한 값(혹은 이 값이 GSmax 보다 크면 이 값에서 GSwnd*2를 뺀 값)으로 한다. 만약 앞 항목과 뒤 항목이 모두 없다면 새로 부여할 GS는 GSmin과 GSmax 사이의 임의의 값으로 한다. GSwnd 및 GSwtep의 값은 시스템의 Task의 수 및 데이터 처리 시간의 다양성에 따라 적당하게 설계한다.
상기 과정중에 부여할 GS 값이 정해지면 GSM Task블록(510)은 GSS블록(430)으로 변경서비스 요청을 하여 RTQ(412)상의 해당 Task의 GS를 변경하게 한 후 새로 부여한 GS와 처리기한, TID 정보를 저장한 항목을 앞에서 찾은 GS List모듈부(600)의 삽입위치에 삽입한다. 그리고 상기 GS List부(600)의 다른 항목을 검색하면서 TID가 일치하는 항목을 찾아 만약 그런 항목이 있으면 이 항목을GS List모듈부(600)에서 삭제한다.
그리고, 상기 과정이 종료되면 상기 GSM Task 블록(510)은 메시지 대기 상태를 반복한다.
또한, 상기 과정중에 GSM Task블록(510)이 GS포기 요청 메시지를 수신하였을 때는 GSM Task블록(510)이 해당 TID를 GS List모듈부(600)에서 검색한다.
그리고, 상기 검색과정중에 해당 노드를 찾으면 GS List모듈부(600)에서 그 노드를 삭제한 후 GS 값을 부여하지 않은 채로 GSS블록(430)으로 GS 변경 서비스 요청을 한다. 그러면, 상기 GSS블록(430)은 해당 TID를 RTQ(412)에서 찾아서 GS 값을 삭제하고 RTQ(412)의 가장 끝에 있는 Idle Task(530)의 바로 앞에 이동시킨 후 메시지 대기로부터 반복한다.
따라서 GS가 부여되지 않은 Task들은 처리 순서가 가장 늦을 것이다. 여기에서는 언급하고 있지 않지만 시스템 서비스 중 새로운 Task를 생성하고 삭제할 때는 자동으로 상기 GSM Task블록(510)에 처리기한에 따른 GS 부여 요청 메시지를 보내는 작업을 하도록 한다. 또한 메시지 전달 서비스에서도 메시지의 처리기한에 따라서 메시지 수신측의 GS를 변경할 수도 있다.
다시말해서, 상기 GSM Task블록(510)은 각 응용타스크 예컨대, PRS블록(410)이나 IHS블록(420)으로부터 전송되온 자신의 처리기한에 관한 시간정보를 이용하여 GS LIST모듈부(600)의 우선순위정보를 결정하고 그 처리결과 즉, GS 변경 서비스 요청신호를 GSS블록(430)으로 전송한다. 그러면, 상기 GSS블록(430)은 RTQ(412)에서 주어진 TID를 검색하여 해당 노드를 찾으면 GS의 값을 주어진 GS 값으로 변경하고 해당 노드를 RTQ(412)상에서 그 우선순위를 재조정한다. 이때, 상기 STQ(413)를 검색할 필요가 없는 이유는 해당 Task가 GSM Task블록(510)에 GS 부여 요청 메시지를 보내면 GSM Task블록(510)의 우선 순위가 높음으로 인하여 GSM Task블록(510)이 모든 작업을 끝내고 대기상태에 들어가기 전까지는 해당 Task는 RTQ(412)에 삽입되어 있을 것이기 때문이다.
또한, 상기 실행순서 조정단계(S5)후에 응용타스크 실행단계(S6)로 진행하여 PRS 타스크블록이 GSS블록에 의해 조정된 응용타스크의 실행순서에 따라 응용타스크를 실행한다.
환언하면, 상기 GSS블록(430)이 GSM 타스크블록(510)의 GS변경요청에 의해 PRS블록(410)의 RTQ(412)에 저장된 응용타스크들의 실행우선순위를 재조정하면 그 실행순서에 따라 응용타스크가 실행되는데, 예컨대, PRS블록(410)은 상기 처리기한에 따라 재조정된 실행우선순위에 따라 타스크를 순서대로 실행시킨다.
그리고, 상기 과정중에 IS Task(520) 역시 대기하고자 하는 메시지를 지정하지 않은 상태에서 메시지 대기 시스템 요청을 한 후 IS Task(520)가 재개되면 처리할 인터럽트의 유형을 확인한 후 처리할 인터럽트 유형에 따라 미리 지정된 Task로 인터럽트가 있음을 알리는 메시지를 작성하여 메시지 전달 서비스 요청을 한다.
다시 IS Task가 재개되면 IS Task(520)는 처리할 인터럽트가 남아 있는지 확인하여 남아 있다면 인터럽트 유형 확인으로부터 다시 반복하고 남아있지 않다면 메시지 대기 시스템 요청부터 반복한다.
이때, Idle Task(530)는 프로세서 증지 명령과 다시 프로세서 증지 명령을반복하는 무한 루프로 구성되는데, 상기 Idle Task(530)는 가장 낮은 GS를 가지고 있으므로 다른 모든 테스트가 대기 상태에 있는 경우에만 재개된다.
여기서, 상기 App Task(540)는 실제 데이터를 처리하는 Task로서, App Task(540)가 처리해야 할 Data에 따라 우선 순위를 달리하여 처리하기 위해서는 App Task(540)의 각 상대별로 처리하는 데이터 및 그 처리기한에 대한 정보를 가지고서 App Task(540)를 설계하여야 한다.
App Task(540)에서 특정 Data 처리에 대한 처리 기한이 요구되면 App Task(540)는 GSM Task(510)를 향하여 GS 부여 요청 메시지를 전달한다. 처리기한은 현재 시간으로부터 해당 데이터의 처리 기간을 더한 최종 처리 완료시간이다. 만약 하나의 태스크가 데이터를 처리하는데 여러 단계를 거쳐야 하고 많은 시간이 걸린다면 각 단계별로 GS 부여 요청을 매번 해주면 실시간 처리의 효율이 더 높아진다.
이 시스템을 응용하여 종전의 우선 순위 Queue에 의한 우선 순위 결정 방식과 융합하면 GS에 국한되지 않는 특수목적의 Task를 다수 추가하는 것도 가능하다.
이러한 시스템은 복잡하면서도 저비용을 추구하는 실시간 시스템이라면 어디나 응용 가능하며 이를테면 이동 전화기, 휴대용 게임기, 가정용 PC등에 모두 적용될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정된 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변환 및 변경이 가능한 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진자에게 명백할 것이다.
상술한 바와 같이, 본 발명에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템을 적용하면 실시간 시스템을 현실 세계의 데이터 처리 기한에 대한 요구를 그대로 Task의 설계에 반영하여 종전 시스템보다 효율적인 프로세서 자원 분배를 가능하게 할 수 있다.
Claims (5)
- 외부 시스템의 요청에 의해 응용타스크를 실행하는 실시간 다중처리 시스템에 있어서,상기 외부 시스템으로부터 타스크 요청시 처리기한에 따른 시간정보를 해당 처리모듈로 제공하고 그 결정된 타스크 실행우선순위에 따라 타스크의 실행을 제어하는 시스템 코어모듈부와, 상기 시스템 코어모듈부의 요청에 의해 각 타스크의 처리기한에 따른 시간정보를 분석하여 타스크 실행우선순위에 따른 GS변경신호를 생성하고 GS에 의해 실제 타스크 데이터를 처리하는 타스크프로세스모듈부와, 상기 타스크프로세스모듈부의 검색요청에 의해 처리기한에 따라 기록된 GS자료목록을 저장하고 있는 GS리스트모듈부를 포함하는 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.
- 제 1 항에 있어서, 상기 시스템 코어모듈부는 타스크프로세스 모듈부로부터 입력된 실행우선순위에 따라 실행할 Task를 선택하여 실행시키는 PRS블록과, 상기 외부 시스템으로부터 입력된 인터럽트를 처리하기 위한 IHS블록과, 상기 타스크프로세스모듈부로부터 입력된 특정 타스크의 GS값을 변경하여 타스크의 실행우선순위를 재조정하는 GSS블록을 포함하는 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.
- 제 2 항에 있어서, 상기 PRS블록은 현재 실행중인 응용 타스크의 식별정보를 저장하는 ETID메모리와, 상기 각 응용 타스크들의 처리기한에 따른 우선순위정보를 저장하는 ETGS메모리와, 상기 실행 대기중인 응용타스크들의 식별정보와 상기 GSS블록에서 제공된 응용 타스크들의 우선순위 정보를 저장하는 RTQ메모리와, 상기 외부 시스템으로부터 특정 메시지가 수신될 경우 실행되는 응용타스크들의 식별정보와 우선순위정보를 저장하는 STQ메모리를 포함하는 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.
- 제 1 항에 있어서, 상기 Task프로세스모듈부는 요청된 타스크의 처리기한에 따른 시간정보를 분석하고 타스크의 실행우선순위를 결정하여 GS변경신호를 생성하는 GSM Task블록과, 상기 지정된 Task로 메시지를 보내는 IS 타스크부와, 상기 실행할 응용 타스크가 없을 경우 아이들타스크를 실행하는 Idle 타스크부를 포함하는 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.
- 실시간 다중처리 시스템에서 외부시스템으로부터 다수의 응용타스크블록중 해당 타스크블록으로 전송되는 실행명령을 수신하는 타스크 실행명령수신단계와, 상기 타스크 실행명령 수신단계후에 외부시스템으로부터 실행명령을 수신한 응용타스크 블록이 GSM타스크 블록으로 자신의 처리기한에 관한 시간정보를 송신하는 타스크 처리기한정보송신단계와, 상기 타스크 처리기한정보 송신단계후에 GSM 타스크블록이 정보를 제공한 응용타스크 블록의 실행우선순위를 처리기한 정보에 따라 결정하고 그 처리결과를 GSS타스크 블록으로 송신하는 실행우선순위 송신단계와, 상기 실행우선순위 송신단계후에 GSS타스크블록이 GSM타스크블록으로부터 송신된 타스크 실행우선순위정보에 따라 PRS타스크 블록의 RTQ에 저장된 용용타스크들의 실행순서를 재조정하는 실행순서 조정단계와, 상기 실행순서 조정단계후에 PRS 타스크블록이 GSS블록에 의해 조정된 응용타스크의 실행순서에 따라 응용타스크를 실행사는 응용타스크 실행단계로 이루어진 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템의 처리방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980062916A KR100321408B1 (ko) | 1998-12-31 | 1998-12-31 | 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980062916A KR100321408B1 (ko) | 1998-12-31 | 1998-12-31 | 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000046239A KR20000046239A (ko) | 2000-07-25 |
KR100321408B1 true KR100321408B1 (ko) | 2002-06-24 |
Family
ID=19569531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980062916A KR100321408B1 (ko) | 1998-12-31 | 1998-12-31 | 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100321408B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013066124A1 (ko) * | 2011-11-03 | 2013-05-10 | 삼성전자 주식회사 | 인터럽트 할당 방법 및 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118586678A (zh) * | 2024-08-05 | 2024-09-03 | 深圳金证引擎科技有限公司 | 一种基于人工智能的数据审批系统、方法及终端 |
-
1998
- 1998-12-31 KR KR1019980062916A patent/KR100321408B1/ko not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
Operating System Second Edition By H.M.Deitel(1990 Addition-Wesley Publishing Company, Inc.)중 pp. 287-301 끝. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013066124A1 (ko) * | 2011-11-03 | 2013-05-10 | 삼성전자 주식회사 | 인터럽트 할당 방법 및 장치 |
US9626314B2 (en) | 2011-11-03 | 2017-04-18 | Samsung Electronics Co., Ltd. | Method and apparatus for allocating interruptions |
Also Published As
Publication number | Publication date |
---|---|
KR20000046239A (ko) | 2000-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2200929C (en) | Periodic process scheduling method | |
US5339415A (en) | Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system | |
US10459915B2 (en) | Managing queries | |
JP2519382B2 (ja) | マルチメディア・コンピュ―タ・オペレ―ティング・システム及び方法 | |
US9372729B2 (en) | Task scheduling method and apparatus | |
US5274809A (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
US20060206894A1 (en) | Method of scheduling jobs using database management system for real-time processing | |
US20100153957A1 (en) | System and method for managing thread use in a thread pool | |
US5257375A (en) | Method and apparatus for dispatching tasks requiring short-duration processor affinity | |
JPH1055284A (ja) | スレッドをスケジュールする方法及びそのシステム | |
JPH11353196A (ja) | タイム・スケジュ―ルされたプロセス管理用ガバナ | |
JPH07200323A (ja) | 解放された同期メカニズムの所有権を管理するための方法及びシステム | |
JP2015022606A (ja) | 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム | |
US6408324B1 (en) | Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system | |
US6721948B1 (en) | Method for managing shared tasks in a multi-tasking data processing system | |
WO2021212967A1 (en) | Task scheduling for distributed data processing | |
CN113821322A (zh) | 一种松耦合的分布式工作流协调系统和方法 | |
EP2840513B1 (en) | Dynamic task prioritization for in-memory databases | |
KR100321408B1 (ko) | 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법 | |
Horowitz | A run-time execution model for referential integrity maintenance | |
EP0544822B1 (en) | Dual level scheduling of processes | |
EP1011045B1 (en) | Object-oriented job scheduler | |
JP2009541852A (ja) | コンピュータマイクロジョブ | |
CN115004170A (zh) | 根据数据新鲜度要求的优化查询调度 | |
JP5003673B2 (ja) | マルチプロセッシング方法及びマルチプロセッサシステム |
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: 20080102 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |