KR20040036993A - 시스템 타이머를 이용한 스케쥴링 장치 및 방법 - Google Patents

시스템 타이머를 이용한 스케쥴링 장치 및 방법 Download PDF

Info

Publication number
KR20040036993A
KR20040036993A KR1020020065598A KR20020065598A KR20040036993A KR 20040036993 A KR20040036993 A KR 20040036993A KR 1020020065598 A KR1020020065598 A KR 1020020065598A KR 20020065598 A KR20020065598 A KR 20020065598A KR 20040036993 A KR20040036993 A KR 20040036993A
Authority
KR
South Korea
Prior art keywords
information
start time
request information
scheduling
job
Prior art date
Application number
KR1020020065598A
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 KR1020020065598A priority Critical patent/KR20040036993A/ko
Publication of KR20040036993A publication Critical patent/KR20040036993A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 스케쥴링 장치 및 방법에 관한 것으로, 특히 시스템 타이머를 이용한 스케쥴링 장치 및 방법에 관한 것이다.
본 발명은, 특정 시각에 특정 작업을 수행하는 쓰레드를 클라이언트 개념으로 하여 스케쥴링 매니져부를 따로 두고, (클라이언트)쓰레드가 시작시각 정보와 상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하도록 하며, 스케쥴링 매니져부는 작업별 저장되는 복수개의 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머를 설정하며, 상기 시스템 타이머에서 카운트 완료 정보가 생성되면 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 것을 특징으로 한다.

Description

시스템 타이머를 이용한 스케쥴링 장치 및 방법{APPARATUS AND METHOD FOR SCHEDULING USING SYSTEM TIMER}
본 발명은 스케쥴링 장치 및 방법에 관한 것으로, 특히 시스템 타이머를 이용한 스케쥴링 장치 및 방법에 관한 것이다.
먼저, 본 발명에서 스케쥴링 장치라 함은 오퍼레이팅 시스템(Operating System;이하 "OS"라 한다.)에서 제공하는 시스템 타이머를 이용하여, 특정 시각에 특정 작업이 수행되도록 스케쥴링하는 장치를 말한다.
전자 제품의 동작에는 스케쥴링에 기반하여 이루어지는 것이 많다. 예를 들어, 현재 시간을 알려준다던지, 비디오를 재생할 때 "PLAY"라는 OSD를 3초동안 디스플레이 한다던지, 녹화 시간을 예약한다던지 하는 동작들은 타임 스케쥴링에 의해 이루어지는 것이다. 이러한 특정 시각에 특정 작업이 수행되도록 하는 스케쥴링 기능은 OS가 제공되는 전자 제품에서는, OS가 제공하는 시스템 타이머를 이용하여구현된다.
한편, 전자 제품의 가격 경쟁력을 위해 가능한 최소 사양의 하드웨어와 저수준의 오퍼레이팅 시스템(Operating System;이하 "OS"라 한다.)을 사용하는 경우가 많다. 저수준의 OS의 예로써, 인베디드 리눅스(Embedded Linux)등이 있으며, 리얼-타임(Real Time) OS도 저수준의 OS에 해당한다.
저수준의 OS에서 제공하는 시스템 타이머는 단일의 카운트 설정만이 가능하므로, 한 번에 한 개의 프로세스(본 발명에 사용되는 "프로세스"란 용어는 특정 작업을 위해 한 개 이상의 쓰레드가 실행되고 공유되는 단일한 어드레스 공간 및 그 쓰레드들을 위한 시스템 자원이 할당되는 프로그램 실행 환경을 말한다.)에 대하여만, 수행 예정되는 시작시각을 스케쥴링 할 수가 있다.
따라서, 가격 경쟁력을 위해 저수준의 OS를 채택한 전자 제품에서는 효율적인 스케쥴링 기술이 요구된다. 최소 사양의 환경속에서도 더 많은 고급 기능, 본 발명에서는 복잡한 스케쥴링 기능이 제공되는 전자 제품이 더 많은 경쟁력을 가질 수가 있기 때문이다. 예약 녹화를 많이 하게 되는 개인 비디오 녹화기(Personal Video Recorder:이하 "PVR"이라 한다.) 또한 예외가 될 수 없다.
본 발명은 이러한 상황에서 도출된 것으로, 저수준의 시스템 타이머를 사용하면서도 효율적으로 스케쥴링을 수행할 수 있는 스케쥴링 장치 및 방법을 제공하는 것에 그 목적이 있다.
도 1은 본 발명의 스케쥴링 장치의 구성을 도시한 도면.
도 2는 본 발명에 따른 스케쥴링 방법을 도시한 흐름도.
상기 목적을 달성하기 위한 본 발명의 일 양상에 의하면, 특정 시각에 특정 작업을 수행하는 쓰레드(본 발명에서 사용되는 "쓰레드"란 용어는 하나의 프로그램에서 동시에 실행되는 작업들 중 하나를 의미하는 것으로, 쓰레드들은 전역변수들과 같은 어드레스 공간과 file descriptor, signal handler와 같은 시스템 자원을 공유하는 것을 특징으로 한다.)를 클라이언트 개념으로 하여 스케쥴링 매니져부를 따로 두고, (클라이언트)쓰레드가 시작시각 정보와 상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하도록 하며, 스케쥴링 매니져부는 작업별 저장되는 복수개의 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머를 설정하며, 상기 시스템 타이머에서 카운트 완료 정보가 생성되면 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 것을 특징으로 한다.
이에 따라, 저수준의 시스템 타이머를 사용하면서도 효율적으로 스케쥴링을 수행할 수 있게 된다.
나아가, 본 발명의 보조적인 양상에 따르면, 상기 클라이언트 쓰레드부가, 상기 생성한 작업처리 요청정보들 중에서, 어느 한 정보를 삭제해 줄 것을 요청하는 정보 및/또는 어느 한 정보의 시작시각을 변경해 줄 것을 요청하는 정보를 더 생성하며, 상기 스케쥴링 매니져부가, 상기 삭제 요청 정보와 변경 요청 정보에 대응하여, 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하는 것을 특징으로 한다.
이에 따라, 작업을 예약하는 것 뿐만 아니라 이미 예약된 작업을 변경하거나 삭제하는 데에도 본 발명을 적용시킬 수가 있게 된다.
더 나아가 본 발명의 보조적인 양상에 따르면, 상기 스케쥴링 매니져부가, 상기 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하는 것을 특징으로 한다.
이에 따라, 스케쥴링 매니져부는 원하는 특정 작업처리 요청정보를 신속하게 찾아낼 수가 있게 되며, CPU 타임을 효율적으로 이용할 수가 있게 되어 저성능의 CPU를 채택할 수가 있어 비용 절감의 효과가 있다.
더 나아가 본 발명의 보조적인 양상에 따르면, 상기 스케쥴링 매니져부가, 상기 시스템 타이머에서 카운트 완료 정보가 생성될 때, 해당되는 가장 빠른 작업의 시작 시각이 현재 시각보다 임계치 이상으로 미래의 시각에 해당하는지를 검사하고, 임계치 이상으로 시각차가 나는 경우 상기 시작 시각과 현재 시각의 차이를 고려하여, 해당 작업을 위해 상기 시스템 타이머를 재설정하는 것을 특징으로 한다.
이에 따라, 저수준의 타이머를 사용함으로써 발생될 수 있는 시각의 오차를 자동으로 보정하여 작업 예약을 할 수 있으므로, 제품의 신뢰성을 확보할 수가 있다.
더 나아가 본 발명의 보조적인 양상에 따르면, 상기 클라이언트 쓰레드부가, 적어도 두 개 이상이며, 상기 스케쥴링 매니져부가, 상기 클라이언트 쓰레드부들중의 어느 한 클라이언트 쓰레드부에서 생성된 작업처리 요청정보를 처리하는 동안에는 다른 클라이언트 쓰레드부들의 접근을 차단하는 것을 특징으로 한다.
이에 따라, OS가 제공되는 전자 제품에서 복수개의 쓰레드가 동시에 동작하게 되는 경우에도, 본 발명의 스케쥴링 매니져는 각 클라이언트 쓰레드의 요청을 안정적으로 수용하여 스케쥴링을 할 수가 있게 된다.
본 발명의 이와 같은, 또 다른 추가적인 양상은 첨부된 도면을 참조하여 후술하는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.
도 1은 본 발명의 스케쥴링 장치의 구성을 도시한 도면이다.
상기 도 1에 도시된 바와 같이, 본 발명의 스케쥴링 장치는, 오퍼레이팅 시스템(Operating System)에서 제공하는 시스템 타이머를 이용하여, 특정 시각에 특정 작업이 수행되도록 스케쥴링하는 장치에 있어서, 어느 한 작업의 수행 시작시각에 대응하는 카운트값을 설정하고, 해당 시간이 카운트되면 카운트 완료 정보를 생성하는 시스템 타이머부(101);와, 시작시각 정보/상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하는 클라이언트 쓰레드부(107);와, 상기 작업처리 요청정보를 작업별로 저장하는 요청정보 저장부(105);와, 상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 상기 시스템 타이머를 설정하며, 상기 시스템 타이머에서 카운트 완료 정보가 생성되면 해당 작업처리 요청정보에포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 스케쥴링 매니져부(103);를 포함하여 구성되는 것을 특징으로 한다.
시스템 타이머(101)는 OS나 커널(Kernel)등 시스템에서 제공하는 기초적인 타이머이다. 시스템 타이머(101)는 해당 시간이 카운트 되면 카운트 완료 정보를 생성하는데, 한 번에 한 개의 카운트값만을 설정할 수가 있는 것이며, 또한 시스템 타이머(101)는 설정된 카운트값을 해제할 수 있는 기능 정도만을 가진다.
시스템 타이머(101)가 카운트 완료한 사실을 스케쥴링 매니져(103)에서 인식할 수 있어야 하는데(참고적으로, 종래에는 해당 쓰레드가 인식해야함.), 구체적 구현 방법에 대해 설명하면, 폴링(Polling) 방식에서 자주 이용되는 특정한 글로벌 변수(Global Variable)과 같은 것을 설정하여, 스케쥴링 매니져(103)가 정보를 읽어가기를 기대하는 소극적인 방법이 있다. 또는 상기 폴링 방식과는 반대로 CPU를 최소한으로 점유하면서 효율적으로 스케쥴링 매니져(103)가 카운트 완료한 사실을 알 수 있도록 하는 방법이 있다.
예를 들어, 시스템 타이머(101)가 인터럽트나 시그널을 사용하여 통신하는 것이다. 이를 위해서 스케쥴링 매니져(103)에는 인터럽트 핸들러가 등록되어야 한다. 통신 개수가 제한되므로, 많은 언터럽트/시그널을 사용할 수 없는 저급 시스템에서는 사용하기 곤란할 수도 있다. 다음으로, IPC(Inter Process Communication)를 이용하는 것으로 파이프 라인등과 같은 파일 I/O를 사용하여 통신하는 것이다. 여기서 사용되는 파일 I/O는 SUSPENDED WAITING 기능이 지원되어야 한다. 다음으로, LOCK/UNLOCK 기능을 이용하여 통신하는 것이다. 즉, 목표 쓰레드(본 발명에서는 스케쥴링 매니져(103))가 Lock된 상태에서 기다리고 있으면, 소오스 쓰레드에서 송신하고자 하는 정보(Variable등)으로서, 본 발명에서는 타이머가 완료된 사실)를 목표 쓰레드가 읽을 수 있는 곳(상호 배타적으로 소유하는)에 설정한 다음 Unlock을 하여 목표 쓰레드가 깨어나서 그 정보를 읽을 수 있게 하는 방법으로 통신한다.
클라이언트 쓰레드(107)는 PVR등과 같은 전자 제품의 구동 및 기능에 관련하는 쓰레드 중, 특정 시간에 특정한 작업을 수행해야하는 코드들을 의미한다. 본 발명에 따라, 클라이언트 쓰레드(107)는 특정한 작업이 실행되어야 하는 시작시각 정보와 상기 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성한다. 여기서 상기 작업이란, 예를 들어, 현재 시간을 알려준다던지, 비디오를 재생할 때 "PLAY"라는 OSD를 3초동안 디스플레이 한다던지, 녹화 시간을 예약한다던지 하는 것과 같이 타임 스케쥴링에 의해 이루어지는 작업을 말한다. 또한, 여기서 상기 작업을 수행하기 위해 필요한 정보란, 구체적 작업 절차가 기술되어 있는 함수의 포인터 정보 및 함수의 레퍼런스 정보/또는 오브젝트 정보가 될 수 있다.
클라이언트 쓰레드(107)가 작업처리 요청정보를 생성한 사실을 스케쥴링 매니져(103)에서 인식할 수 있어야 하는데, 상술한 시스템 타이머(101)와 스케쥴링 매니져(103)간 통신 방법과 동일하게 구현될 수가 있다.
작업처리 요청정보 저장부(105)는 상기 작업처리 요청정보를 작업별로 저장한다. 작업처리 요청정보 저장부(105)는 큐(QUEUE)로 구현될 수가 있다.
스케쥴링 매니져(103)는 상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머(101)를 설정하며, 시스템 타이머(101)에서 카운트 완료 정보가 생성되면 상기 가장 빠른 작업에 해당되는 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행한다. 이때, 상기 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보는 구체적 작업 절차가 기술되어 있는 함수의 포인터 정보 및 REFERENCE 정보/또는 오브젝트 정보가 될 수 있다. 상기 함수의 포인터 정보를 사용하는 경우는 "C"언어로 프로그램을 작성하는 경우에 FUNCTION POINTER 및 OBJECT 정보(struct를 이용하여 구현)를 사용하는 것에 해당하고, "C++"언어로 프로그램을 작성하는 경우에는 FUNCTION POINTER 및 FUNCTION REFERENCE/또는 OBJECT 정보(class를 이용하여 구현)를 사용하는 것에 해당한다.
한편, 스케쥴링 매니져(103)가 특정 시각에 수행되어져야 하는 특정 작업을 수행하는데, 클라이언트인 쓰레드(107)의 성격에 따라서 작업 수행 및 수행 결과 보고를 해줄 필요가 있을 것이다. 이런 경우에는 스케쥴링 매니져(103)가 수행하는 상기 구체적 작업 절차에 쓰레드(107)에 보고하는 동작이 기술되어 있으면 된다.
본 발명의 실시예에서, 클라이언트 쓰레드부(107)가 상기 생성한 작업처리 요청정보들 중에서, 어느 한 정보를 삭제해 줄 것을 요청하는 정보 및/또는 어느 한 정보의 시작시각을 변경해 줄 것을 요청하는 정보를 더 생성하며, 스케쥴링 매니져부(103)가 상기 삭제 요청 정보와 변경 요청 정보에 대응하여, 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하는 것을 특징으로 한다. 이러한 구성적 특징은 PVR등과 같이 사용자의 조작에 의해서 녹화 예약을 취소하거나 녹화 예약 시간을 변경하는 기능이 필요한 전자 제품에서 적용될 수 있는 것이다.
상기 삭제 요청 정보나 변경 요청 정보에 대응하여, 스케쥴링 매니져부(103)가 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하면, 상기 삭제/변경의 동작에 의해 시작시각이 가장 빠른 작업이 다른 것으로 바뀔 수가 있을 것이다. 따라서, 상기 삭제/변경 동작을 한 후에는, 스케쥴링 매니져부(103)는 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업에 해당하는 작업처리 요청정보를 찾고, 해당 시작시각 카운트값으로 시스템 타이머(101)를 재설정한다. 물론, 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 해당 작업을 수행한 후에도, 시작시각이 가장 빠른 작업이 다른 것으로 바뀐다. 따라서, 스케쥴링 매니져부(103)는 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업에 해당하는 작업처리 요청정보를 찾고, 해당 시작시각 카운트값으로 시스템 타이머(101)를 재설정한다. 상기 작업별로 저장된 작업처리 요청정보들 중에서, 가장 빠른 시작시간에 해당하는 작업이 수행되는 경우에는, 이 작업처리 요청정보는 이제 필요가 없으므로, 스케쥴링 매니져부(103)는 작업처리 요청정보 저장부(105)에서 상기 해당되는 작업처리 요청정보를 삭제한다.
본 발명의 실시예에 따라서, 스케쥴링 매니져부(103)는 작업처리 요청정보 저장부(105)에 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하는 것을 특징으로 한다. 스케쥴링 매니져부(103)가 작업처리 요청정보들을 시작시간별로 정렬하게 되면, 원하는 작업처리 요청정보를 신속하게 찾아낼 수가 있게 되며, CPU타임을 효율적으로 이용할 수가 있게 되어 비용 절감의 효과가 있다. 구체적으로, 시작시간별로 정열하는 경우, 삽입/변경 작업이 없는 가정하에서는 항상 맨 앞의 것이 가장 빠른 시작시각인 작업요청 정보가 된다. 실제 제품에서는 삽입/삭제/변경의 작업보다 정보의 추출 작업이 많기 때문에 정렬하게 되면 CPU 타임을 훨씬 효율적으로 활용할 수가 있다. 또한, 정열 동작의 시점도 삽입/변경 작업이 이루어진 후가 바람직하다. "C++" 언어의 STANDARD TEMPLATE LIBRARY에서의 multiset이 한 예이다. 물론, 가장 빠른 시작시간에 해당하는 작업이 수행되는 경우에서 해당 작업처리 요청정보를 찾는 시점을 기준으로 하여 정열을 할 수도 있다. 이는 삽입/변경/삭제가 정보의 추출 작업보다 빈번할 때 효과가 있다.
본 발명의 실시예에서, 스케쥴링 매니져부(103)가 시스템 타이머(101)에서 카운트 완료 정보가 생성되는 경우, 해당되는 가장 빠른 작업의 시작 시각이 현재 시각보다 임계치 이상으로 미래의 시각에 해당하면, 상기 시작 시각과 현재 시각의 차이를 고려하여, 상기 시스템 타이머를 재설정하는 것을 특징으로 한다. 이러한 동작이 필요한 이유는 저수준의 타이머를 사용함으로써 발생될 수 있는 시각의 오차를 자동으로 보정하여 제품의 신뢰성을 확보하는데 있다.
구체적으로 설명하면, 시스템 타이머(101)에서 카운트 완료 정보가 생성될 때의 현재 시각보다 상기 카운트 완료 정보에 기록된 시작시각에 차이가 생길 수가 있다. 예를 들어, 오후 3시 10분에 녹화 예약이 되어 있는데, 시스템 타이머(101)의 카운트 완료 정보 생성 시점이 임계 시간차이인 3초보다 더 큰 오후 3시 9분인 경우, 스케쥴링 매니져(109)는 1분 동안의 타이머값으로 시스템 타이머(101)를 재설정 하는 것이다.
본 발명의 실시예에서, 클라이언트 쓰레드부(107)가 적어도 두 개 이상이며, 스케쥴링 매니져부(103)는 클라이언트 쓰레드부(107)들 중의 어느 한 클라이언트 쓰레드부에서 생성된 작업처리 요청정보를 처리하는 동안에는 다른 클라이언트 쓰레드부들의 접근을 차단하는 것을 특징으로 한다.
클라이언트 쓰레드부(107)가 복수개인 경우, 어느 한 클라이언트 쓰레드부(107)에 의해 자원 및 상태가 바뀌고 있는 도중에, 다른 클라이언트 쓰레드부(107)가 상기 자원 및 상태로 접근하는 현상이 생길 수가 있다. 이런 현상이 생기는 경우, 시스템은 정의되지 않은 상태에 빠질 수가 있다. 따라서, 스케쥴링 매니져(103)는 클라이언트 쓰레드부(107)의 모든 요청, 보고등 중간 간섭이 예상되는 시점을 전후로 LOCKING/UNLOCKING 기능을 사용하여 CRITICAL REGION을 보존하도록 한다. 상기 LOCKING/UNLOCKING 기능에는 MUTEX, SEMAPHORE등이 있다.
도 2는 본 발명에 따른 스케쥴링 방법을 도시한 흐름도이다. 이하, 상기 도 1을 참조하여 설명하기로 한다.
본 발명에 따른 스케쥴링 방법은, 클라이언트 쓰레드부(107)가 시작시각 정보/상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하는 제 1 단계;와, 작업처리 요청정보 저장부(105)가 상기 작업처리 요청정보를 작업별로 저장하는 제 2 단계;와, 스케쥴링 매니져부(103)가 상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머(101)를 설정하는 제 3 단계;와, 시스템 타이머(101)에서 카운트 완료 정보가 생성되면, 스케쥴링 매니져부(103)가 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 제 4 단계;를 포함하여 구성되는 것을 특징으로 한다.
본 발명의 동작 순서를 설명하는데 있어, 관점의 차이가 있을 수 있지만, 모든 동작은 클라이언트 쓰레드부(107)가 시작시각 정보/상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하는 것에서 시작된다고 볼 수 있다. 이러한 작업처리 요청정보가 생성되면(203, 205), 스케쥴링 매니져(103)가 이를 인지하고, 상기 생성된 작업처리 요청정보를 작업처리 요청정보 저장부(105)에 저장한다(211). 상기 저장하는 동작이 이루어져, 예컨대 복수회 이루어져, 복수개의 작업처리 요청정보가 저장되어 있는 경우에는 클라이언트 쓰레드부(107)에서 변경/삭제 요청 정보도 생성될 것이다(203, 205). 그러면, 스케쥴링 매니져(103)는 상기 저장되어 있는 작업처리 요청정보들 중에서, 해당하는 작업처리 요청정보를 찾아서 변경/삭제 작업을 수행한다(207). 상기 새로운 작업처리 요청정보의 저장(추가) 작업이나, 기존의 작업처리 요청정보의 변경/삭제 작업이 끝나면(207, 211), 스케쥴링 매니져(103)는 상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머(101)를 설정한다(209).
상기 삭제/변경/추가 요청 정보에 대응하여, 스케쥴링 매니져부(103)가 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하거나 새로운 요청 정보를 저장하면, 상기 동작에 의해 시작시각이 가장빠른 작업이 다른 것으로 바뀔 수가 있을 것이다. 따라서, 상기 삭제/변경/신규저장 동작을 한 후에는(207, 211), 스케쥴링 매니져부(103)는 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업에 해당하는 작업처리 요청정보를 찾고, 해당 시작시각 카운트값으로 시스템 타이머(101)를 재설정한다(209).
한편, 어느 한 작업의 수행 시작시각에 대응하는 카운트가 완료되면, 시스템 타이머부(101)는 카운트 완료 정보를 생성하게 되는데(213), 스케쥴링 매니져(103)가 이를 인지하고, 시작시각이 가장 빠른 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행한다(227).
이때, 상기 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보는 구체적 작업 절차가 기술되어 있는 함수의 포인터 정보 및 REFERENCE 정보/또는 오브젝트 정보가 될 수 있다. 상기 함수의 포인터 정보를 사용하는 경우는 "C"언어로 프로그램을 작성하는 경우에 FUNCTION POINTER 및 OBJECT 정보(struct를 이용하여 구현)를 사용하는 것에 해당하고, "C++"언어로 프로그램을 작성하는 경우에는 FUNCTION POINTER 및 FUNCTION REFERENCE/또는 OBJECT 정보(class를 이용하여 구현)를 사용하는 것에 해당한다.
물론, 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 해당 작업을 수행한 후에도, 시작시각이 가장 빠른 작업이 다른 것으로 바뀐다. 따라서, 스케쥴링 매니져부(103)는 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업에 해당하는 작업처리 요청정보를 찾고, 해당시작시각 카운트값으로 시스템 타이머(101)를 재설정한다(217).
한편, 시스템 타이머부(101)가 카운트 완료 정보를 생성하는 의미는 시작시각이 가장 빠른 어느 작업이 수행되어야 할 시점을 알려주는 것이고, 상기 카운트 완료 정보가 생성되면 상기 해당하는 작업이 수행되므로, 상기 시작시각이 가장 빠른 작업에 해당하는 작업처리 요청정보는 필요가 없게 된다. 따라서, 작업이 수행되는 해당 작업처리 요청정보를 작업처리 요청정보 저장부에서 삭제한다(221).
본 발명의 실시예에서, 스케쥴링 매니져부(103)는 작업처리 요청정보 저장부(105)에 상기 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하는 것을 특징으로 한다(209, 217). 상기 정렬 동작이 수행되는 시점은 신규의 작업처리 요청정보가 생성되거나, 기존시각을 변경등과 같이 작업처리 요청정보 저장부(105)의 정렬 상태를 깨뜨리는 작업을 해야하는 때가 된다.
한편, 본 발명의 실시예에서, 시스템 타이머(101)에서 카운트 완료 정보가 생성되면(213), 스케쥴링 매니져(109)는 해당되는 가장 빠른 작업의 시작시각과 현재 시각을 비교하여, 시작 시각에 오류가 있는지를 검사한다(215). 상기 가장 빠른 작업의 시작시각과 현재 시각이 임계치 이상으로 시각차이가 나면, 스케쥴링 매니져(109)는 그 시각차이 만큼을 시스템 타이머(101)에 재설정한다(217).
219단계는 본 스케쥴링 방법으로 프로그래밍하면서 창작되어진 단계이다. 219단계의 의미는, 시작시각과 현재 시각에 차이가 났지만, 215, 217 단계를 거치면서 시간이 흘러, 그 시작시각과 현재 시각이 임계치 이내로 근접해 지는 경우가 발생되면, 시스템 타이머(101)로부터 카운트 완료 정보를 기다리지 않고 바로 작업을 수행할 수 있도록 하기 위함이다.
한편, 시작시각이 가장 빠른 작업을 수행하게 되어, 해당 작업처리 요청정보를 작업처리 요청정보 저장부(105)에서 삭제하는 경우(221)에, 상기 작업이 반복주기를 가지는 것이면(223), 다음 주기의 시각에 해당하는 영역(작업처리 요청정보 저장부(105))에 상기 작업에 해당하는 작업처리 요청정보를 다시 생성하여 저장한다(225). 상기 225 단계는 상기 211 단계와 유사하다. 한편, 상기 211 단계에서, 새로 생성된 신규의 작업처리 요청정보의 시작시각이 현재 시각에 해당하거나 아니면 근접한 과거시각에 해당하면, 불필요한 절차를 수행하지 않고, 상기 작업처리 요청정보를 작업처리 요청정보 저장부(105)에 저장하지 않고 바로 예약된 작업을 수행할 수가 있다.
상술한 바와 같이, 본 발명에 따르면, 오퍼레이팅 시스템(Operating System)에서 제공하는 시스템 타이머를 이용하여, 특정 시각에 특정 작업이 수행되도록 스케쥴링하는 기술분야에서, 저수준의 시스템 타이머를 사용하면서도 효율적으로 스케쥴링을 수행할 수 있게 된다.
또한, 작업을 예약하는 것뿐만 아니라 이미 예약된 작업을 변경하거나 삭제하는 데에도 본 발명을 적용시킬 수가 있게 되며, 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하므로, 원하는 특정 작업처리 요청정보를 신속하게 찾아낼 수가 있게 되며, CPU 타임을 효율적으로 이용할 수가 있게 되어 저성능의 CPU를 채택할 수가 있어 비용 절감의 효과가 있다.
또한, 저수준의 타이머를 사용함으로써 발생될 수 있는 시각의 오차를 자동으로 보정하여 작업 예약을 할 수 있으므로, 제품의 신뢰성을 확보할 수가 있으며, OS가 제공되는 전자 제품에서 복수개의 쓰레드가 동시에 동작하게 되는 경우에도, 본 발명의 스케쥴링 매니져는 각 클라이언트 쓰레드의 요청을 안정적으로 수용하여 스케쥴링을 할 수가 있게 된다.

