KR20090116184A - 정보처리장치 및 그 동작주기 변경방법 - Google Patents

정보처리장치 및 그 동작주기 변경방법 Download PDF

Info

Publication number
KR20090116184A
KR20090116184A KR1020080041961A KR20080041961A KR20090116184A KR 20090116184 A KR20090116184 A KR 20090116184A KR 1020080041961 A KR1020080041961 A KR 1020080041961A KR 20080041961 A KR20080041961 A KR 20080041961A KR 20090116184 A KR20090116184 A KR 20090116184A
Authority
KR
South Korea
Prior art keywords
period
interrupt
timer interrupt
task
processor
Prior art date
Application number
KR1020080041961A
Other languages
English (en)
Other versions
KR101466399B1 (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 KR1020080041961A priority Critical patent/KR101466399B1/ko
Publication of KR20090116184A publication Critical patent/KR20090116184A/ko
Application granted granted Critical
Publication of KR101466399B1 publication Critical patent/KR101466399B1/ko

Links

Images

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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

본 발명은 프로세서에서 처리하는 태스크 큐를 검사하여, 프로세서의 부하량을 미리 예측하고, 그에 따라 적응적으로 정보처리장치의 프로세서의 동작주기를 변경할 수 있는 정보처리장치 및 그 동작주기 변경방법에 관한 것이다. 본 발명은 가변 주기에 맞추어 타이머 인터럽트를 발생시키는 인터럽트발생부(200)와; 상기 타이머 인터럽트의 발생 주기를 결정하는 인터럽트주기결정부(10a), 그리고 상기 인터럽트발생부(200)에서 타이머 인터럽트가 발생할 때마다 태스크 큐(Queue)를 검사하여 대기중인 태스크의 처리스케줄을 결정하는 스케줄러(10b)를 포함하는 운영체제(10)가 저장되는 저장부(300);그리고 상기 인터럽트발생부(200)에서 발생된 타이머 인터럽트의 발생주기에 따라 동작주기가 변경되며, 상기 저장부(300)에 액세스하여 상기 운영체제(10)를 실행하고, 상기 운영체제(10)의 상기 스케줄러(10b)에 의해 결정된 태스크 처리스케줄에 따라 태스크를 처리하는 프로세서(100)를 포함하여 구성된다. 이와 같은 본 발명에 의하면, 프로세서의 부하량을 미리 예측하여 적응적으로 프로세서의 동작주기를 변경할 수 있고, 그에 따라 프로세서의 성능 저하를 방지함과 동시에 불필요한 전원소모를 방지할 수 있다는 장점이 있다.
프로세서, 운영체제, 스케줄러, 태스크

Description

정보처리장치 및 그 동작주기 변경방법{DATA PROCESSING DEVICE AND METHOD FOR CONTROLLING THE OPERATING PERIOD THEREOF}
본 발명은 정보처리장치 및 그 동작주기 변경방법에 관한 것으로, 보다 상세하게는 프로세서에서 처리하는 태스크 큐를 검사하여, 프로세서의 부하량을 미리 예측하고, 그에 따라 적응적으로 정보처리장치의 프로세서의 동작주기를 변경할 수 있는 정보처리장치 및 그 동작주기 변경방법에 관한 것이다.
컴퓨터와 같은 정보처리장치의 운영체제(Operating System)로는 실시간 운영체제와 범용 운영체제가 있다. 범용 운영체제의 대표적인 예로는 윈도우즈(Windows)와 리눅스(LINUX)가 있고, 실시간 운영체제의 대표적인 예로는 VxWorks와 uC-OS 등이 있다. 범용 운영체제와 실시간 운영체제는 많은 차이점을 갖는다. 특히 두 운영체제는 스케줄러(Scheduler)의 주기에서 큰 차이점을 갖는데, 실시간 운영체제는 태스크(Task) 처리의 실시간성을 보장하기 위하여 스케줄러의 주기가 빠른 반면, 범용 운영체제는 태스크의 실시간 처리보다는 멀티 태스킹(Multi-tasking)을 우선하므로 일반적으로 실시간 운영체제보다 느린 주기를 갖는다.
이러한 스케줄러의 주기는 곧 타이머 인터럽트에 의하여 결정된다. 타이머 인터럽트가 발생하면, 그때마다 스케줄러가 태스크 큐(Queue)에 대기중인 태스크를 검사하여, 각 태스크에 대한 처리 스케줄을 결정한다. 그리고 이와 같이 스케줄러에 의해 결정된 스케줄에 따라 프로세서가 태스크를 처리하게 된다. 따라서 타이머 인터럽트의 발생주기가 곧 스케줄러의 태스크 큐 검사 및 태스크 스케줄을 결정하는 주기가 되고, 프로세서의 태스크 처리 주기가 된다.
그러므로 타이머 인터럽트의 발생주기가 빠를수록 스케줄러가 태스크 큐 검사를 보다 빈번히 하게 되고, 그에 따라 중앙처리장치(CPU)와 같은 정보처리장치의 메인 프로세서로의 전원공급시간도 증가하여 프로세서의 저전력 유지 상태를 방해하게 되어 전원이 불필요하게 낭비된다. 또한 타이머 인터럽트 발생주기가 빠르면 처리되는 태스크 변경시마다 운영체제가 문맥교환(context switching)에 자원을 할당하므로 프로세서의 성능에 악영향을 줄 수도 있다.
한편 타이머 인터럽트의 발생주기가 느리면, 태스크의 실시간 처리가 지연되어 태스크의 대기시간이 길어지고, 그에 따라 프로세서는 그 처리능력에 비하여 저하된 성능을 제공하게 된다.
그러므로 타이머 인터럽트는 프로세서의 부하량, 즉 프로세서에서 처리되는 태스크의 양에 따라 적응적으로 그 주기가 변경될 필요가 있다. 발생 되는 태스크의 양이 많으면 타이머 인터럽트의 발생주기를 짧게 설정하여, 프로세서에서의 태스크 처리를 보다 빈번히 하고, 발생 되는 태스크의 양이 적으면 타이머 인터럽트의 발생주기를 길게 설정하여, 프로세서에서 불필요하게 전원이 낭비되지 않도록 하는 것이 바람직하다.
그러나 기존의 운영체제들은 실시간 운영체제와 범용 운영체제 모두 고정된 주기로 스케줄러가 태스크를 검색하여 처리 스케줄을 결정하고, 그에 따라 프로세서 또한 고정된 주기로 동작한다는 문제점이 있었다.
따라서 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 프로세서의 부하량을 미리 예측하여 적응적으로 프로세서의 동작주기를 변경할 수 있는 정보처리장치 및 그 동작주기 변경방법을 제공하는 것이다.
본 발명의 다른 목적은, 프로세서의 동작주기를 적응적으로 변경함으로써, 프로세서의 성능 저하를 방지함과 동시에 프로세서에서의 불필요한 전원소모를 방지할 수 있는 정보처리장치 및 그 동작주기 변경방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명에 따른 정보처리장치는 가변 주기에 맞추어 타이머 인터럽트를 발생시키는 인터럽트발생부와; 상기 타이머 인터럽트의 발생 주기를 결정하는 인터럽트주기결정부, 그리고 상기 인터럽트발생부에서 타이머 인터럽트가 발생할 때마다 태스크 큐(Queue)를 검사하여 대기중인 태스크의 처리스케줄을 결정하는 스케줄러를 포함하는 운영체제가 저장되는 저장부;그리고 상기 인터럽트발생부에서 발생된 타이머 인터럽트의 발생주기에 따라 동작주기가 변경되며, 상기 저장부에 액세스하여 상기 운영체제를 실행하고, 상기 운영체제의 상기 스케줄러에 의해 결정된 태스크 처리스케줄에 따라 태스크를 처리하는 프로세서를 포함하여 구성된다.
이때 상기 인터럽트주기결정부는, 상기 스케줄러의 태스크 큐 검사결과에 기 초하여 상기 타이머 인터럽트의 발생주기가 변경되도록 할 수 있다.
또한 상기 인터럽트주기결정부는, 상기 스케줄러의 태스크 큐 검사결과에 기초하여, 태스크 큐에 태스크가 존재하지 않는 횟수를 누적하되, 상기 태스크 큐에 태스크가 하나 이상 존재하거나 외부 인터럽트가 감지되면 누적된 횟수를 0으로 복귀시키고, 누적된 횟수가 증가함에 따라 상기 타이머 인터럽트의 발생주기가 연장되도록 할 수 있다.
그리고 상기 인터럽트주기결정부는, 상기 스케줄러의 태스크 큐 검사결과에 기초하여, 태스크 큐에 존재하는 태스크의 수가 적을수록 상기 타이머 인터럽트의 발생주기가 연장되도록 할 수도 있다.
또한 상기 인터럽트주기결정부는, 사용자의 모드설정에 따라 상기 타이머 인터럽트의 발생주기가 결정되도록 할 수도 있다.
한편 본 발명에 따른 정보처리장치의 동작주기 변경방법은, 인터럽트의 발생이 감지되는 단계와; 인터럽트 발생이 감지되면 프로세서가 운영체제상의 스케줄러를 실행하는 단계와; 상기 스케줄러가 태스크의 처리 스케줄을 결정하는 단계와; 결정된 태스크 처리 스케줄에 따라 상기 프로세서가 태스크를 처리하는 단계와; 인터럽트가 발생한 때로부터 상기 프로세서가 태스크 처리를 완료하기 전까지 타이머 인터럽트의 발생주기를 결정하는 단계를 포함하여 수행될 수 있다.
그리고 인터럽트의 발생이 감지되면 상기 프로세서로 공급되는 전원을 액티브레벨로 변경하는 단계와; 상기 스케줄러가 태스크의 처리 스케줄을 결정하고, 그에 따라 상기 프로세서가 태스크 처리를 완료할 때까지 상기 프로세서로 공급되는 전원을 액티브레벨로 유지하는 단계와; 상기 프로세서가 태스크 처리를 완료하면 다음 인터럽트의 발생이 감지되기 전까지 상기 프로세서로 공급되는 전원을 아이들레벨로 유지하는 단계를 더 포함하여 수행될 수도 있다.
또한 상기 동작주기 변경방법은, 상기 타이머 인터럽트의 발생주기를 결정하는 단계 이후에, 결정된 발생주기에 따라 변경된 주기의 타이머 인터럽트를 발생시키는 단계를 더 포함할 수도 있다.
상기 동작주기 변경방법은, 변경된 주기의 타이머 인터럽트를 발생시키는 단계 이후에, 인터럽트의 발생이 감지되는 단계로부터 상기 동작주기 변경방법에 포함된 일련의 단계를 반복수행하는 단계를 더 포함하여 수행될 수도 있다.
그리고 상기 동작주기 변경방법은, 상기 프로세서가 상기 스케줄러를 실행하면 상기 스케줄러가 태스크의 처리 스케줄을 결정하기에 앞서 태스크 큐에 대기중인 태스크를 검사하는 단계를 더 포함하여 수행될 수도 있다.
이때 상기 타이머 인터럽트의 발생주기를 결정하는 단계는, 인터럽트 발생시마다 상기 스케줄러에 의한 태스크 큐 검사결과에 따라 대기중인 태스크의 수를 판단하는 단계와; 태스크 수의 판단결과에 따라, 태스크 큐 내에 태스크가 존재하면 변수값을 0으로 초기화하고, 태스크 큐 내에 태스크가 존재하지 않으면 상기 변수값을 1 증가시키는 단계와; 태스크 수의 판단결과에 따라 변경된 상기 변수값을 미리 정해진 설정값과 비교하여, 비교결과에 따라 상기 타이머 인터럽트의 발생주기를 기설정된 해당 주기로 결정하는 단계를 포함하여 수행될 수도 있다.
또한 상기 타이머 인터럽트의 발생주기를 결정하는 단계는, 인터럽트 발생시 마다 상기 스케줄러에 의한 태스크 큐 검사결과에 따라 대기중인 태스크의 수를 판단하는 단계와; 상기 태스크 수의 판단결과에 따라, 상기 태스크 수를 미리 정해진 기준값과 비교하여, 비교결과에 따라 상기 타이머 인터럽트의 발생주기를 기설정된 해당 주기로 결정하는 단계를 포함하여 수행될 수도 있다.
한편 상기 동작주기 변경방법은, 사용자에 의하여 선택된 프로세서 동작모드의 설정명령이 입력되는 단계와; 선택된 프로세서 동작모드가 최소동작모드이면, 상기 타이머 인터럽트의 발생주기를 최장주기로 설정하는 단계와; 선택된 프로세서 동작모드가 최대동작모드이면, 상기 타이머 인터럽트의 발생주기를 최단주기로 설정하는 단계와; 선택된 프로세서 동작모드가 적응모드이면, 상기 타이머 인터럽트의 발생주기를 결정하는 단계에 포함된 단계에 따라 결정된 타이머 인터럽트의 발생주기를 설정하는 단계를 더 포함하여 수행될 수도 있다.
그리고 상기 동작주기 변경방법은, 상기 타이머 인터럽트의 발생주기를 결정하는 단계의 수행 이전에, 상기 변수값과 비교할 상기 설정값이 적어도 하나 이상 미리 정하여 저장되는 단계; 그리고 상기 변수값과 상기 설정값을 비교한 결과에 따라 변경될 타이머 인터럽트의 발생주기가 적어도 둘 이상 미리 정하여 저장되는 단계를 더 포함하여 수행될 수 있다.
또는 상기 동작주기 변경방법은, 상기 타이머 인터럽트의 발생주기를 결정하는 단계의 수행 이전에, 상기 태스크의 수와 비교할 상기 기준값이 적어도 하나 이상 미리 정하여 저장되는 단계; 그리고 상기 태스크 수와 상기 기준값을 비교한 결과에 따라 변경될 타이머 인터럽트의 발생주기가 적어도 둘 이상 미리 정하여 저장 되는 단계를 더 포함하여 수행될 수도 있다.
이상에서 상세히 설명한 바와 같이 본 발명에 의한 정보처리장치 및 그 동작주기변경방법에서는 다음과 같은 효과를 기대할 수 있다.
즉, 프로세서의 부하량을 미리 예측하여 적응적으로 프로세서의 동작주기를 변경할 수 있다는 장점이 있다.
그리고 본 발명에 의하면, 프로세서의 동작주기를 적응적으로 변경함으로써, 프로세서의 성능 저하를 방지함과 동시에 프로세서에서의 불필요한 전원소모를 방지할 수 있다는 장점이 있다.
이하에서는 상기한 바와 같은 본 발명에 의한 정보처리장치 및 정보처리장치의 동작주기 변경방법의 바람직한 실시예를 첨부한 도면을 참고하여 상세하게 설명한다.
도 1은 본 발명의 구체적인 실시예에 의한 정보처리장치의 주요부분의 구성을 개략적으로 도시한 블럭도이다.
우선, 본 발명에 의한 정보처리장치는 컴퓨터, 휴대폰, PDA 등과 같이 메인 프로세서가 운영체제에 따라 자원을 관리하고 데이터의 입출력 연산을 할 수 있는 모든 전자장치를 포함한다.
그리고 상기 운영체제는 상기 정보처리장치의 하드웨어와 소프트웨어 사이의 인터페이스 역할을 하며, 상기 정보처리장치의 각종 프로그램 실행 및 기능 수행을 가능하게 하는 범용 운영체제 및 실시간 운영체제를 모두 포함할 수 있다.
본 발명에 의한 정보처리장치는 이미 설명한 바와 같이 운영체제를 실행하여 자원 관리 및 입출력 연산을 수행하는 프로세서(100)를 포함한다. 이때 상기 운영체제는 본 발명에 의한 정보처리장치에 구비되는 저장부(300)에 저장되고, 상기 프로세서(100)가 상기 저장부(300)에 액세스함으로써 상기 운영체제를 실행하게 된다.
이때 상기 저장부(300)는 하드디스크(hard disk)나 플래쉬 메모리(flash memory)와 같은 영구저장매체가 될 수도 있고, 영구저장매체로부터 데이터를 불러와 정보처리장치의 동작중에만 일시적으로 데이터를 저장하는 램(RAM) 등의 기억매체가 될 수도 있다.
그리고 본 발명에 의한 정보처리장치에는 인터럽트발생부(200)가 구비된다. 상기 인터럽트발생부(200)는 주기적으로 타이머 인터럽트(timer interrupt)를 발생하여 상기 프로세서(100)로 전송하는 타이머 소자이다.
이때 상기 인터럽트발생부(200)는 상기 프로세서(100)와 별도로 구비될 수도 있고, 상기 프로세서(100) 내에 포함되어 구비될 수도 있다.
상기 인터럽트발생부(200)가 상기 타이머 인터럽트를 발생함에 있어서, 상기 프로세서(100)는 상기 타이머 인터럽트의 발생주기를 제어한다. 이때 상기 프로세서(100)는 운영체제의 실행에 따라 상기 타이머 인터럽트의 발생주기를 제어하게 된다.
운영체제에 의한 상기 타이머 인터럽트 발생주기 변경에 대한 상세한 제어과 정은 도 2를 참조하여 설명한다.
도 2는 본 발명의 구체적인 실시예에 의한 정보처리장치의 운영체제의 타이머 인터럽트 발생주기 변경 동작에 대한 개념도이다.
상기 프로세서가 실행하는 운영체제(10)는 도 2에 도시된 바와 같이, 인터럽트주기결정부(10a)와 스케줄러(10b)를 포함한다. 이때 상기 인터럽트주기결정부(10a)와 스케줄러(10b)는 상기 운영체제(10) 상에 존재하는 프로그램 또는 루틴으로서, 상기 운영체제(10)에 포함되는, 컴퓨터언어로 작성된 데이터열이며 따라서 독립된 하드웨어로서의 구성요소는 아니다. 또한 이미 설명한 바와 같이 상기 저장부(300)에 저장된다.
우선 상기 인터럽트주기결정부(10a)는 상기 인터럽트발생부(200)에서 발생되는 타이머 인터럽트의 발생주기를 결정한다. 그리고 결정된 발생주기는 상기 프로세서(100)에 의하여 상기 인터럽트발생부(200)로 통보된다.
이때 상기 인터럽트주기결정부(10a)가 상기 타이머 인터럽트의 발생주기를 결정하기 위하여는 실시예에 따라 다양한 정보가 요구된다.
우선, 상기 인터럽트주기결정부(10a)는 상기 스케줄러(10b)가 태스크 큐를 검사한 결과를 이용하여 타이머 인터럽트의 발생주기를 결정할 수 있다.
즉, 타이머 인터럽트 발생시마다 상기 스케줄러(10b)에 의해 태스크 큐를 검사한 결과에 따라, 태스크 큐 내에 대기하는 태스크가 존재하지 않는 횟수를 누적하되, 태스크 큐 내에 대기하는 태스크가 존재하면 누적하였던 횟수를 다시 0으로 복귀시키면서, 누적된 횟수가 커질수록 상기 타이머 인터럽트의 발생주기를 길게 하고, 누적된 횟수가 적을수록 상기 타이머 인터럽트의 발생주기를 짧게 할 수 있다.
이를 위하여, 태스크가 존재하지 않는 횟수의 누적값과 비교할 설정값 및 누적된 횟수의 설정값과의 비교결과에 따라 변경할 주기값 등이 참조값으로 상기 인터럽트주기결정부(10a)에 제공된다.
이와 같은 방식에 의한 정보처리장치의 동작주기 변경방법의 구체적인 실시예는 도 3 및 도 5를 참조하여 추후 설명한다.
또한, 태스크 큐를 검사한 결과 태스크 큐 내에 대기하는 태스크의 수가 많을수록 상기 타이머 인터럽트의 발생주기를 짧게 하고, 태스크 큐 내에 대기하는 태스크의 수가 적을수록 상기 타이머 인터럽트의 발생주기를 길게 할 수 있다.
이때에도, 태스크 큐 내에 대기중인 태스크 수와의 비교값 및 비교결과에 따라 변경할 주기값 등이 참조값으로 상기 인터럽트주기결정부(10a)에 제공된다.
이에 대한 구체적인 실시예는 도 4 및 도 6을 참조하여 추후 설명하도록 한다.
또한 상기 인터럽트주기결정부(10a)에는 사용자가 입력한 명령이 상기 타이머 인터럽트의 발생주기 변경을 위하여 제공될 수 있다.
사용자가 상기 정보처리장치의 상기 프로세서(100)의 동작모드를 최소동작모드로 설정하면, 상기 인터럽트주기결정부(10a)는 이와 같은 모드설정명령을 입력받아 최소동작모드에 상응하는 타이머 인터럽트 발생주기를 결정하여 상기 프로세서(100)를 통하여 상기 인터럽트발생부(200)로 전송한다. 그리고 상기 인터럽트발 생부(200)는 수신된 주기에 맞추어 타이머 인터럽트를 발생한다.
한편 사용자가 상기 정보처리장치의 상기 프로세서(100)의 동작모드를 최대동작모드로 설정하면, 상기 인터럽트주기결정부(10a)는 이와 같은 모드설정명령을 입력받아 최대동작모드에 상응하는 타이머 인터럽트 발생주기를 결정하여 상기 프로세서(100)를 토아ㅎ여 상기 인터럽트발생부(200)로 전송한다.
이때 최소동작모드에서의 타이머 인터럽트 발생주기는 상기 프로세서(100)의 태스크 처리의 실시간성보다는 상기 프로세서(100)의 저전력 상태 유지에 초점을 맞추어 최대동작모드에서의 타이머 인터럽트 주기보다 길게 설정된다.
반면에 최대동작모드에서는 전원소모방지보다는 상기 프로세서(100)의 태스크 처리의 실시간성을 보장하기 위하여 타이머 인터럽트의 발생주기가 짧게 설정된다.
그리고 사용자가 상기 프로세서(100)의 동작모드를 적응(adaptive)모드로 설정하면, 상기 인터럽트주기결정부(10a)는 이미 설명한 바와 같이 상기 스케줄러(10b)의 태스크 큐 검사결과에 기초하여 태스크의 양에 따라 타이머 인터럽트의 발생주기를 결정한다.
한편, 상기 스케줄러(10b)는 상기 인터럽트발생부(200)로부터 상기 프로세서(100)로 타이머 인터럽트가 수신될 때마다 태스크 큐를 검사한다. 그리고 태스크 큐에 대기중인 태스크들을 어떠한 순서로 처리할 것인지 태스크 처리 스케줄을 결정한다.
상기 프로세서(100)는 상기 스케줄러(10b)가 결정한 태스크 처리 스케줄에 따라 태스크를 처리한다. 이때 상기 스케줄러(10b)가 태스크 처리 스케줄을 결정하는 것은, 모든 태스크를 공평하게 번갈아 처리하는 라운드 로빈(round robin) 방식, 또는 태스크마다 처리 순위를 달리 설정하여 우선순위에 따라 처리하는 방식 등 기존의 스케줄링 방식에 의할 수 있다.
여기서 상기 스케줄러(10b)는 이미 설명한 바와 같이, 상기 인터럽트발생부(200)로부터 타이머 인터럽트가 발생할 때마다 상기 태스크 큐를 검사하고, 태스크 처리 순서를 결정하지만, 그 외의 외부 인터럽트가 발생하는 경우에도 그때마다 태스크 큐를 검사하고 태스크 처리 순서를 결정하여, 상기 프로세서(100)가 그에 따라 태스크를 처리할 수 있도록 한다.
상기 스케줄러(10b)에서 타이머 인터럽트가 아닌 외부 인터럽트의 발생에 따라 상기 태스크 큐를 검사하는 경우에도, 그 검사 결과에 기초하여 상기 인터럽트주기결정부(10a)가 타이머 인터럽트의 발생주기를 변경하도록 할 수도 있다.
이하에서는 상술한 바와 같은 본 발명에 의한 정보처리장치를 통하여, 정보처리장치 내의 프로세서의 동작주기를 변경하는 방법의 다양한 실시예를 도면을 참조하여 상세하게 설명한다.
도 3은 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따른 프로세서의 전원레벨 변화를 도시한 도면이고, 도 4는 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따른 프로세서 전원레벨 변화를 도시한 도면, 도 5는 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도, 도 6은 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도, 도 7은 본 발명의 제3실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도이다.
도 3에 도시된 바와 같이 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따르면 상기 프로세서(100)의 전원레벨은 상기 타이머 인터럽트가 발생하였을 때의 액티브(active)레벨과, 상기 프로세서(100)가 저전력 유지 상태일 때의 아이들(idle)레벨로 나뉜다.
우선, 상기 인터럽트발생부(10)에서 타이머 인터럽트가 발생하면, 상기 프로세서(100)가 액티브레벨에 해당하는 전원을 공급받게 된다. 그와 동시에 상기 스케줄러(10b)가 실행되면서, 태스크 큐를 검사하고, 태스크 처리 스케줄을 결정한다. 이때 상기 스케줄러(10b)의 태스크 큐 검사결과, 태스크 큐 내에 대기중인 태스크가 없으면, 상기 프로세서(100)는 다시 아이들레벨로 복귀하고 스케줄러(10b)의 실행도 중단된다.
한편, 상기 프로세서(100)에 액티브레벨의 전원이 공급될 때, 상기 스케줄러(10b)의 검사결과 태스크 큐 내에 대기중인 태스크가 존재하는 경우, 상기 스케줄러(10b)는 태스크 처리 스케줄을 결정하고, 상기 프로세서(100)는 상기 스케줄러(10b)의 스케줄링 결과에 따라 태스크를 처리한다. 이때 상기 스케줄러(10b)의 스케줄링 결과에 따른 태스크 처리가 완료될 때까지 상기 프로세서(100)에는 액티브레벨의 전원이 공급된다. 그리고 태스크 처리가 완료되면 상기 프로세서(100)는 다시 아이들레벨로 복귀한다.
그리고 다시 타이머 인터럽트가 발생하면, 상기 프로세서(100)가 액티브레벨 에 해당하는 전원을 공급받게 되고 일련의 과정이 반복된다.
이때, 상기 인터럽트발생부(200)는 상기 운영체제(10)의 상기 인터럽트주기결정부(10a)에서 결정된 바에 따른 주기에 맞추어 타이머 인터럽트를 발생한다. 그리고 타이머 인터럽트가 발생할 때마다 상기 스케줄러(10b)의 검사결과를 참조하여 타이머 인터럽트의 발생주기를 변경한다.
즉, 도면에 도시된 바와 같이 최초 인터럽트 발생시, 태스크 큐 내에 태스크가 존재하지 않으면 상기 프로세서(100)는 다시 아이들레벨의 전원공급상태로 복귀하고, 이때 태스크가 존재하지 않은 횟수를 1회로 누적한다.
그리고 다음 인터럽트 발생시에도 태스크 큐 내에 태스크가 존재하지 않으면 태스크가 존재하지 않은 횟수가 2회로 누적된다.
여기서 상기 인터럽트주기결정부(10a)는 태스크 큐 내에 대기중인 태스크가 존재하지 않은 횟수가 2회가 되면 상기 인터럽트발생부(200)에서 타이머 인터럽트를 발생시키는 주기를 최초 10ms에서 20ms로 변경하도록 한다.
따라서, 최초 0ms에서 인터럽트가 발생하고, 10ms에서 인터럽트가 발생하는 동안에 두 번 모두 태스크가 존재하지 않았으면, 타이머 인터럽트의 주기를 20ms로 변경하여, 세 번째 인터럽트는 30ms일 때 발생하게 된다.
그리고 30ms에서의 세 번째 인터럽트 발생시에도 태스크 큐 내에 태스크가 존재하지 않으면 누적횟수가 3회가 되고, 그에 따라 타이머 인터럽트의 주기를 30ms로 연장한다. 따라서 네 번째 인터럽트는 세 번째 인터럽트가 발생한 30ms가 경과한 후 30ms 후인 60ms에서 발생한다.
이때 도면에서는 인터럽트가 발생하였으나 태스크 큐 내에 태스크가 존재하지 않았던 횟수가 1회일 때까지는 타이머 인터럽트의 발생주기를 10ms로 설정하고, 2회가 되면 발생주기를 20ms로 설정하였으며, 3회가 누적되면 주기가 30ms가 되도록 설정한 결과에 따른 프로세서(100)의 전원레벨 변화를 도시하고 있으나, 태스크가 존재하지 않았던 횟수 또는 구체적인 타이머 인터럽트의 발생주기 등은 도면에 예시한 바와 달리 시스템 상황이나, 설정 등에 따라 달리 변경될 수 있다.
즉, 태스크가 존재하지 않았던 횟수와 비교할 설정값을 1회 이하, 2회, 3회 이상으로 설정하는 대신에 그 구체적인 값을 변경할 수 있으며, 그에 따라 변경되는 주기 T1, T2, T3도 10ms, 20ms, 30ms 대신에 다른 값을 설정할 수도 있다.
이러한 설정값과 그에 따라 변경되는 주기는 미리 정하여 상기 정보처리장치에 저장되고, 상기 인터럽트주기결정부(10a)는 이를 참조하여 타이머 인터럽트의 주기를 결정한다.
변경되는 주기도 예시한 바와 같이 3단계로 변경될 뿐 아니라, 보다 세분화되거나 2단계로 보다 간략화될 수도 있다.
한편, 도면에서와 같이 인터럽트가 3회 이상 발생하는 동안에, 태스크 큐 내에 대기중인 태스크가 없어, 타이머 인터럽트의 발생주기가 30ms로 설정된 경우, 30ms 경과 후 다음 인터럽트 발생시에, 태스크 큐 내에 태스크가 존재하면, 그동안에 누적되었던 태스크가 존재하지 않았던 횟수는 0으로 복귀되고, 그에 따라 그 횟수가 1회 이하가 되므로 그에 상응하는 타이머 인터럽트 발생주기, 즉 10ms의 주기로 인터럽트가 발생하게 된다.
즉, 타이머 인터럽트가 발생하여 태스크 큐를 검사한 결과, 태스크가 존재하면, 상기 스케줄러(10b)는 그 태스크의 처리 스케줄을 결정하고 상기 프로세서(100)는 스케줄에 따라 태스크를 처리한다. 그리고 태스크 처리가 완료되면, 상기 프로세서(100)는 아이들레벨로 복귀한다. 그리고 상기 인터럽트발생부(200)는 10ms로 변경된 주기에 따라 타이머 인터럽트를 발생한다.
한편 이와 같은 실시예에서, 타이머 인터럽트의 발생시 외에 외부 인터럽트가 발생한 경우에도 상기 스케줄러(10b)가 태스크 큐 검사 및 태스크 처리 스케줄링을 하고, 그에 따라 상기 프로세서(100)가 태스크 처리 스케줄에 따른 태스크 처리를 할 수 있다.
한편, 도 4에 도시된 바와 같이, 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따른 경우에도, 상기 프로세서(100)의 전원레벨은 상기 타이머 인터럽트가 발생하였을 때의 액티브(active)레벨과, 상기 프로세서(100)가 저전력 유지 상태일 때의 아이들(idle)레벨로 나뉜다.
이때 상기 프로세서(100)가 아이들레벨의 전원공급으로부터 상기 액티브레벨의 전원공급을 받는 것은, 상기 인터럽트발생부(200)에서 인터럽트가 발생하였을 때 또는 외부 인터럽트가 발생하였을 때이다.
이와 같이 인터럽트가 감지되어, 상기 프로세서(100)가 액티브레벨의 전원을 공급받으면, 상기 프로세서(100)는 상기 운영체제(10)의 상기 스케줄러(10b)를 실행한다. 상기 스케줄러(10b)는 태스크 큐를 검사하여 태스크 큐 내에 존재하는 태스크의 수를 파악한다. 또한 대기중인 태스크에 대한 적절한 처리 스케줄을 결정한 다. 상기 스케줄러(10b)의 태스크 처리 스케줄에 따라 상기 프로세서(100)는 태스크를 처리한다.
한편, 상기 스케줄러(10b)가 인터럽트 발생 시마다 태스크 큐를 검사하여 태스크 큐 내에 존재하는 태스크의 수를 파악하면, 상기 프로세서(100)는 상기 인터럽트주기결정부(10a)를 실행하여 태스크 수에 따른 타이머 인터럽트의 발생주기를 결정하게 된다.
즉, 도면에 도시된 바와 같이, 0ms에서의 최초 인터럽트 발생시 태스크 큐 내에 태스크가 존재하지 않았으면, 상기 인터럽트주기결정부(10a)는 타이머 인터럽트의 발생주기를 30ms(T3)로 결정한다.
그리고 이와 같이 결정된 타이머 인터럽트 발생주기에 따라 상기 인터럽트발생부(200)는 다음 인터럽트를 30ms가 경과한 후에 발생시킨다. 상기 프로세서(100)는 30ms에서의 인터럽트 발생시까지 아이들레벨의 전원을 공급받으며 저전력 유지 상태가 유지된다.
30ms에서 두 번째 인터럽트가 발생하면 상기 프로세서(100)로 액티브레벨의 전원이 공급되고, 상기 프로세서(100)는 상기 스케줄러(10b)를 실행하여 태스크 큐 내의 태스크 수를 파악하고, 태스크 처리 순서를 결정한다.
이때 태스크 수가 1이면, 상기 인터럽트주기결정부(10a)는 타이머 인터럽트의 발생주기를 20ms(T2)로 결정하여, 상기 프로세서(100)를 통하여 상기 인터럽트발생부(200)로 통보한다.
한편 상기 프로세서(100)는 태스크의 처리가 완료될 때까지 액티브레벨을 유 지하고, 태스크 처리가 완료되면 다음 인터럽트 발생시까지 아이들레벨의 전원을 공급받는다.
한편, 20ms 경과 후 세번째 인터럽트가 발생하고, 이때 태스크 큐에 존재하는 태스크의 수가 2 이상이면, 상기 인터럽트주기결정부(10a)의 실행결과는 타이머 인터럽트의 발생주기가 10ms(T1)가 되도록 한다. 그에 따라 상기 인터럽트 발생부(200)는 10ms 경과 후 다음 타이머 인터럽트를 발생시킨다.
그리고 이와 같이, 매 인터럽트 발생시마다 태스크 큐 내에 존재하는 태스크 수를 검사하여, 그에 따라 적응적으로 타이머 인터럽트의 주기를 변경하는 동작이 지속된다.
이때 상기 T1, T2, T3 과 같은 타이머 인터럽트의 주기는 예시한 바와 달리 설정될 수 있고, 이와 같은 주기 변경의 단계도 3개를 초과하도록 세분화될 수 있다. 그리고 주기의 단계변경을 결정하기 위하여 태스크의 수와 비교될 기준값도 예시한 바와 달리 설정될 수 있다.
이때에도 변경될 주기와 주기 변경의 기준이 되는 기준값은 미리 결정되어 저장되고, 상기 인터럽트주기결정부(10a)는 이를 참조하여 상기 타이머 인터럽트의 주기를 결정한다.
한편, 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법 및 그에 따른 프로세서의 동작주기 변경방법은, 도 5에 도시된 바와 같이 변수 N이 0으로 초기화되는 단계(S100)로부터 시작된다.
이때 본 발명의 제1실시예는 도 3을 참조하여 설명한 바와 같이, 태스크 큐 내에 태스크가 존재하지 않는 횟수를 누적함으로써 프로세서(100)의 부하량을 예측하여 타이머 인터럽트의 발생주기를 변경하고, 그에 따라 프로세서(100)의 동작주기도 변경되도록 하는 방법이다.
N이 0으로 초기화된 후, 인터럽트가 발생하면(S110) 상기 운영체제(10) 상의 스케줄러(10b)가 실행되어 태스크 큐를 검사한다(S120). 이때 상기 인터럽트는 상기 인터럽트발생부(200)에서 발생한 타이머 인터럽트와 그 외의 외부 인터럽트도 될 수 있다.
상기 제120단계에서의 태스크 큐 검사 결과 태스크 큐 내에 태스크가 존재하면, 변수 N은 0으로 초기화된다(S135). 반면에 태스크 큐 내에 태스크가 존재하지 않으면 변수 N은 N+1 값으로 변경된다(S140).
그리고, 상기 제140단계에서 1이 더해진 N 값이 1을 초과하는지 여부를 판단하는 단계(S150)가 수행된다. 상기 150단계에서 N이 1을 초과하지 않으면, 즉, 1이면, 타이머 인터럽트의 발생주기는 10ms로 설정된다(S160).
한편 상기 제135단계에서 N값이 0으로 초기화된 경우에도, 타이머 인터럽트의 발생주기는 10ms로 설정된다(S160). 결론적으로 N값이 0 또는 1인 경우, 타이머 인터럽트의 발생주기가 10ms가 된다.
한편, 상기 150단계에서의 판단결과, N값이 1을 초과하면, N값이 2를 초과하는지 여부를 결정하는 단계(S170)가 수행된다.
상기 제170단계에서, N이 2를 초과하지 않으면, 즉, N값이 2이면, 타이머 인터럽트의 발생주기를 20ms로 설정하는 단계(S180)가 수행된다. 그리고 상기 제170 단계에서, N이 2를 초과하면, 즉 3 이상이면, 타이머 인터럽트의 발생주기는 30ms가 된다.
그리고, 다음 인터럽트가 발생하면(S110), 다시 이와 같이 태스크 큐를 검사하여(S120), 태스크 큐 내에 태스크가 존재하지 않으면(S130), N값을 1씩 누적하여 증가시키고(S140), 태스크가 존재하면(S140) N값을 0으로 초기화하며(S135), 이와 같은 N값을 설정값과 비교하여(S150, S170) 그에 따라 타이머 인터럽트의 발생주기를 변경하는(S160, S180, S190) 일련의 과정이 반복된다.
이때, 상기 제150단계 및 제170단계에서 N값과 비교되는 설정값과, 제 160단계, 제180단계, 제190단계에서 변경되는 주기값 등은 예시에 불과하고 이와 달리 수행될 수 있다. 또한 비교되는 설정값의 수와 변경되는 주기의 단계가 보다 세분화될 수도 있다.
이와 같은 과정을 거쳐 변경되는 주기에 따라 타이머 인터럽트가 발생하고, 또한 타이머 인터럽트의 발생주기가 변경됨에 따라, 상기 프로세서(100)의 동작주기도 변경된다.
한편, 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법 및 그에 따른 프로세서의 동작주기 변경방법은, 도 6에 도시된 바와 같이 인터럽트가 발생되는 단계(S200)로부터 시작된다.
이때 본 발명의 제2실시예는 도 4을 참조하여 설명한 바와 같이, 태스크 큐 내에 존재하는 태스크의 수를 검사하여 그 수에 따라 프로세서(100)의 부하량을 예측하여 타이머 인터럽트의 발생주기를 변경하고, 그에 따라 프로세서(100)의 동작 주기도 변경되도록 하는 방법이다.
상기 제200단계에서 발생되는 인터럽트는 상기 인터럽트발생부(200)에서 발생한 타이머 인터럽트와 그 외의 외부 인터럽트도 될 수 있다.
그리고 인터럽트가 발생되면, 상기 프로세서(100)에 액티브레벨의 전원이 공급되며, 상기 프로세서(100)가 상기 운영체제(10) 상의 상기 스케줄러(10b)를 실행한다. 상기 스케줄러(10b)가 실행되면 태스크 큐 내에 존재하는 태스크를 검사하게 되고, 그에 따라 태스크 큐 내에 존재하는 태스크의 수를 파악할 수 있게 된다.
이때 태스크 큐 내에 태스크가 존재하지 않으면(S220), 즉 존재하는 태스크의 수가 0이면, 타이머 인터럽트의 발생주기는 30ms로 설정된다(S230).
한편 태스크 큐 내에 태스크가 존재하면(S220), 존재하는 태스크의 수를 1과 비교한다(S240). 상기 제240단계의 비교결과, 존재하는 태스크의 수가 1 이하이면, 즉 1이면 타이머 인터럽트 발생주기는 20ms로 설정된다.
그러나 상기 제240단계에서의 비교결과, 태스크 큐 내에 존재하는 태스크의 수가 1을 초과하면, 즉 2 이상이면, 타이머 인터럽트의 발생주기는 10ms로 설정된다(S260).
그리고, 상기 제230단계, 제250단계, 제260단계에서 각각 설정된 주기에 따라 다음 순위의 인터럽트가 발생하면(S200), 다시 태스크 큐를 검사하고(S210), 그에 따라 태스크의 수를 파악하여 기준값과 비교하고(S220, S240), 비교결과에 의하여 타이머 인터럽트의 발생주기를 변경(S230, S250, S260)하는 일련의 과정이 반복된다.
한편 본 발명의 제3실시예에 의한 타이머 인터럽트 발생주기 변경방법 및 그에 따른 프로세서의 동작주기 변경방법은, 도 7에 도시된 바와 같이 사용자의 명령을 입력받는 단계(S300)로부터 시작된다.
상기 제300단계에서 사용자는 프로세서의 동작모드를 최소동작모드, 최대동작모드, 적응(adaptive)모드 중 어느 하나로 선택하여 설정하도록 명령을 입력할 수 있다.
이때 상기 최소동작모드는, 상기 프로세서(100)의 동작주기를 가장 길게 설정한 경우에 해당하고, 최대동작모드는 상기 프로세서(100)의 동작주기를 가장 짧게 설정하여, 프로세서(100)가 실시간으로 많은 태스크를 처리할 수 있도록 한다. 그리고 적응모드에서는 이미 설명한 바와 같은 본 발명의 제1실시예 또는 제2실시예와 같이 본 발명에 의한 정보처리장치의 운영체제 상에서 태스크 양에 따른 상기 프로세서(100)의 부하량을 예측하여 자동으로 타이머 인터럽트의 발생주기를 변경함으로써 상기 프로세서(100)의 동작주기를 제어할 수 있도록 한다.
상기 제300단계에서 사용자가 이와 같은 프로세서(100) 동작모드를 설정하는 명령을 입력하면 상기 프로세서(100)에서는 입력된 명령이 최소동작모드를 선택하는 명령에 해당하는지 판단하여(S310) 타이머 인터럽트의 발생주기를 30ms로 설정한다(S320).
그러나 입력된 명령이 최소동작모드를 선택하는 명령에 해당하지 않으면, 사용자가 선택한 동작모드가 최대동작모드인지 판단한다(S330). 그리고 최대동작모드가 선택된 것으로 판단되면, 타이머 인터럽트의 발생주기를 10ms로 설정한 다(S340).
그러나 최소동작모드, 최대동작모드 모두 선택되지 않은 것으로 판단되면, 적응모드가 선택된 것으로 보고, 운영체제가 태스크 큐 검사결과에 따라 타이머 인터럽트를 적응적으로 변경하는데(S350), 상기 제350단계는 도 5 또는 도 6에 도시된 바와 같은 일련의 과정에 의하여 수행된다.
본 발명의 권리는 위에서 설명된 실시예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.
도 1은 본 발명의 구체적인 실시예에 의한 정보처리장치의 주요부분의 개략적인 구성을 도시한 블럭도.
도 2는 본 발명의 구체적인 실시예에 의한 정보처리장치의 운영체제의 타이머 인터럽트 발생주기 변경 동작에 대한 개념도.
도 3은 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따른 프로세서의 전원레벨의 변화를 도시한 도면.
도 4는 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법에 따른 프로세서 전원레벨의 변화를 도시한 도면.
도 5는 본 발명의 제1실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도.
도 6은 본 발명의 제2실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도.
도 7은 본 발명의 제3실시예에 의한 타이머 인터럽트 발생주기 변경방법을 단계적으로 도시한 흐름도.
**도면의 주요 부분에 대한 부호의 설명**
100:프로세서 200:인터럽트발생부
300: 저장부 10:운영체제
10a:인터럽트주기결정부 10b:스케줄러

Claims (15)

  1. 가변 주기에 맞추어 타이머 인터럽트를 발생시키는 인터럽트발생부와;
    상기 타이머 인터럽트의 발생 주기를 결정하는 인터럽트주기결정부, 그리고 상기 인터럽트발생부에서 타이머 인터럽트가 발생할 때마다 태스크 큐(Queue)를 검사하여 대기중인 태스크의 처리스케줄을 결정하는 스케줄러를 포함하는 운영체제가 저장되는 저장부;그리고
    상기 인터럽트발생부에서 발생된 타이머 인터럽트의 발생주기에 따라 동작주기가 변경되며, 상기 저장부에 액세스하여 상기 운영체제를 실행하고, 상기 운영체제의 상기 스케줄러에 의해 결정된 태스크 처리스케줄에 따라 태스크를 처리하는 프로세서를 포함하여 구성됨을 특징으로 하는 정보처리장치.
  2. 제1항에 있어서,
    상기 인터럽트주기결정부는,
    상기 스케줄러의 태스크 큐 검사결과에 기초하여 상기 타이머 인터럽트의 발생주기가 변경되도록 하는 것을 특징으로 하는 정보처리장치.
  3. 제2항에 있어서,
    상기 인터럽트주기결정부는,
    상기 스케줄러의 태스크 큐 검사결과에 기초하여, 태스크 큐에 태스크가 존 재하지 않는 횟수를 누적하되, 상기 태스크 큐에 태스크가 하나 이상 존재하거나 외부 인터럽트가 감지되면 누적된 횟수를 0으로 복귀시키고,
    누적된 횟수가 증가함에 따라 상기 타이머 인터럽트의 발생주기가 연장되도록 함을 특징으로 하는 정보처리장치.
  4. 제2항에 있어서,
    상기 인터럽트주기결정부는,
    상기 스케줄러의 태스크 큐 검사결과에 기초하여, 태스크 큐에 존재하는 태스크의 수가 적을수록 상기 타이머 인터럽트의 발생주기가 연장되도록 함을 특징으로 하는 정보처리장치.
  5. 제1항에 있어서,
    상기 인터럽트주기결정부는,
    사용자의 모드설정에 따라 상기 타이머 인터럽트의 발생주기가 결정되도록 함을 특징으로 하는 정보처리장치.
  6. 인터럽트의 발생이 감지되는 단계와;
    인터럽트 발생이 감지되면 프로세서가 운영체제상의 스케줄러를 실행하는 단계와;
    상기 스케줄러가 태스크의 처리 스케줄을 결정하는 단계와;
    결정된 태스크 처리 스케줄에 따라 상기 프로세서가 태스크를 처리하는 단계와;
    인터럽트가 발생한 때로부터 상기 프로세서가 태스크 처리를 완료하기 전까지 타이머 인터럽트의 발생주기를 결정하는 단계를 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  7. 제6항에 있어서,
    인터럽트의 발생이 감지되면 상기 프로세서로 공급되는 전원을 액티브레벨로 변경하는 단계와;
    상기 스케줄러가 태스크의 처리 스케줄을 결정하고, 그에 따라 상기 프로세서가 태스크 처리를 완료할 때까지 상기 프로세서로 공급되는 전원을 액티브레벨로 유지하는 단계와;
    상기 프로세서가 태스크 처리를 완료하면 다음 인터럽트의 발생이 감지되기 전까지 상기 프로세서로 공급되는 전원을 아이들레벨로 유지하는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  8. 제7항에 있어서,
    상기 동작주기 변경방법은,
    상기 타이머 인터럽트의 발생주기를 결정하는 단계 이후에,
    결정된 발생주기에 따라 변경된 주기의 타이머 인터럽트를 발생시키는 단계 를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  9. 제8항에 있어서,
    상기 동작주기 변경방법은,
    변경된 주기의 타이머 인터럽트를 발생시키는 단계 이후에,
    인터럽트의 발생이 감지되는 단계로부터 상기 동작주기 변경방법에 포함된 일련의 단계를 반복수행하는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  10. 제9항에 있어서,
    상기 동작주기 변경방법은,
    상기 프로세서가 상기 스케줄러를 실행하면 상기 스케줄러가 태스크의 처리 스케줄을 결정하기에 앞서 태스크 큐에 대기중인 태스크를 검사하는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  11. 제9항에 있어서,
    상기 타이머 인터럽트의 발생주기를 결정하는 단계는,
    인터럽트 발생시마다 상기 스케줄러에 의한 태스크 큐 검사결과에 따라 대기중인 태스크의 수를 판단하는 단계와;
    태스크 수의 판단결과에 따라, 태스크 큐 내에 태스크가 존재하면 변수값을 0으로 초기화하고, 태스크 큐 내에 태스크가 존재하지 않으면 상기 변수값을 1 증가시키는 단계와;
    태스크 수의 판단결과에 따라 변경된 상기 변수값을 미리 정해진 설정값과 비교하여, 비교결과에 따라 상기 타이머 인터럽트의 발생주기를 기설정된 해당 주기로 결정하는 단계를 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  12. 제9항에 있어서,
    상기 타이머 인터럽트의 발생주기를 결정하는 단계는,
    인터럽트 발생시마다 상기 스케줄러에 의한 태스크 큐 검사결과에 따라 대기중인 태스크의 수를 판단하는 단계와;
    상기 태스크 수의 판단결과에 따라, 상기 태스크 수를 미리 정해진 기준값과 비교하여, 비교결과에 따라 상기 타이머 인터럽트의 발생주기를 기설정된 해당 주기로 결정하는 단계를 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  13. 제11항 또는 제12항에 있어서,
    상기 동작주기 변경방법은,
    사용자에 의하여 선택된 프로세서 동작모드의 설정명령이 입력되는 단계와;
    선택된 프로세서 동작모드가 최소동작모드이면, 상기 타이머 인터럽트의 발 생주기를 최장주기로 설정하는 단계와;
    선택된 프로세서 동작모드가 최대동작모드이면, 상기 타이머 인터럽트의 발생주기를 최단주기로 설정하는 단계와;
    선택된 프로세서 동작모드가 적응모드이면, 상기 타이머 인터럽트의 발생주기를 결정하는 단계에 포함된 단계에 따라 결정된 타이머 인터럽트의 발생주기를 설정하는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  14. 제11항에 있어서,
    상기 동작주기 변경방법은,
    상기 타이머 인터럽트의 발생주기를 결정하는 단계의 수행 이전에,
    상기 변수값과 비교할 상기 설정값이 적어도 하나 이상 미리 정하여 저장되는 단계; 그리고
    상기 변수값과 상기 설정값을 비교한 결과에 따라 변경될 타이머 인터럽트의 발생주기가 적어도 둘 이상 미리 정하여 저장되는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
  15. 제12항에 있어서,
    상기 동작주기 변경방법은,
    상기 타이머 인터럽트의 발생주기를 결정하는 단계의 수행 이전에,
    상기 태스크의 수와 비교할 상기 기준값이 적어도 하나 이상 미리 정하여 저장되는 단계; 그리고
    상기 태스크 수와 상기 기준값을 비교한 결과에 따라 변경될 타이머 인터럽트의 발생주기가 적어도 둘 이상 미리 정하여 저장되는 단계를 더 포함하여 수행됨을 특징으로 하는 정보처리장치의 동작주기 변경방법.
KR1020080041961A 2008-05-06 2008-05-06 정보처리장치 및 그 동작주기 변경방법 KR101466399B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080041961A KR101466399B1 (ko) 2008-05-06 2008-05-06 정보처리장치 및 그 동작주기 변경방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080041961A KR101466399B1 (ko) 2008-05-06 2008-05-06 정보처리장치 및 그 동작주기 변경방법

Publications (2)

Publication Number Publication Date
KR20090116184A true KR20090116184A (ko) 2009-11-11
KR101466399B1 KR101466399B1 (ko) 2014-11-27

Family

ID=41600982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080041961A KR101466399B1 (ko) 2008-05-06 2008-05-06 정보처리장치 및 그 동작주기 변경방법

Country Status (1)

Country Link
KR (1) KR101466399B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101227024B1 (ko) * 2010-09-29 2013-01-28 한국과학기술원 소프트웨어 유닛에 대한 확장형 분산 테스트 방법
KR101290784B1 (ko) * 2012-04-13 2013-07-30 주식회사 우리기술 분산 제어 시스템에서 태스크 동기화 장치 및 방법
KR101470744B1 (ko) * 2013-07-05 2014-12-08 가톨릭대학교 산학협력단 사용자 단말기 및 그의 프로세스 관리 방법
KR20220084900A (ko) * 2020-12-14 2022-06-21 재단법인대구경북과학기술원 인터럽트 제어 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
KR20000044343A (ko) * 1998-12-30 2000-07-15 박태진 멀티태스크 실시간 실행 방법
JP4490298B2 (ja) * 2004-03-02 2010-06-23 三菱電機株式会社 プロセッサ電力制御装置及びプロセッサ電力制御方法
KR100838438B1 (ko) * 2004-06-01 2008-06-16 가부시키가이샤 소니 컴퓨터 엔터테인먼트 태스크 관리방법, 태스크 관리장치, 반도체 집적회로, 전자장치, 태스크 관리 시스템, 및 프로그램을 격납한 기록매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101227024B1 (ko) * 2010-09-29 2013-01-28 한국과학기술원 소프트웨어 유닛에 대한 확장형 분산 테스트 방법
KR101290784B1 (ko) * 2012-04-13 2013-07-30 주식회사 우리기술 분산 제어 시스템에서 태스크 동기화 장치 및 방법
KR101470744B1 (ko) * 2013-07-05 2014-12-08 가톨릭대학교 산학협력단 사용자 단말기 및 그의 프로세스 관리 방법
KR20220084900A (ko) * 2020-12-14 2022-06-21 재단법인대구경북과학기술원 인터럽트 제어 장치 및 방법

Also Published As

Publication number Publication date
KR101466399B1 (ko) 2014-11-27

Similar Documents

Publication Publication Date Title
KR102210355B1 (ko) 적응적 전력 제어 루프
US8484643B2 (en) CPU usage time counting method and job control system using this CPU usage time
CN107003706B (zh) 非暂时性计算机可读存储介质和用于管理作业的装置
CN106557369B (zh) 一种多线程的管理方法及系统
US8959515B2 (en) Task scheduling policy for limited memory systems
US8856791B2 (en) Method and system for operating in hard real time
CN107770088B (zh) 一种流量控制方法及装置
KR101334172B1 (ko) 임베디드 시스템의 스택 오버플로우 방지 방법 및 장치
KR101522081B1 (ko) 프로세서에서 스레드들을 실행하는 시스템 및 방법
US20100332876A1 (en) Reducing power consumption of computing devices by forecasting computing performance needs
KR20070089460A (ko) 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법
JP2008165798A (ja) データ処理装置におけるプロセッサの性能管理
Yao et al. Comparative evaluation of limited preemptive methods
JP2000347883A (ja) 仮想計算機装置
US20110004883A1 (en) Method and System for Job Scheduling
US20070266385A1 (en) Performance level setting in a data processing system
Yao et al. Feasibility analysis under fixed priority scheduling with fixed preemption points
KR101466399B1 (ko) 정보처리장치 및 그 동작주기 변경방법
US20230127112A1 (en) Sub-idle thread priority class
US20060037021A1 (en) System, apparatus and method of adaptively queueing processes for execution scheduling
US20180356871A1 (en) Power management for electronic devices
Niu et al. Reliability-aware scheduling for reducing system-wide energy consumption for weakly hard real-time systems
KR102270239B1 (ko) 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치
WO2012036954A2 (en) Scheduling amongst multiple processors
US9618988B2 (en) Method and apparatus for managing a thermal budget of at least a part of a processing system

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: 20171024

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee