KR100509794B1 - 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 - Google Patents

데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 Download PDF

Info

Publication number
KR100509794B1
KR100509794B1 KR1020050019567A KR20050019567A KR100509794B1 KR 100509794 B1 KR100509794 B1 KR 100509794B1 KR 1020050019567 A KR1020050019567 A KR 1020050019567A KR 20050019567 A KR20050019567 A KR 20050019567A KR 100509794 B1 KR100509794 B1 KR 100509794B1
Authority
KR
South Korea
Prior art keywords
task
job
transaction
processing
work
Prior art date
Application number
KR1020050019567A
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 주식회사 퓨전소프트
Priority to KR1020050019567A priority Critical patent/KR100509794B1/ko
Application granted granted Critical
Publication of KR100509794B1 publication Critical patent/KR100509794B1/ko
Priority to US11/369,820 priority patent/US20060206894A1/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
    • 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터베이스 관리시스템을 이용한 작업들의 실시간 처리를 위한 스케줄링 방법이 개시된다. 응용 태스크는 DB 태스크에 처리 요청할 작업을 긴급형과 일반형 중 어느 한 가지의 트랜잭션 유형으로 분류한 다음, 공유자원인 메모리 풀에 처리영역을 할당받은 다음, 클라이언트 API를 통해 데이터베이스 작업 관리자에게 전달한다. 작업 관리자는, 그 작업의 요청노드를 트랜잭션 유형에 따라 일반형과 긴급형으로 구분하여 관리하는 DB 태스크용 메일박스의 해당 트랜잭션 유형의 리스트에 트랜잭션 단위로 스케줄링 되도록 적재한다. 작업관리자는 DB 태스크용 메일박스에 적재되어 있는 작업요청노드들을 DB 태스크에 하나씩 전달하여 트랜잭션 단위로 처리되도록 하되, 긴급형 트랜잭션에 해당하는 작업이 일반형 트랜잭션에 해당하는 작업에 비해 우선적으로 처리되고 동일한 트랜잭션 유형의 작업들 간에는 먼저 작업 요청순서에 따라 처리되도록 전달한다. DB 태스크는 작업의 처리 결과를 작업 관리자를 통해 그 작업의 처리를 요청한 응용 태스크의 메일 박스에 적재함으로써 추후 해당 응용 태스크가 자신의 메일박스에 적재되어 있는 처리결과를 이용할 수 있도록 한다. 응용 태스크와 작업관리자, DB 태스크가 서로 주고받는 정보는 작업 처리의 요청과 그 작업의 처리 결과의 실제 데이터가 아니라 그것들이 메모리 풀에 저장되어 있는 주소정보이다.

Description

데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 {Method of scheduling jobs using database management system for real-time processing}
본 발명은 데이터베이스에 관한 작업 처리방법에 관한 것으로서, 보다 상세하게는 이동통신단말기에서 실시간 운영체제를 기반으로 하는 동작하는 데이터베이스에 관한 작업들을 실시간으로 처리해주는 작업 스케줄링 방법에 관한 것이다.
최근 멀티미디어와 네트워크 분야의 발달로 임베디드 시스템은 멀티미디어 정보를 처리하고 네트워크에 접속하는 기능들을 포함하면서 그 구조가 더욱 복잡해지고 있다. 예전처럼 단순한 시스템에서는 순차적인 설계로도 처리할 수 있었으나, 시스템이 복잡해지면서 기존 방법과는 다른 새로운 방법이 필요하게 되었다. 처리해야 할 작업이 많아지면서 복잡해진 시스템을 위해 멀티태스킹(multi-tasking) 기능까지도 필요하게 되었다. 이에 따라 컴퓨터 시스템에서만 사용되는 운영체제(Operating System: OS)가 임베디드 시스템에서도 필요하게 되었다. 더욱이, 대부분의 임베디드 시스템에는 '실시간 처리' 특성을 만족시킬 것이 요구되었다. 그에 따라 실시간 운영체제(Real-Time Operating System: RTOS)가 개발되었고, 운영체제를 필요로 하는 임베디드 시스템들은 주로 RTOS를 채용하는 것이 일반적인 것으로 되었다.
RTOS는 그것이 적용된 시스템의 내/외부에서 어떤 이벤트가 발생했을 때, 그 이벤트의 발생 시간과 그 이벤트의 처리를 시작 할 때까지의 지연 시간이 미리 제시된 시간을 넘지 않도록 해주는 운영체제이다. RTOS를 채용한 시스템(실시간 시스템)은 이벤트 발생과 처리가 실시간으로 이루어지는 시스템으로서, 주어진 시간 내에 어떠한 작업을 반드시 처리하는 특징을 갖는다. 예컨대 이동통신단말기, 스마트폰, 피디에이(PDA), 무선인터넷단말기, 카 네비게이션 시스템 등과 같은 휴대용 통신기기를 비롯해 판매, 영업, 재고 관리 등 특정목적 휴대단말기 또한 일반적으로 다른 임베디드 시스템들과 마찬가지로 RTOS를 사용하는 실시간 시스템이다.
한편, 이동통신단말기 등을 비롯한 위에서 언급한 여러 휴대용 통신기기는 계속적으로 진보하여 기능이 더욱 고도화되고 복잡해지는 방향으로 나아가고 있다. 휴대용 통신기기는 예컨대 디지털 카메라와 휴대폰의 융합, MP3 플레이어와 휴대폰의 융합, TV 수신기능의 휴대폰으로의 도입 등과 같은 이종 기기간의 융합을 통해 끊임없이 변화와 진보를 거듭하고 있다. 이러한 휴대용 통신기기는 관리하고 처리하는 정보의 량도 많아지게 되고 정보처리의 작업내용도 보다 복잡화, 다양화, 고도화 된다. 이에 따라 정보의 보다 효율적인 관리와 처리 등을 위해 하드웨어와 소프트웨어 양 측면에서 성능 개선을 위한 수단들이 도입될 필요가 있으며, 그러한 것의 일예로서 데이터베이스 시스템의 도입이 고려될 수 있다.
그런데 아직까지는 이동통신단말기에 데이터베이스 시스템이 도입되어 상용화된 예는 찾아볼 수 없다. 기존의 이동통신단말기의 경우 예컨대 전화번호부(phone book) 등은 자료구조를 활용한 파일시스템을 이용하고 구현되고 있다. 그렇지만 이동통신단말기의 진화 추세와 속도에 비추어볼 때 데이터베이스 시스템이 이동통신단말기에 도입되는 것은 시간문제로 볼 수 있을 것이다.
이동통신 단말기는 실시간 통신기능 및 데이터 확인기능이 필수적인 기능이다. 예를 들면, 전화번호부 검색 중에 전화가 수신 되었을 경우 수신된 전화번호에 해당하는 발신인의 성명 표시는 실시간으로 처리될 필요가 있다. RTOS 환경으로 운영되는 이동통신단말기에 데이터베이스 시스템(예컨대 관계형 데이터베이스 시스템)이 도입되는 경우, '데이터베이스'를 활용하는 작업들(예컨대 전화번호부 등이 데이터베이스로 구축되는 경우, 발신인의 성명 표시 등의 작업)의 처리 역시 실시간으로 이루어져야 하는 것은 필수적인 요구사항이다. 나아가, 데이터베이스를 이용한 작업을 처리함에 있어서 데이터베이스의 무결성도 완벽하게 보장되어야 한다. 뿐만 아니라 데이터베이스 관련 작업들의 보다 효율적인 수행을 위해 필요한 여러 가지 기능들도 아울러 지원될 필요가 있다.
따라서 이상의 사항들을 고려하여 본 발명은 이동통신단말기의 RTOS 환경에서 동작되는 데이터베이스를 이용한 작업들을 처리 긴급도에 따라서 작업 처리 순서를 탄력적으로 스케줄링 함과 동시에 공유자원으로서 메모리 풀을 채용하여 주소정보만을 실제로 전달하고 타임아웃제(작업제한시간제)를 도입함으로써 작업의 실시간 처리를 보장할 수 있고, 작업들을 트랜잭션 단위로 처리되도록 함으로써 데이터베이스의 무결성을 보장할 수 있는 데이터베이스 작업의 스케줄링 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 측면에 따르면, 실시간 운영체제(RTOS) 기반의 이동통신단말기에 설치된 데이터베이스 관리시스템을 이용한 작업의 스케줄링 방법에 있어서, 응용 태스크는 DB 태스크에 처리 요청할 작업의 트랜잭션 유형을 긴급형(hot type)과 일반형(normal type) 중 어느 한 가지로 구분하고 메모리 풀에 요청하여 그 작업의 처리영역을 할당받은 다음, 그 작업의 처리를 클라이언트 API(Application Program Interface: 응용프로그램 인터페이스)를 통해 데이터베이스 작업 관리자에게 요청하는 제1단계; 상기 작업 관리자는, 상기 응용 태스크가 처리 요청한 작업의 트랜잭션 유형을 파악하고 그 작업의 작업요청노드를 생성하여 상기 DB 태스크용 메일박스의 해당 트랜잭션 유형의 리스트에 트랜잭션 단위로 스케줄링 되도록 적재하는 제2단계; 및 상기 작업관리자는 상기 DB 태스크용 메일박스에 적재되어 있는 작업요청노드들을 상기 DB 태스크에 하나씩 전달하여 트랜잭션 단위로 처리되도록 하되, 긴급형 트랜잭션에 해당하는 작업이 일반형 트랜잭션에 해당하는 작업에 비해 우선적으로 처리되고 동일한 트랜잭션 유형의 작업들 간에는 먼저 작업 요청순서에 따라 처리되도록 전달하는 제3단계를 구비하는 것을 특징으로 하는 이동통신단말기의 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법이 제공된다.
이와 같은 스케줄링 방법에 따르면, 이동통신 단말기에서 사용하는 RTOS 환경에서 데이터베이스의 실시간 작업 처리를 위해, 수행해야 할 작업들의 트랜잭션 형태를 일반형(normal type)과 긴급형(hot type)으로 분류한다. 일반형의 작업들 간이나 긴급형의 작업들 간에는 기본적으로는 선입선출(First-In-First-Out, FIFO) 방식으로 작업 순서를 설정하여 요청된 순서대로 작업을 처리하여 실시간성을 보장한다. 그러나 일반형의 작업과 긴급형의 작업 간에는 후자를 전자에 우선하여 처리되도록 한다. 즉, 긴급한 처리를 요구하는 작업이 요청되면, FIFO의 작업순서와는 별도로 인터럽트를 발생시켜 이전에 수행 중이던 작업을 일시 정지시킨 후 긴급형의 작업들을 일반형의 작업들보다 우선적으로 처리한 후, 일시 정지된 일반 유형의 작업의 수행을 재개하는 방식을 취한다. 이러한 방식을 통해 데이터베이스 관리시스템(DBMS)의 효율적인 작업 스케줄링과 실시간성을 보장할 수 있게 한다.
본 발명은 또한, 상기 제3단계 후에, 상기 DB 태스크가 작업의 처리 결과를 상기 메모리 풀에 할당하고 그 처리 결과가 할당된 메모리 풀의 주소를 상기 작업 관리자에게 전달하고, 상기 작업 관리자는 전달받은 그 메모리 풀의 주소를 그 작업의 처리를 요청한 응용 태스크의 메일 박스에 적재함으로써 추후 상기 실시간 운영체제로부터 제어권을 획득한 해당 응용 태스크가 자신의 메일박스에 적재되어 있는 처리결과를 이용할 수 있도록 하는 제4단계를 더 구비하는 것이 바람직하다.
나아가, 상기 DB 태스크는 전달받은 작업을 주어진 작업제한시간 내에 수행을 완료하지 못한 경우에는 그 수행중인 작업을 중지하고 그 작업의 수행과정에서 변경한 데이터를 원래의 상태로 복귀시킨 뒤, 그 결과를 상기 작업관리자에게 반환한 다음, 다시 상기 작업 관리자를 통해 작업 스케줄링 과정을 거쳐 선택된 작업을 수행하는 제5단계를 더 구비하는 것이 바람직하다.
이와 같은 각 단계를 수행함에 있어서, 응용 태스크와 DB 태스크, 그리고 작업관리자의 공유자원으로서 메모리 풀을 도입하고, 이들의 작업 처리에 필요한 실제 데이터나 그 작업의 처리 결과의 실제 데이터는 이 메모리 풀에 저장해두고, 응용 태스크와 DB 태스크, 그리고 작업관리자 간에 작업 처리를 요청하고 그 작업의 처리 결과를 전달받기 위해 서로 주고받는 정보는 해당 작업을 처리하는 데 필요한 실제 데이터와 그 작업의 처리 결과의 실제 데이터가 저장되어 있는 상기 메모리 풀의 주소 정보가 되도록 함으로써, 메모리 공간이 제한적일 수밖에 없는 이동통신단말기에 최적의 작업 처리 방법을 제시할 뿐 만 아니라, 전달되는 정보를 최소화함으로써 신속한 작업처리를 도모할 수 있다.
그 밖에, 상기 DB 태스크용 메일박스 내에 적재된 작업요청노드들은 동일한 트랜잭션을 구성하는 것들끼리는 동일한 트랜잭션 ID를 가지면서 포인터에 의해 차례로 링크되어 있고 상기 작업관리자를 통해 상기 DB 태스크에 전달될 때 동일한 트랜잭션 ID를 갖는 작업들은 연속적으로 전달되도록 하여 작업들을 트랜잭션 단위로 묶어서 수행되도록 한다. 이에 의해 데이터베이스를 이용하는 작업을 수행함에 있어서 필수적으로 요구되는 트랜잭션 단위의 작업처리를 통한 데이터베이스의 무결성 보장이 이루어질 수 있다.
작업요청노드를 상기 DB 태스크용 메일박스의 해당 트랜잭션 유형의 리스트에 트랜잭션 단위로 스케줄링 되도록 적재하기 위해 다음과 같은 과정을 거친다. 먼저, 추가할 작업의 세션 ID와 트랜잭션 ID를 파악한 다음, 그 값을 해당 트랜잭션 앵커 리스트에 포함되어 있는 전체 트랜잭션 앵커 노드들의 세션 ID 및 트랜잭션 ID 정보와 차례로 비교 분석하여 추가할 작업의 세션 ID 및 트랜잭션 ID와 동일한 세션 ID 및 트랜잭션 ID를 갖는 트랜잭션 앵커 노드가 존재하는지를 판별한다. 만약 그러한 트랜잭션 앵커 노드가 존재하면 그 작업의 작업요청노드를 그 트랜잭션 앵커 노드에 추가하지만, 그렇지 못한 경우에는 새로운 트랜잭션 앵커 노드를 생성하여 당해 트랜잭션 앵커 리스트에 추가한 후 새롭게 생성된 그 트랜잭션 앵커 노드에 상기 작업요청노드를 추가한다. 이에 의해 트랜잭션 단위로 작업이 적재될 수 있다.
이하에서는 첨부한 도면을 참조하여 본 발명을 보다 구체적으로 설명하기로 한다.
도 1은 응용 태스크와 DB 태스크가 작업관리자를 매개로 하여 작업들이 실시간으로 트랜잭션 단위로 처리하도록 스케줄링 하는, 본 발명에 따른 데이터베이스 작업 스케줄링 방법을 보여준다. 도 1에서, 시스템은 RTOS 환경에서 동작하는 것으로서, 응용태스크(10)는 DB 태스크(50)에게 작업을 처리해주도록 요청하여 그 처리결과를 받아 이용하고, DB 태스크(50)는 그러한 요청에 응하여 작업을 처리하여 그 결과를 응용태스크(10)에게 넘겨준다. 참고로, 태스크는 RTOS가 제어하는 프로그램의 기본 단위로서, 운영체계를 설계할 때 태스크를 어떻게 정의하느냐에 따라 태스크가 될 수 있는 단위 프로그램은 전체 프로그램일 수도 있고 또는 계속되는 프로그램의 호출이 될 수도 있다. 본 발명에서는, '응용 태스크'(10)는 RTOS 환경에서 동작중인 어떤 임의의 응용 프로그램을 의미하며, 'DB 태스크'(50)는 RTOS 환경에서 동작중인 데이터베이스 서버 프로그램을 의미한다. '작업'은 응용 태스크(10)에서 DB 태스크(50)로 요청하는 쿼리(query) 작업을 의미한다.
이 작업은 일반형(normal type) 작업과 긴급형(hot type) 작업 중 어느 한 가지로 분류된다. 작업의 유형은 응용 태스크(10)에서 작업 할당 시 에 설정한다.
이동통신 단말기는 여러 개의 태스크들로 구성되어 있으며, RTOS를 사용하여 각 태스크의 동작을 관리한다. 또한 메모리 풀(memory pool)(70)을 마련하고 이것을 여러 태스크들의 공유자원으로 활용한다. 메모리 풀(70)을 이용하면 응용 태스크(10)가 DB 태스크(50)에게 작업 처리를 요청하거나 혹은 반대로 DB 태스크(50)가 작업 처리를 한 결과를 응용 태스크(10)에게 전달하는 경우 필요한 데이터의 전달 시에, 실제 데이터의 값을 전달하는 것이 아니라 메모리 풀(70)에 저장되어 있는 실제 데이터의 '주소'를 전달하면 된다. 따라서 데이터의 전달에 필요한 부담을 현저히 줄일 수 있어 신속한 처리가 가능하다.
본 발명에 따른 데이터베이스 작업의 실시간 처리를 위한 스케줄링 방법은 다음과 같은 절차로 수행된다.
(1) 어떤 하나의 응용 태스크(10)가 데이터베이스 관리시스템을 이용하여 수행해야 할 작업이 있는 경우를 생각하자. 이 경우 그 응용 태스크(10)는 그 작업의 처리를 DB 태스크(50)에게 요청하여야 한다. 이를 위해, RTOS로부터 제어권을 얻은 응용 태스크(10)는 먼저 공유자원인 메모리 풀(70)에 대하여 처리할 작업의 할당을 요청하여 작업 할당을 받는다(S1, S2). 메모리 풀(70)은 예컨대 RAM을 이용하여 구현할 수 있을 것이다. 이를 통해 메모리 풀(70)에는 그 할당된 작업을 처리하는 데 필요한 작업영역이 확보되며, 그 작업영역에는 그 작업에 관련된 데이터가 저장되게 된다. 메모리 풀(70)에 작업이 할당됨에 따라 응용 태스크(10)에 실제로 전달되는 것은 앞서도 언급하였듯이 '그 작업에 관련된 실제 데이터'가 아니고 그 작업을 위해 '할당된 작업공간의 주소 정보'이다. 작업을 할당받은 후, 응용 태스크(10)는 메모리 풀(70)에서 할당 받은 작업공간의 주소를 클라이언트 API(20)의 패러미터로 전달하여(S3) 작업 관리자(30)에게 그 작업의 처리를 요청한다(S4). 이때, 응용 태스크(10)가 클라이언트 API(20)를 통해 작업 관리자(30)에게 작업 처리를 요청할 때 전달하는 메시지에 포함된 정보는 적어도 그 작업의 처리를 위해 수행해야 할 SQL문, 그 작업의 트랜잭션 유형 및 그 작업을 처리하는 데 적용될 제한시간(Time-out)의 정보가 저장되어 있는 메모리 풀의 주소와, 요청하는 작업이 어떤 작업인지를 구분하기 위한 작업 구분자(identifier) 역할을 하며 DB 태스크에서 수행방법을 결정하기 위한 동작코드를 포함하는 프리미티브 리퀘스트(primitive request)를 포함한다.
(2) 응용 태스크(10)와 DB 태스크(50) 간에 작업 요청과 처리된 작업 결과를 서로 교환해야 하는데, 이 경우 태스크 간 통신을 통하여 교환할 수 있디. 이 기능은 RTOS에서 지원하는 여러 도구들에 의해 수행이 된다. 대표적인 방법으로는 시스템 전역의 변수를 선언하여 사용방법, 큐, 파이프, 메일박스, 공유 메모리 등이 있는데, 본 발명은 그 중에서 메일박스를 이용한다.
작업 관리자(30)는 처리 요청된 작업에 대하여 세션 ID와 트랜잭션 ID 등의 부가 정보를 더하여 작업요청노드를 만들고, 그 작업요청노드를 스케줄링을 통해 당해 작업의 트랜잭션 유형별로 구분하면서 트랜잭션 단위로 묶여지도록 DB 태스크(50)의 메일 박스(40)에 적재한다. 이 때, 메일 박스(40)에 적재되는 정보는 처리할 작업의 관련 데이터가 저장되어 있는 메모리 풀 주소이다. 처리 요청된 작업의 스케줄링에 관한 보다 상세한 사항은 후술하기로 한다.
(3) 이후 RTOS로부터 제어권을 획득한 DB 태스크(50)는 작업 관리자(30)에게 수행할 작업을 요청하고(S5), 작업 관리자(30)는 작업 스케줄링을 통해 선택된 작업이 저장되어 있는 메모리 풀 주소를 DB 태스크(50)로 전달한다(S6). DB 태스크(50)는 전달받은 작업의 메모리 풀 주소에 해당하는 작업을 처리하는 과정에서 처리결과를 메모리 풀(70)에 할당한(S7, S8) 다음, 다시 작업 관리자(30)에게 처리결과의 메모리 풀 주소를 전달한다(S9). 계속해서, 작업 관리자(30)는 DB 태스크(50)로부터 전달받은 처리결과의 메모리 풀 주소를 작업 처리를 요청한 응용 태스크(10)의 메일 박스(60)에 적재한다(S10).
(4) 이 후, RTOS로부터 제어권을 다시 획득한 응용 태스크(10)는 자신의 메일 박스(60)에 적재되어 있는 처리결과의 메모리 풀 주소를 클라이언트 API(20)로부터 전달받는다(S11). 나아가, 응용 태스크(10)는 메모리 풀(70)의 그 전달받은 메모리 풀 주소로 액세스 하여 그 주소에 저장되어 있는 처리결과를 이용할 수 있다. 즉, 다시 클라이언트 API(20)을 호출하여 메모리 풀에 저장되어 있는 처리결과를 가공 처리하는 등의 나머지 작업을 수행한다.
(5) 응용 태스크(10)는 이와 같은 일련의 작업들을 수행한 후에는 다시 클라이언트 API(20)의 호출을 통해 할당 받은 처리결과와 작업을 할당 해제한다.
위 과정에서 작업 관리자(30)는 응용 태스크(10)와 작업과의 관계를 유지하기 위해 세션(session)의 생성, 유지, 종료, 타임아웃 등의 세션 관리 기능, 요청된 작업의 작업순서 및 타임아웃 처리를 위한 작업 스케줄링 기능, 작업의 처리결과를 작업 처리를 요청한 응용 태스크(10)의 메일 박스(60)로 전달하는 응답처리 기능 등을 담당한다.
도 1의 과정에서 응용 태스크(10)와 DB 태스크(50) 간의 통신에 필요한 모든 정보들은 세션 아이디(ID). 트랜잭션 ID, 프리미티브 요청(Primitive Request), 프리미티브 응답(Primitive Response), 트랜잭션 유형(Transaction Type), 타임아웃, 실행문(Statement), 결과 세트(Result Set) 등으로 구성된 작업 요청 노드의 형태로 전달된다.
작업 요청 노드를 구성하는 정보들에 대해 좀 더 구체적으로 설명하면 다음과 같다.
ㄱ) 세션 ID : 작업 처리를 요청하는 태스크의 미리 정의된 고유한 ID를 사용한다.
ㄴ) 트랜잭션 ID: 작업 요청 시에 고유의 ID를 생성하여 사용한다.
ㄷ) 프리미티브 요청과 프리미티브 응답: DB 태스크(50)에서 수행방법을 결정하기 위한 동작 코드(Operation Code)를 말한다. 이를 구성하는 동작 코드의 값들은 아래와 같다.
ㄹ) 트랜잭션 유형: 응용 태스크(10)에서 요청하는 작업의 형태에 따라 긴급형(Hot type)과 일반형(Normal Type)으로 설정한다.
ㅁ) 타임아웃: DB 태스크(50)에 처리 요청된 작업의 시간 제약 사항을 설정한다.
ㅂ) 명령문: 수행할 질의 문장(Query Statement)을 포함한다.
ㅅ) 결과 세트: 처리 결과에 대한 정보를 저장한다. 여기에는 선택된 열(Row)과 행(Column)의 개수, 메모리 풀(70)에 할당된 처리 결과 데이터의 주소, 에러 메시지 등이 저장된다.
다음으로, 도 2와 3은 DB 태스크(60)의 메일 박스(40)의 구조를 보여준다. 메일 박스(40)는 태스크간의 통신을 위한 메시지 저장소의 역할을 한다. 작업 관리자(30)는 세션 정보를 이용하여 그리고 DB 태스크(50)의 메일 박스(40)를 통하여 작업들을 '트랜잭션 단위'로 관리한다. 세션 정보는 작업을 요청한 응용 태스크와의 관계를 명시하고 있다. 작업 관리자(30)는 세션 정보를 이용하여 작업 스케줄링 과정에서 트랜잭션 단위로 작업순서를 지정하며, 요청된 작업의 처리결과를 전달할 응용 태스크를 판별한다.
DB 태스크(50)의 메일 박스(40)는 도시된 바와 같이 두 개의 트랜잭션 앵커 노드 리스트들을 가진다. 하나는 도 2에 도시된 것과 같은 일반형 작업들을 적재하는 일반형 트랜잭션 앵커 리스트(Normal Transaction Anchor List)이고, 다른 하나는 도 3에 도시된 것과 같은 긴급형 작업들을 적재하는 긴급형 트랜잭션 앵커 리스트(Hot Transaction Anchor List)이다. 각 트랜잭션 앵커 노드 리스트는 트랜잭션 앵커 노드들의 연결 리스트이다. 트랜잭션 앵커 노드는 작업을 트랜잭션 단위로 수행하기 위한 정보를 가진다.
하나의 트랜잭션 앵커 노드(예컨대, 도 2의 '트랜잭션 앵커 노드 1')에 연결되어 있는 작업들(예컨대, 도 2에서 '작업요청노드1', '작업요청노드 3', 그리고 '작업요청노드6')은 동일한 트랜잭션에 속한 작업들이다.
하나의 트랜잭션 앵커 노드는 작업 요청 노드들의 리스트, 세션 ID, 트랜잭션 ID, 그리고 작업 처리 결과를 보내줄 응용 태스크(50)의 메일 박스(40)에 대한 포인터를 가진다. 하나의 작업요청노드는 작업의 수행 방법 등의 정보를 가진다. 세션 ID는 작업 관리자(30)가 작업을 요청한 응용 태스크를 구별하는 데 활용되는 등 작업 처리 결과를 태스크들에게 전달하는 과정 및 트랜잭션 단위의 작업처리 과정에서 사용되는 정보로서, 고유성을 만족할 수 있도록 부여되면 된다. 예컨대, RTOS에서 부여한 태스크들의 고유한 ID를 세션 ID로서 이용하는 것도 한 가지 방법이다. 트랜잭션 ID는 작업 관리자(30)가 작업을 트랜잭션 단위로 관리함에 있어 작업들을 분류하여 동일 트랜잭션 ID를 가진 작업을 하나의 작업 단위로 처리하는 과정에서 사용된다. 같은 트랜잭션에 속하는 작업 요청 노드들에게는 동일한 트랜잭션 ID가 부여된다.
아래에 예시된 프로그램 코드는 작업 요청 노드와 트랜잭션 앵커 노드의 구성 형태를 정의하는 것이다.
도 4는 작업 관리자(30)가 메일 박스(40)에 작업을 전달하는 과정을 보여준다. 작업 관리자(30)는 클라이언트 API(20)를 통해 응용 태스크(10)가 요청한 작업을 전달받으면, 그 작업의 형태를 작업 요청 노드에 포함되어 있는 작업 형태값(Job Type)에 의거하여 판단한다(S20). 작업 형태 값이 일반형에 해당되면 그 작업 요청 노드는 일반형 트랜잭션 앵커 리스트에 추가(저장)하고(S22), 긴급형에 해당되면 긴급형 트랜잭션 앵커 리스트에 추가(저장)한다(S24). 나아가, 그 요청된 작업이 긴급형의 작업인 경우에는 인터럽트 루틴을 호출한다(S26, S28). 이에 의해, DB 태스크(50)가 일반형의 작업을 수행중인 경우에는 그 수행을 중단하고 작업 관리자(30)를 통해 다시 작업 스케줄링 과정을 거쳐 선택된 작업을 수행하게 되며, 긴급형의 작업을 수행중인 경우에는 인터럽트를 무시하고 계속 수행한다.
도 5는 작업 관리자(30)가 일반형 또는 긴급형 트랜잭션 앵커 리스트에 작업을 추가(저장)하는 과정(도 4의 S22단계 또는 S24 단계)을 구체적으로 보여준다. 작업관리자(30)는 처리 요청 된 작업에 대한 세션 ID와 트랜잭션 ID는 작업요청을 한 응용 태스크의 ID를 이용하여 부여한다. 특히 트랜잭션 ID를 부여함에 있어서 그 처리 요청된 작업들이 동일한 세션 ID를 가짐과 동시에 새로운 트랜잭션의 시작을 선언한 시점부터 그 트랜잭션의 정상적인 완료 또는 철회의 선언이 있기까지의 시간동안에 처리 요청된 것이면 동일한 트랜잭션 ID를 부여하고, 그렇지 않으면 새로운 트랜잭션 ID를 부여한다. 이러한 처리를 통해, 추가하고자 하는 작업 요청 노드는 그 작업의 세션 ID와 트랜잭션 ID 정보를 포함하고 있다. 마찬가지로 메일 박스(40)에 적재되어 있는 각 트랜잭션 앵커 노드 또한 세션 ID와 트랜잭션 ID 정보를 포함한다. 어떤 트랜잭션 앵커 리스트에 작업을 추가함에 있어서, 먼저 작업 관리자(30)는 추가할 작업의 세션 ID와 트랜잭션 ID를 파악한 다음, 그 값을 해당 트랜잭션 앵커 리스트에 포함되어 있는 전체 트랜잭션 앵커 노드들의 세션 ID 및 트랜잭션 ID 정보와 차례로 비교 분석한다. 이를 통해, 추가할 작업의 세션 ID 및 트랜잭션 ID와 동일한 세션 ID 및 트랜잭션 ID를 갖는 트랜잭션 앵커 노드가 존재하는지를 판별한다. 만약 그러한 트랜잭션 앵커 노드가 존재하면 그 작업 요청 노드를 그 트랜잭션 앵커 노드에 추가하지만, 그렇지 못한 경우에는 새로운 트랜잭션 앵커 노드를 생성하여 당해 트랜잭션 앵커 리스트에 추가한 후 새롭게 생성된 그 트랜잭션 앵커 노드에 그 작업 요청 노드를 추가한다. 이러한 방식으로 작업 요청 노드를 트랜잭션 앵커 노드에 추가하기 때문에, 하나의 트랜잭션 앵커 노드에 연결되는 작업 요청 노드들은 모두 동일한 세션 ID 및 트랜잭션 ID를 갖게 된다. 트랜잭션 앵커 노드에 추가되는 작업 요청 노드들은 리스트의 형태로 관리되며, 특정 트랜잭션 앵커 노드에 추가되는 작업 요청 노드는 그 트랜잭션 앵커 노드의 마지막 작업 요청 노드가 포인터로 가리키도록 추가된다. 따라서 동일한 트랜잭션 앵커 노드에 속하는 작업 요청 노드들 상호간에는 포인터로 연결되어 순서를 갖는다.
DB 태스크(50)는 처리할 작업을 메일박스(40)에 요청하여 그로부터 전달받아 처리한다. 이 때 한꺼번에 여러 개의 작업을 동시에 수행하는 것이 아니라, 메일 박스(40)에 적재되어 있는 작업들을 한 번에 하나씩 수행한다. 작업 수행 순서는 메일 박스(40)에 적재되어 있는 순서에 따른다. 작업들이 원하는 순서에 따라 처리되도록 하려면, 메일 박스(40)에 적재되어 있는 작업들에 대한 스케줄링이 필요하다.
도 6은 작업 관리자(30)가 메일 박스(40)를 이용하여 작업 스케줄링을 하는 과정을 나타낸다. 작업 관리자(30)는 DB 태스크(50)에 전달할 작업을 가져오는 과정에서 트랜잭션 단위로 스케줄링하며, 사용되는 스케줄링 기법은 선점형 우선순위(Preempt Priority-based) 방식과 동일 우선순위 내에서 비선점 선입선출(Non-Preempt FIFO) 방식을 병행하여 사용한다. 즉, 작업관리자(30)는 DB 태스크용 메일 박스(40)에 적재한 작업요청노드의 트랜잭션 유형이, 긴급형인 경우에는 인터럽트 루틴을 호출하여 DB 태스크로 하여금 그 작업을 기 수행중인 일반형 작업보다는 우선적이지만 기 수행중인 다른 긴급형 작업에 대해서는 비우선적으로 수행되도록 스케줄링을 하고, 일반형인 경우에는 그 작업이 선입선출원칙에 따라 처리되도록 스케줄링 한다. 선점형 우선순위 방식은 우선순위가 낮은 작업에 작동에 제한을 걸어 우선순위가 높은 작업에 기회가 가도록 작업하는 방식인데, 본 발명은 이 개념을 일반형 트랜잭션 앵커 리스트와 긴급형 트랜잭션 앵커 리스트 간에 적용하여 후자에 속하는 작업이 전자에 속하는 작업보다 항상 우선적으로 처리되도록 한다. 비선점 선입선출 방식은 작업들 간에 우선권을 별도로 부여함이 없이 먼저 처리요청 된 작업이 뒤에 처리요청 된 작업보다 먼저 처리되도록 하는 방식으로서, 본 발명은 이를 동일 유형의 작업들 간 즉, 일반형 트랜잭션 앵커 리스트에 포함된 작업들 간 또는 긴급형 트랜잭션 앵커 리스트에 포함된 작업들 간에 적용한다.
트랜잭션은 묵시적 트랜잭션과 명시적 트랜잭션으로 나눌 수 있다. 묵시적 트랜잭션은 트랜잭션을 사용하지 않는 일반적인 SQL문장을 수행할 경우이며, 이 경우에도 데이터베이스 내부적으로는 하나의 트랜잭션으로 처리한다. 명시적 트랜잭션은 트랜잭션을 사용하는 SQL 문장을 수행하는 것을 말한다. 이 경우 동일한 트랜잭션에 속하는 작업들은 모두 같은 트랜잭션 ID를 가진다. 선점형 우선순위 방식에 따라서, 우선순위가 높은 긴급형의 작업부터 처리하기 위해 긴급형 트랜잭션 앵커 리스트에 작업이 존재하는 경우에 그 긴급형의 작업이 DB 태스크(50)로 전달되어 처리되도록 한다. 만약, 긴급형 트랜잭션 앵커 리스트에 작업이 존재하지 않는 경우에는 일반형 트랜잭션 앵커 리스트에서 일반형의 작업이 선택되어 DB 태스크(50)로 전달되어 처리되도록 한다. 하나의 작업 수행이 끝나면, 그 작업과 동일한 트랜잭션으로 분류되는 트랜잭션 앵커 리스트의 다음 번 작업이 수행되도록 함과 동시에 그 수행 완료된 작업 요청 노드는 당해 트랜잭션 앵커 리스트에 남아있지 않도록 삭제한다. 동일 우선순위 내에서 비선점 FIFO 방식은 긴급형 트랜잭션 앵커 리스트나 일반형 트랜잭션 앵커 리스트에 속하는 작업들을 처리함에 있어서 먼저 요청된 작업부터 선택하여 DB 태스크(50)로 전달하여 수행한다.
DB 태스크용 메일박스(40) 내에 적재된 작업 요청 노드들은 동일한 트랜잭션을 구성하는 것들끼리는 동일한 트랜잭션 ID를 가지면서 포인터에 의해 차례로 링크되어 있는데, 그 동일 트랜잭션의 작업들은 작업관리자(30)를 통해 DB 태스크(50)에 연속적으로 전달되어 수행되고, 동일한 트랜잭션 ID를 가진 작업들은 모두가 성공적으로 수행되었을 때에만 그 트랜잭션의 수행이 완료된 것으로 취급된다. 이처럼 트랜잭션 단위로 작업을 묶어서 작업요청을 하고, 만약 실패하면 롤백을 하여 데이터베이스의 무결성을 보장하도록 한다.
수행이 완료된 작업의 결과는 메모리 풀(70)의 특정 영역에 저장되어 있고, 그 특정 영역의 주소 정보와 해당 작업을 특정 하는 정보(예컨대 세션 ID와 트랜잭션 ID 등)가 작업 관리자(30)에게 전달된다. 작업 관리자(30)는 전달받은 작업 요청 노드에 포함된 세션 ID를 통해 결과를 전달받을 응용 태스크를 구분하여 각각의 메일 박스(60)로 전달한다. 메일 박스(60)에 적재되어 있는 작업 수행 결과는 나중에 그 작업의 수행을 요청한 응용 태스크(10)가 RTOS로부터 제어권을 얻게 되면 클라이언트 API를 사용하여 그 작업결과를 전달받아 사용한다.
DB 태스크(50)는 작업들을 처리함에 있어서 실시간 처리를 보장하기 위해 타임아웃(time out) 기능을 채용한다. 이 기능은 하나의 작업을 처리하는 데 소요되는 작업 제한 시간을 설정하여 그 작업 제한시간 내에 작업의 수행이 완료되지 못한 경우에는 수행중인 작업을 중지하고 작업 수행 시 변경한 데이터들을 원래의 데이터로 되돌리고 그 결과를 반환한다. 그런 다음, 다시 작업 관리자(30)를 통해 작업 스케줄링 과정을 수행하게 한 다음, 새로운 스케줄링에 따라 선택되는 작업이 수행되도록 한다.
타임아웃 외에도 각종 오류로 인해 수행이 정상적으로 완료되지 못하였을 경우 전달되는 결과는 오류가 발생한 원인을 나타내는 에러 메시지를 포함한다.
이상에서는 RTOS환경을 기반으로 하는 이동통신단말기에 설치된 데이터베이스를 예로 하여 본 발명을 설명하였지만, 이는 본 발명의 바람직한 실시예에 불과하고, 해당 기술분야의 숙련된 당업자는 하기의 특허청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있다. 예컨대, 본 발명은 RTOS 환경에만 국한되어 적용되는 것이 아니며, 이동통신단말기의 데이터베이스에만 한정적으로 적용되는 것도 아니고, 데이터베이스 관리시스템의 작업 스케줄링 방법이라면 그 적용에 있어서 제한을 받지 않고 널리 채용될 수 있을 것이다. 따라서 특허청구범위의 등가적인 의미나 범위에 속하는 모든 변화들은 전부 본 발명의 권리범위안에 속함을 밝혀둔다.
본 발명은 RTOS 환경인 이동통신단말기에 채용되는 데이터베이스에 관한 작업을 수행함에 있어서, 일반적인 작업의 경우에는 작업요청 순서에 따라 선입선출(First-In-First-Out, FIFO)방식을 사용하여 그 작업을 처리하지만, 긴급한 실시간 작업처리가 요구되는 작업의 경우에는 긴급형이라는 유형 설정을 통해 인터럽트를 발생시켜 이전에 수행 중이던 작업을 일시 정지 시킨 후 긴급형의 작업을 우선적으로 처리한 후 일시 정지된 작업의 수행을 재개함으로써 긴급한 작업 처리가 통상적으로 자주 발생하는 이동통신 단말기 환경에서도 작업의 실시간 처리를 언제나 보장할 수 있다. 이에 더하여, 타임아웃제를 채용함으로써 그러한 실시간 처리를 보다 완벽하게 보장해준다.
또한, DB 태스크에 작업처리를 요청할 때, 트랜잭션 단위로 스케줄링 하여 작업 처리가 이루어지도록 함으로써, 비록 제한된 자원을 가지는 이동통신단말기에서의 데이터베이스 작업을 수행함에 있어서도 데이터베이스 작업의 보편적 요구사항인 데이터베이스의 무결성을 완벽하게 보장해줄 수 있다.
나아가, 이동통신단말기에 저장매체로 채용되는 메모리 자원은 제한적인 점을 감안하여, 태스크들의 공유자원으로 활용되는 메모리 풀의 개념을 도입하고 있다. 메모리 풀을 채용함으로써, 응용 태스크가 DB 태스크에게 작업을 요청하거나 DB 태스크가 처리한 작업의 결과를 응용 태스크에게 전달할 때, 그 작업의 실제 데이터 또는 실제의 처리결과를 서로 주고받는 대신에 실제 작업 처리에 필요한 데이터나 실제 작업 처리결과가 저장되어 있는 메모리 풀의 주소만을 서로 주고받으면 되므로, 작업의 처리가 신속하게 이루어질 수 있고 제한된 메모리 자원을 매우 효율적으로 활용할 수 있다. 이러한 점은 메모리 자원이 제한적일 수밖에 없는 다른 응용기기들의 데이터베이스 작업에도 본 발명이 널리 적용될 수 있는 가능성을 제공한다.
도 1은 본 발명에 따른 데이터베이스 작업 스케줄링 방법으로서, 응용 태스크와 DB 태스크가 작업관리자를 매개로 하여 작업들이 실시간으로 트랜잭션 단위로 처리하도록 스케줄링 하는 것을 보여준다.
도 2와 3은 DB 태스크의 메일 박스의 구조를 보여준다.
도 4는 작업 관리자가 메일 박스에 작업을 전달하는 과정은 보여준다.
도 5는 작업 관리자가 일반형 또는 긴급형 트랜잭션 앵커 리스트에 작업을 추가(저장)하는 과정(도 4의 S22단계 또는 S24 단계)을 구체적으로 보여준다.
도 6은 작업 관리자가 메일 박스를 이용하여 작업 스케줄링을 하는 과정을 나타낸다.
*도면의 주요부분에 대한 부호의 설명*
10: 응용 태스크(Application task)
20: 클라이언트 APIs(Client APIs)
30: 작업 관리자(job manager)
40: DB 태스크의 메일박스(Mail Box)
50: DB 태스크(Database Task)
60: 응용태스크의 메일박스
70: 메모리 풀(Memory Pool)

Claims (11)

  1. 데이터베이스 관리시스템을 이용한 작업의 스케줄링 방법에 있어서,
    응용 태스크는 데이터베이스(DB) 태스크에 처리 요청할 작업의 트랜잭션 유형을 긴급형(hot type)과 일반형(normal type) 중 어느 한 가지로 구분하고, 상기 데이터베이스 관리시스템의 태스크들이 공유하는 메모리 풀에 요청하여 그 작업의 처리영역을 할당받은 다음, 그 작업의 처리를 클라이언트 API(Application Program Interface: 응용프로그램 인터페이스)를 통해 데이터베이스 작업 관리자에게 요청하는 제1단계;
    상기 작업 관리자는, 상기 응용 태스크가 처리 요청한 작업의 트랜잭션 유형을 파악하고 그 작업의 작업요청노드를 생성하여 상기 DB 태스크용 메일박스의 해당 트랜잭션 유형의 리스트에 트랜잭션 단위로 스케줄링 되도록 적재하는 제2단계; 및
    상기 작업관리자는 상기 DB 태스크용 메일박스에 적재되어 있는 작업요청노드들을 상기 DB 태스크에 하나씩 전달하여 트랜잭션 단위로 처리되도록 하되, 긴급형 트랜잭션에 해당하는 작업이 일반형 트랜잭션에 해당하는 작업에 비해 우선적으로 처리되고 동일한 트랜잭션 유형의 작업들 간에는 먼저 작업 요청순서에 따라 처리되도록 전달하는 제3단계;
    상기 DB 태스크는 작업의 처리 결과를 상기 메모리 풀에 할당하고 그 처리 결과가 할당된 메모리 풀의 주소를 상기 작업 관리자에게 전달하고, 상기 작업 관리자는 전달받은 그 메모리 풀의 주소를 그 작업의 처리를 요청한 응용 태스크의 메일 박스에 적재함으로써 추후 상기 실시간 운영체제로부터 제어권을 획득한 해당 응용 태스크가 자신의 메일박스에 적재되어 있는 처리결과를 이용할 수 있도록 하는 제4단계; 및
    상기 DB 태스크는 전달받은 작업을 주어진 작업제한시간 내에 수행을 완료하지 못한 경우에는 그 수행중인 작업을 중지하고 그 작업의 수행과정에서 변경한 데이터를 원래의 상태로 복귀시킨 뒤, 그 결과를 상기 작업관리자에게 반환한 다음, 다시 상기 작업 관리자를 통해 작업 스케줄링 과정을 거쳐 선택된 작업을 수행하는 제5단계를 구비하는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  2. 삭제
  3. 삭제
  4. 제 1항에 있어서, 상기 작업관리자는 상기 메일 박스에 적재한 작업요청노드의 트랜잭션 유형이, 긴급형인 경우에는 인터럽트 루틴을 호출하여 상기 DB 태스크로 하여금 그 작업을 기 수행중인 일반형 작업보다는 우선적이지만 기 수행중인 다른 긴급형 작업에 대해서는 비우선적으로 수행되도록 스케줄링을 하고, 일반형인 경우에는 그 작업이 선입선출원칙에 따라 처리되도록 스케줄링 하는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  5. 제 1항 또는 4항에 있어서, 작업 처리를 요청하고 그 작업의 처리 결과를 전달받기 위해 상기 응용 태스크와 상기 작업 관리자 간에 그리고 상기 작업 관리자와 상기 DB 태스크 간에 주고받는 정보는 해당 작업을 처리하는 데 필요한 실제 데이터와 그 작업의 처리 결과의 실제 데이터가 저장되어 있는 상기 메모리 풀의 주소 정보인 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  6. 제 1항에 있어서, 상기 응용 태스크가 상기 클라이언트 API를 통해 상기 작업 관리자에게 작업 처리를 요청할 때 전달하는 정보는 그 작업의 처리를 위해 수행해야 할 SQL문, 그 작업의 트랜잭션 유형 및 그 작업을 처리하는 데 적용될 제한시간(Time-out)의 정보가 저장되어 있는 상기 메모리 풀의 주소와, DB 태스크에서 수행방법을 결정하기 위한 동작코드인 프리미티브 리퀘스트(primitive request)를 포함하는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  7. 제 1항에 있어서, 상기 DB 태스크용 메일박스 내에 적재된 작업요청노드들은 동일한 트랜잭션을 구성하는 것들끼리는 동일한 트랜잭션 ID를 가지면서 포인터에 의해 차례로 링크되어 있고 상기 작업관리자를 통해 상기 DB 태스크에 전달될 때 동일한 트랜잭션 ID를 갖는 작업들은 연속적으로 전달되도록 하여 작업들을 트랜잭션 단위로 묶어서 수행되도록 하는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  8. 제 1항에 있어서, 상기 DB 태스크용 메일박스는, 상기 메모리 풀의 소정 영역에 마련되며, 작업의 트랜잭션 유형에 따라 해당 작업요청노드를 적어도 일반형과 긴급형으로 구분하여 적재하기 위한 일반형 트랜잭션 앵커 노드 리스트와 긴급형 트랜잭션 앵커 노드 리스트를 포함하는 구조를 가지며, 각 트랜잭션 앵커 노드 리스트는 트랜잭션 앵커 노드들의 연결 리스트이며, 각 트랜잭션 앵커 노드는 작업을 트랜잭션 단위로 수행하기 위한 정보를 가지는 작업요청노드들의 리스트, 작업 처리를 요청한 응용 태스크를 구별하기 위한 세션 ID, 처리 요청된 작업을 하나의 작업단위로 처리하기 위해 활용되는 트랜잭션 ID, 그리고 작업 처리 결과를 받을 응용 태스크의 메일박스에 대한 포인터를 포함하는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  9. 제 1항에 있어서, 각 작업요청노드를 상기 DB 태스크용 메일박스의 해당 트랜잭션 유형의 리스트에 트랜잭션 단위로 스케줄링 되도록 적재하는 것은,
    추가할 작업의 세션 ID와 트랜잭션 ID를 파악한 다음, 그 값을 해당 트랜잭션 앵커 리스트에 포함되어 있는 전체 트랜잭션 앵커 노드들의 세션 ID 및 트랜잭션 ID 정보와 차례로 비교 분석하여 추가할 작업의 세션 ID 및 트랜잭션 ID와 동일한 세션 ID 및 트랜잭션 ID를 갖는 트랜잭션 앵커 노드가 존재하는지를 판별하는 단계; 및
    만약 그러한 트랜잭션 앵커 노드가 존재하면 그 작업의 작업요청노드를 그 트랜잭션 앵커 노드에 추가하지만, 그렇지 못한 경우에는 새로운 트랜잭션 앵커 노드를 생성하여 당해 트랜잭션 앵커 리스트에 추가한 후 새롭게 생성된 그 트랜잭션 앵커 노드에 상기 작업요청노드를 추가하는 단계에 의해 수행되는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  10. 제 1항에 있어서, 처리 요청 된 작업에 대한 세션 ID와 트랜잭션 ID는 작업요청을 한 응용 태스크의 ID를 이용하여 부여되며, 특히 트랜잭션 ID를 부여함에 있어서 그 처리 요청된 작업들이 동일한 세션 ID를 가짐과 동시에 새로운 트랜잭션의 시작을 선언한 시점부터 그 트랜잭션의 정상적인 완료 또는 철회의 선언이 있기까지의 시간동안에 처리 요청된 것이면 동일한 트랜잭션 ID를 부여하고, 그렇지 않으면 새로운 트랜잭션 ID를 부여하는 것을 특징으로 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
  11. 제 1항에 있어서, 상기 스케줄링 방법은 실시간 운영체제(RTOS) 기반의 이동통신단말기에 설치된 데이터베이스 관리시스템에 대한 작업을 수행하는 경우에 적용되는 것을 특징으로 하는 데이터베이스 관리시스템을 이용하는 작업의 실시간 처리를 위한 스케줄링 방법.