Claims (14)

  1. 오퍼레이팅 시스템(Operating System)에서 제공하는 시스템 타이머를 이용하여, 특정 시각에 특정 작업이 수행되도록 스케쥴링하는 장치에 있어서,
    어느 한 작업의 수행 시작시각에 대응하는 카운트값을 설정하고, 해당 시간이 카운트되면 카운트 완료 정보를 생성하는 시스템 타이머부;
    시작시각 정보/상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하는 클라이언트 쓰레드부;
    상기 작업처리 요청정보를 작업별로 저장하는 스토리지부; 및
    상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 상기 시스템 타이머를 설정하며, 상기 시스템 타이머에서 카운트 완료 정보가 생성되면 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 스케쥴링 매니져부;
    를 포함하여 구성되는 것을 특징으로 하는 스케쥴링 장치.
  2. 청구항 1에 있어서,
    상기 클라이언트 쓰레드부가,
    상기 생성한 작업처리 요청정보들 중에서, 어느 한 정보를 삭제해 줄 것을 요청하는 정보 및/또는 어느 한 정보의 시작시각을 변경해 줄 것을 요청하는 정보를 더 생성하며,
    상기 스케쥴링 매니져부가,
    상기 삭제 요청 정보와 변경 요청 정보에 대응하여, 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하는 것을 특징으로 하는 스케쥴링 장치.
  3. 청구항 2에 있어서,
    상기 스케쥴링 매니져부가,
    상기 작업별로 저장된 작업처리 요청정보들 중에서, 가장 빠른 시작시간에 해당하는 작업이 수행되는 경우에 해당 요청정보를 상기 스토리지부에서 삭제하는 것을 특징으로 하는 스케쥴링 장치.
  4. 청구항 3에 있어서,
    상기 스케쥴링 매니져부가,
    상기 스토리지부에 상기 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하는 것을 특징으로 하는 스케쥴링 장치.
  5. 청구항 4에 있어서,
    상기 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보가,
    구체적 작업 절차가 기술되어 있는 함수의 포인터 정보 및 함수 레퍼런스 정보/또는 오브젝트 정보인 것을 특징으로 하는 스케쥴링 장치.
  6. 청구항 5에 있어서,
    상기 스케쥴링 매니져부가,
    상기 시스템 타이머에서 카운트 완료 정보가 생성될 때, 해당되는 가장 빠른 작업의 시작 시각이 현재 시각보다 임계치 이상으로 미래의 시각에 해당하면, 상기 시작 시각과 현재 시각의 차이 만큼, 상기 시스템 타이머를 재설정하는 것을 특징으로 하는 스케쥴링 장치.
  7. 청구항 6에 있어서,
    상기 클라이언트 쓰레드부가,
    적어도 두 개 이상이며,
    상기 스케쥴링 매니져부가,
    상기 클라이언트 쓰레드부들 중의 어느 한 클라이언트 쓰레드부에서 생성된 요청정보를 처리하는 동안에는 다른 클라이언트 쓰레드부들의 접근을 차단하는 것을 특징으로 하는 스케쥴링 장치.
  8. 오퍼레이팅 시스템(Operating System)에서 제공하는 시스템 타이머를 이용하여, 특정 시각에 특정 작업이 수행되도록 스케쥴링하는 방법에 있어서,
    클라이언트 쓰레드부가 시작시각 정보/상기 시작시각에 해당하는 작업을 수행하기 위해 필요한 정보를 포함하는 작업처리 요청정보를 생성하는 제 1 단계;
    스토리지부가 상기 작업처리 요청정보를 작업별로 저장하는 제 2 단계;
    스케쥴링 매니져부가 상기 저장된 작업처리 요청정보들의 각 시작시각을 검사하여 시작시각이 가장 빠른 작업의 시작시각 카운트값으로 시스템 타이머를 설정하는 제 3 단계; 및
    상기 시스템 타이머에서 카운트 완료 정보가 생성되면, 상기 스케쥴링 매니져부가 해당 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보를 사용하여 작업을 수행하는 제 4 단계;
    를 포함하여 구성되는 것을 특징으로 하는 스케쥴링 방법.
  9. 청구항 8에 있어서,
    상기 클라이언트 쓰레드부가 상기 생성한 작업처리 요청정보들 중에서, 어느 한 정보를 삭제해 줄 것을 요청하는 정보 및/또는 어느 한 정보의 시작시각을 변경해 줄 것을 요청하는 정보를 생성하는 제 5 단계; 및
    상기 스케쥴링 매니져부가 상기 삭제 요청 정보와 변경 요청 정보에 대응하여, 상기 작업별로 저장된 작업처리 요청정보들 중에서 해당 정보를 삭제하거나 그 시작시간을 변경하는 제 6 단계;
    를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  10. 청구항 9에 있어서,
    상기 스케쥴링 매니져부가 상기 작업별로 저장된 작업처리 요청정보들 중에서, 가장 빠른 시작시간에 해당하는 작업이 수행되는 경우에 해당 요청정보를 상기 스토리지부에서 삭제하는 제 7 단계;
    를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  11. 청구항 10에 있어서,
    상기 스케쥴링 매니져부가 상기 스토리지부에 상기 작업별로 저장된 작업처리 요청정보들을 시작시간별로 정렬하는 제 8 단계;
    를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  12. 청구항 11에 있어서,
    상기 작업처리 요청정보에 포함된 작업 수행을 위해 필요한 정보가,
    구체적 작업 절차가 기술되어 있는 함수의 포인터/레퍼런스 정보 및/또는 오브젝트 정보인 것을 특징으로 하는 스케쥴링 방법.
  13. 청구항 12에 있어서,
    상기 시스템 타이머에서 카운트 완료 정보가 생성되면, 해당되는 가장 빠른 작업의 시작 시각이 현재 시각보다 임계치 이상으로 미래의 시각에 해당하면, 상기 스케쥴링 매니져부가 상기 시작 시각과 현재 시각의 차이를 고려하여, 상기 시스템 타이머를 재설정하는 제 9 단계;
    를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  14. 청구항 13에 있어서,
    상기 클라이언트 쓰레드부가 적어도 두 개 이상이며,
    상기 스케쥴링 매니져부가, 상기 클라이언트 쓰레드부들 중의 어느 한 클라이언트 쓰레드부에서 생성된 요청정보를 처리하는 동안에는 다른 클라이언트 쓰레드부들의 접근을 차단하는 제 10 단계;
    를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
KR1020020065598A 2002-10-25 2002-10-25 시스템 타이머를 이용한 스케쥴링 장치 및 방법 KR20040036993A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020065598A KR20040036993A (ko) 2002-10-25 2002-10-25 시스템 타이머를 이용한 스케쥴링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020065598A KR20040036993A (ko) 2002-10-25 2002-10-25 시스템 타이머를 이용한 스케쥴링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20040036993A true KR20040036993A (ko) 2004-05-04

Family

ID=37335562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020065598A KR20040036993A (ko) 2002-10-25 2002-10-25 시스템 타이머를 이용한 스케쥴링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20040036993A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809294B1 (ko) * 2006-03-10 2008-03-07 삼성전자주식회사 가상 머신에서 스레드 스케줄링을 수행하는 장치 및 그방법
WO2013157765A1 (ko) * 2012-04-19 2013-10-24 에스케이씨앤씨 주식회사 정규 표현식을 이용한 작업 스케줄링 방법 및 이를 적용한 전자기기

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855036A (ja) * 1994-08-11 1996-02-27 Hitachi Ltd タスクスケジューリング方法
JPH08328881A (ja) * 1995-05-29 1996-12-13 Nec Corp タスクのスケジューリング方式
KR970002623A (ko) * 1995-06-29 1997-01-28 김광호 시간정보에 의한 우선순위 스케줄링 방법 및 그에 적합한 태스크 생성방법
JPH1063515A (ja) * 1996-08-26 1998-03-06 Nippon Telegr & Teleph Corp <Ntt> マルチタスク制御のスケジューリング方法
JPH10222380A (ja) * 1997-02-13 1998-08-21 Hitachi Ltd スケジューリング方式
KR19990057122A (ko) * 1997-12-29 1999-07-15 홍성수 실시간 시스템을 위한 사용자 레벨 다중 쓰레딩 방법
KR20010056752A (ko) * 1999-12-16 2001-07-04 이계철 지능적 작업 스케줄링 방법 및 그 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855036A (ja) * 1994-08-11 1996-02-27 Hitachi Ltd タスクスケジューリング方法
JPH08328881A (ja) * 1995-05-29 1996-12-13 Nec Corp タスクのスケジューリング方式
KR970002623A (ko) * 1995-06-29 1997-01-28 김광호 시간정보에 의한 우선순위 스케줄링 방법 및 그에 적합한 태스크 생성방법
JPH1063515A (ja) * 1996-08-26 1998-03-06 Nippon Telegr & Teleph Corp <Ntt> マルチタスク制御のスケジューリング方法
JPH10222380A (ja) * 1997-02-13 1998-08-21 Hitachi Ltd スケジューリング方式
KR19990057122A (ko) * 1997-12-29 1999-07-15 홍성수 실시간 시스템을 위한 사용자 레벨 다중 쓰레딩 방법
KR20010056752A (ko) * 1999-12-16 2001-07-04 이계철 지능적 작업 스케줄링 방법 및 그 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809294B1 (ko) * 2006-03-10 2008-03-07 삼성전자주식회사 가상 머신에서 스레드 스케줄링을 수행하는 장치 및 그방법
WO2013157765A1 (ko) * 2012-04-19 2013-10-24 에스케이씨앤씨 주식회사 정규 표현식을 이용한 작업 스케줄링 방법 및 이를 적용한 전자기기
KR101396047B1 (ko) * 2012-04-19 2014-05-16 에스케이씨앤씨 주식회사 정규 표현식을 이용한 작업 스케쥴링 방법 및 이를 적용한 전자기기