KR1020050019567A 2005-03-09 2005-03-09 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 KR100509794B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050019567A KR100509794B1 (ko) 2005-03-09 2005-03-09 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법
US11/369,820 US20060206894A1 (en) 2005-03-09 2006-03-08 Method of scheduling jobs using database management system for real-time processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050019567A KR100509794B1 (ko) 2005-03-09 2005-03-09 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법

Publications (1)

Publication Number Publication Date
KR100509794B1 true KR100509794B1 (ko) 2005-08-23

Family

ID=36972512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050019567A KR100509794B1 (ko) 2005-03-09 2005-03-09 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법

Country Status (2)

Country Link
US (1) US20060206894A1 (ko)
KR (1) KR100509794B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769961A (zh) * 2021-03-11 2021-05-07 田继伟 网络系统的节点处理方法及装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144743A1 (en) * 2007-11-29 2009-06-04 Microsoft Corporation Mailbox Configuration Mechanism
US8732709B2 (en) * 2008-02-05 2014-05-20 Red Hat, Inc. Transaction management in a web service messaging environment
US7490327B1 (en) * 2008-05-15 2009-02-10 International Business Machines Corporation System and method for programmatic distributed transaction commit prioritization mechanism
KR20100116056A (ko) * 2009-04-21 2010-10-29 한국전자통신연구원 디지털 콘텐츠 저작권 보호를 위한 분산 필터링 장치 및 그 방법
CN101604437A (zh) * 2009-07-22 2009-12-16 阿里巴巴集团控股有限公司 账户批量实时处理系统及账户批量实时处理方法
US9007621B2 (en) * 2010-03-01 2015-04-14 Ricoh Company, Ltd. Method and device for printing a scheduled print job
TWI502532B (zh) * 2010-03-09 2015-10-01 Alibaba Group Holding Ltd Account batch instant processing system and account batch instant processing method
US9973566B2 (en) 2013-11-17 2018-05-15 Nimbix, Inc. Dynamic creation and execution of containerized applications in cloud computing
US8775576B2 (en) 2012-04-17 2014-07-08 Nimbix, Inc. Reconfigurable cloud computing
US10142417B2 (en) 2012-04-17 2018-11-27 Nimbix, Inc. System and method for managing heterogeneous data for cloud computing applications
US8989729B2 (en) * 2012-11-09 2015-03-24 Alcatel Lucent Network monitoring of user equipment events
CN104346215A (zh) * 2013-08-07 2015-02-11 中兴通讯股份有限公司 一种任务调度服务系统及方法
CN104574033A (zh) * 2013-10-17 2015-04-29 天津金邦建材有限公司 一种移动客户管理系统
US10733555B1 (en) * 2014-03-14 2020-08-04 Walmart Apollo, Llc Workflow coordinator
CN106605214B (zh) * 2014-07-30 2020-06-05 惠普发展公司,有限责任合伙企业 标识用于执行服务请求的多个资源
US9600333B1 (en) 2014-10-29 2017-03-21 Vantiv, Llc System and methods for transaction-based process management
US9928270B2 (en) 2015-06-25 2018-03-27 International Business Machines Corporation Aggregating and summarizing sequences of hierarchical records
CN105354087B (zh) * 2015-12-14 2018-10-23 交控科技股份有限公司 实时任务虚拟处理方法及装置
CN105426238B (zh) * 2016-01-17 2017-08-25 浙江维融电子科技股份有限公司 一种基于内存的设备后台指令管理系统的控制方法
CN113687941A (zh) 2016-06-13 2021-11-23 阿里巴巴集团控股有限公司 一种基于优先级的资源分配方法、装置和设备
US10235207B2 (en) * 2016-09-30 2019-03-19 Nimbix, Inc. Method and system for preemptible coprocessing
CN107291545B (zh) * 2017-08-07 2019-12-10 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备
CN110175201A (zh) * 2019-04-10 2019-08-27 阿里巴巴集团控股有限公司 业务数据处理方法、系统、装置及电子设备
JP6889204B2 (ja) * 2019-05-07 2021-06-18 株式会社東芝 コントローラ
CN112685184A (zh) * 2020-12-31 2021-04-20 广州极飞科技有限公司 分布式任务调度的方法、任务调度平台及任务执行器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026428A (en) * 1997-08-13 2000-02-15 International Business Machines Corporation Object oriented thread context manager, method and computer program product for object oriented thread context management
JP3832341B2 (ja) * 2001-12-27 2006-10-11 日本電気株式会社 メモリプール管理方式
US7552205B2 (en) * 2002-05-21 2009-06-23 Accenture Global Services Gmbh Distributed transaction event matching
US7480915B2 (en) * 2002-10-03 2009-01-20 Nokia Corporation WV-IMS relay and interoperability methods
US20050015766A1 (en) * 2003-07-01 2005-01-20 Brian Nash Time deadline based operating system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769961A (zh) * 2021-03-11 2021-05-07 田继伟 网络系统的节点处理方法及装置
CN112769961B (zh) * 2021-03-11 2021-10-15 苏万宝 网络系统的节点处理方法及装置