Similar Documents

Publication Publication Date Title
US6101524A (en) Deterministic replay of multithreaded applications
US6411982B2 (en) Thread based governor for time scheduled process execution
US9146843B2 (en) Recording execution information
US8607239B2 (en) Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
JP2009541848A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
US20050283673A1 (en) Information processing apparatus, information processing method, and program
JP4562568B2 (ja) 異常検出プログラムおよび異常検出方法
TWI460659B (zh) 用於降低競爭之鎖定窗
JP2008112400A (ja) 排他制御を効率化する技術
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
CN113407414A (zh) 程序运行监测方法、装置、终端及存储介质
US8225320B2 (en) Processing data using continuous processing task and binary routine
CN112035255A (zh) 线程池资源管理任务处理方法、装置、设备及存储介质
CN113342554B (zh) Io多路复用方法、介质、设备和操作系统
US20150089167A1 (en) Tracking ownership of memory in a data processing system through use of a memory monitor
KR20040036993A (ko) 시스템 타이머를 이용한 스케쥴링 장치 및 방법
CN115499493A (zh) 异步事务处理方法、装置、存储介质及计算机设备
WO2018042935A1 (ja) 電子制御装置、解析システム
US20080263545A1 (en) Signal delivery to a process in a process group
US9619306B2 (en) Information processing device, control method thereof, and recording medium
CN110955546B (zh) 一种内存地址监控方法、装置及电子设备
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN113220495B (zh) 一种进程异常事件处理方法、装置、电子设备及存储介质
US9223729B2 (en) Servicing a globally broadcast interrupt signal in a multi-threaded computer
JPH06161872A (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
N231 Notification of change of applicant
NORF Unpaid initial registration fee