Also Published As

Publication number Publication date
US20060206894A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
KR100509794B1 (ko) 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법
US6904597B2 (en) Inter-thread communications between different components using double buffer
US8185903B2 (en) Managing system resources
US8826284B1 (en) Scalable task scheduling
US7316017B1 (en) System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system
EP0362105B1 (en) Method for processing program threads of a distributed application program by a host computer and an intelligent work station in an SNA LU 6.2 network environment
US5201049A (en) System for executing applications program concurrently/serially on different virtual machines
US20090165003A1 (en) System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
CN110431806B (zh) 分布式资源管理中低时延节点本地调度的系统和方法
US8387056B2 (en) Method for dynamically enabling the expansion of a computer operating system
US20100153957A1 (en) System and method for managing thread use in a thread pool
CN107153618A (zh) 一种内存分配的处理方法及装置
US8046759B2 (en) Resource allocation method and system
CN113641457A (zh) 容器创建方法、装置、设备、介质及程序产品
US5768572A (en) Timer state control optimized for frequent cancel and reset operations
CN111709723B (zh) Rpa业务流程智能处理方法、装置、计算机设备和存储介质
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN112817748A (zh) 一种基于安卓虚拟机处理任务的方法、计算机设备
CN113438295A (zh) 容器组地址分配方法、装置、设备及存储介质
CN114116149A (zh) 一种任务调度方法、装置、设备及介质
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
US7657590B2 (en) Load balancing system and method
CN113419839A (zh) 多类型作业的资源调度方法、装置、电子设备及存储介质
CN114675954A (zh) 任务调度方法及装置
CN115168040A (zh) 一种作业抢占调度方法、装置、设备和存储介质

Legal Events

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee