KR102520596B1 - 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체 - Google Patents

전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR102520596B1
KR102520596B1 KR1020180023730A KR20180023730A KR102520596B1 KR 102520596 B1 KR102520596 B1 KR 102520596B1 KR 1020180023730 A KR1020180023730 A KR 1020180023730A KR 20180023730 A KR20180023730 A KR 20180023730A KR 102520596 B1 KR102520596 B1 KR 102520596B1
Authority
KR
South Korea
Prior art keywords
task
amount
work
time
delay time
Prior art date
Application number
KR1020180023730A
Other languages
English (en)
Other versions
KR20190102795A (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 KR1020180023730A priority Critical patent/KR102520596B1/ko
Priority to PCT/KR2019/000138 priority patent/WO2019168265A1/ko
Publication of KR20190102795A publication Critical patent/KR20190102795A/ko
Application granted granted Critical
Publication of KR102520596B1 publication Critical patent/KR102520596B1/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/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
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 메모리, 메모리를 이용하여 작업을 수행하는 프로세서를 포함하며, 프로세서는, 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하여 메모리에 저장하고, 실행해야 할 태스크가 발생하면, 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 기초하여 태스크의 처리 시점을 변경한다.

Description

전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체 { ELECTRONIC APPARATUS FOR PROCESSING TASK, METHOD THEREOF, AND COMPUTER-READABLE MEDIUM }
본 개시는 전자 장치에 관한 것으로, 보다 상세하게는 수행 중인 작업의 양 및 추가로 수행해야 하는 태스크의 특성에 기초하여, 수행해야 하는 태스크의 처리시점을 조정하는 기술이다.
하나 이상의 전자 장치로 구현되는 실시간 시스템은 정확한 시각에 태스크를 수행하기 위해 타이머 인터럽트를 사용하였다.
다만, 특정한 태스크를 수행하기 위한 타이머 인터럽트가 발생한 후에도 interrupt latency, ISR(Interrupt Service Routine), Scheduling latency 등을 포함하는 지연이 발생한다. 따라서, 실제로 정확한 시각에 태스크를 수행하기에 어려움이 있었다.
도 1은 태스크 수행 과정에서 시간이 지연되는 문제를 설명하기 위한 도면이다.
도 1의 작업 수행 타임 테이블은, 4개의 태스크(Task A, Task B, Task C, Task D)를 각각 정해진 시간에 순차적으로 실행하는 종래 시스템의 동작을 나타낸다.
구체적으로는, 도 1의 (a)는 각 Task를 수행함에 있어 지연 시간이 전혀 발생하지 않는 이상적인 경우를 나타내고, 도 1의 (b)는 각 Task를 수행함에 있어 지연 시간이 발생하는 실제 상황을 나타낸다.
도 1의 (b)의 경우, 각 Task를 수행하는 데에 추가로 발생하는 지연 시간은 각기 다른 것이 일반적인데, 이는 각 태스크를 수행해야 하는 시점에 시스템에 걸리는 부하가 다르기 때문이다.
구체적으로, Task B를 수행하기 시작하는 시점에서는 기존에 Task A만이 수행되는 중이지만, Task D를 수행하기 시작하는 시점에서는 기존에 Task A, Task B 및 Task C가 모두 수행 중이라는 점에서, Task D를 수행함에 있어 발생하는 지연 시간이 추가로 더 늘어날 수도 있다.
이를 해결하고자, 종래에는 실험으로 정해진 특정한 offset 값을 설정하여 시스템 내에서 설정되는 타이머 인터럽트의 발생 시점을 일괄적으로 앞당겼으나, 이러한 종래의 기술만으로는 지연 시간의 문제에 유동성 있게 대응하기 어려웠다.
따라서, 본 개시의 목적은 전자 장치(또는 시스템)의 상황 및 추가로 수행해야 하는 태스크에 따라 태스크 처리 시점을 달리하는 전자 장치, 태스크 처리 방법 및 컴퓨터 판독 가능 매체를 제공함에 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 메모리, 상기 메모리를 이용하여 작업을 수행하는 프로세서를 포함하고, 상기 프로세서는, 상기 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하여 상기 메모리에 저장하고, 실행해야 할 태스크가 발생하면, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경한다.
이때, 상기 프로세서는, 상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 지연 시간으로 결정하여 상기 메모리에 저장할 수 있다.
이 경우, 상기 프로세서는, 상기 수행 중인 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정할 수 있다.
또한, 상기 프로세서는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우, 상기 메모리에 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경할 수도 있다.
그리고, 상기 프로세서는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 상기 태스크의 최대 허용 지터값을 가산하여, 상기 태스크의 처리 시점을 변경할 수도 있다.
이 경우, 상기 프로세서는, 상기 태스크가 발생하면, 상기 메모리에 저장된 태스크 자료 구조로부터 상기 태스크의 최대 허용 지터값을 독출할 수 있다.
한편, 상기 작업의 양은, 메모리 사용량, CPU에 걸린 부하의 정도 및 상기 수행 중인 작업에 포함되는 태스크의 개수 중 적어도 하나일 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 태스크 처리 방법은 상기 전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하여 저장하는 단계, 실행해야 할 태스크가 발생하면, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경하는 단계를 포함한다.
이때, 상기 태스크 처리 방법은 상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 지연 시간으로 결정하여 저장하는 단계를 더 포함할 수 있다.
이 경우, 상기 태스크 처리 방법은 상기 전자 장치가 수행하고 있는 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정하는 단계 더 포함할 수도 있다.
이때, 상기 태스크의 처리 시점을 변경하는 단계는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우, 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경할 수 있다.
그리고, 상기 태스크의 처리 시점을 변경하는 단계는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 상기 태스크의 최대 허용 지터값을 가산하여, 상기 태스크의 처리 시점을 변경할 수도 있다.
이 경우, 상기 태스크 처리 방법은 상기 태스크가 발생하면, 태스크 자료 구조로부터 상기 태스크의 최대 허용 지터값을 독출하는 단계를 더 포함할 수도 있다.
한편, 상기 작업의 양은, 메모리 사용량, CPU에 걸린 부하의 정도 및 상기 수행 중인 작업에 포함되는 태스크의 개수 중 적어도 하나일 수 있다.
한편, 본 개시의 일 실시 예에 따른 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는, 전자 장치의 프로세서에 의하여 실행되어, 상기 전자 장치로 하여금, 상기 전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하는 단계, 상기 지연 시간을 상기 수행 중인 작업의 양에 대응되도록 저장하는 단계, 상기 저장된 지연 시간에 기초하여, 작업을 추가로 수행하기 위한 타이머 인터럽트(Timer Interrupt)의 발생 시점에 대한 오프셋(Offset) 값을 설정하는 단계를 포함하는 동작을 수행하도록 한다.
이때, 상기 동작은, 실행해야 할 태스크가 발생하면, 상기 설정된 오프셋 값에 기초하여 상기 태스크의 실행을 위한 타이머 인터럽트의 발생 시점을 변경하는 단계를 더 포함할 수 있다.
이때, 상기 저장하는 단계는, 상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 동일 작업 양에 대응되는 지연 시간으로 저장할 수 있다.
이 경우, 상기 동작은, 상기 전자 장치가 수행하고 있는 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정하는 단계를 더 포함할 수 있다.
이때, 상기 타이머 인터럽트의 발생 시점을 변경하는 단계는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 모니터링되지 않은 경우, 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 설정된 오프셋 값에 기초하여 상기 태스크의 실행을 위한 타이머 인터럽트의 발생 시점을 변경할 수 있다.
그리고, 상기 오프셋 값을 설정하는 단계는, 상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에, 상기 태스크의 최대 허용 지터값을 가산하여, 상기 오프셋 값을 산출할 수 있다.
본 개시에 따른 다양한 실시 예들에 따르면, 전자 장치(100)가 수행하고 있는 작업의 양 및 추가로 수행해야 하는 태스크에 따라 태스크의 처리 시점을 달리함으로써, 지연 시간에 대한 문제를 다양한 상황에 맞게 효율적으로 해결할 수 있다.
도 1은 태스크 수행 과정에서 시간이 지연되는 문제를 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 3 내지 도 4는 작업의 양에 따라 태스크 처리 시점을 변경하는 실시 예를 설명하기 위한 그래프,
도 5 내지 도 6은 태스크의 최대 허용 지터를 고려한 실시 예를 설명하기 위한 그래프,
도 7은 본 개시의 다양한 실시 예에 따라 전자 장치의 세부 구성을 설명하기 위한 블록도,
도 8은 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 도면,
도 9는 본 개시의 일 실시 예에 따른 태스크 처리 방법을 설명하기 위한 흐름도, 그리고
도 10은 본 개시의 일 실시 예에 따른 태스크 처리 방법에 있어, 태스크의 최대 허용 지터를 추가로 고려한 흐름도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 이용하여 본 개시에 대해 구체적으로 설명한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 설명하기 위한 블록도이다. 도 2의 전자 장치(100)는 전자 회로를 포함하는 모든 전자 기기 중 어느 하나로 구현될 수 있다. 구체적으로는 PC, 서버, 단말 장치, 휴대폰, 태블릿, 랩탑 PC 등으로 구현될 수 있다.
도 2를 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 비휘발성 메모리(ex. ROM, 하드디스크, SSD(Solid state drive), 플래시 메모리), RAM과 같은 휘발성 메모리 등으로 구현될 수 있다.
메모리(110)에는 전자 장치(100)가 수행할 수 있는 각종 태스크 내지는 어플리케이션에 대한 정보, 프로세서(120)의 작업 수행과 관련된 데이터가 저장되어있을 수 있다.
태스크란 전자 장치(100)의 운영체제(Operating System)가 제어하는 프로그램의 기본 단위를 의미한다. 이 경우, 하나의 태스크에 해당하는 일 단위의 프로그램이란 전체 프로그램이 될 수도 있고 또는 계속되는 프로그램의 호출이 될 수도 있다.
한편, 한 프로그램이 여러 개의 다른 유틸리티 프로그램들에게 요청을 할 수도 있는데, 이때 유틸리티 프로그램들 각각이 별도의 태스크가 될 수도 있고, 또는 유틸리티 프로그램들 각각이 서브 태스크로서 하나의 태스크에 함께 포함될 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 이때, 프로세서(120)는 복수 개의 태스크를 동시에 또는 교대로 실행하기 위해 메모리(110)를 포함한 전자 장치(100)의 구성들을 개별적으로 제어할 수 있다.
이를 위해, 프로세서(120)는 CPU(도시되지 않음) 및 시스템 버스(도시되지 않음)를 포함할 수 있다. 이때, 프로세서(120)의 CPU는 시스템 버스(도시되지 않음)를 통해 메모리(110)의 RAM 및 ROM과 연결되어 각종 데이터나 신호를 송수신할 수 있다.
프로세서(120)는 메모리(110)에 저장된 운영체제(Operating System)를 실행시켜 시스템을 부팅시킨다.
부팅 이후, 프로세서(120)는 전자 장치(100)의 메모리(110)에 저장된 각종 어플리케이션 내지는 태스크를 실행시켜 여러 가지 동작을 수행할 수 있다.
수행해야 할 태스크들이 복수 개이거나 또는 현재 수행 중인 작업이 종료되기 이전에 후속 작업에 대한 수행 명령이 입력되는 경우, 프로세서(120)는 수행 중인 작업의 양에 기초하여 후속 작업을 개시할 때의 지연 시간을 모니터링하여 메모리(110)에 저장할 수 있다.
이때, 작업의 양은 메모리 사용량, 수행 중인 작업에 포함되는 태스크의 개수 및 CPU에 걸린 부하의 정도 중 적어도 하나를 포함할 수 있다. 이 경우, 메모리 사용량은 프로세서(120)가 RAM 또는 RAM을 포함하는 주기억장치를 사용하고 있는 용량을 의미할 수 있다.
예를 들어, 프로세서(120)는 프로세서(120)가 특정한 양만큼 작업을 수행하고 있는 경우, 추가로 태스크를 더 실행하기 위한 지연 시간이 얼마였는지를 모니터링하여 메모리(110)에 저장할 수 있다.
이 경우, 프로세서(120)는 수행 중인 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 모니터링의 수행 여부를 결정할 수도 있다.
예를 들어, 수행 중인 작업에 포함된 태스크들의 우선 순위가 모니터링보다 앞서거나 그 작업 마감일이 임박한 경우라면, 프로세서(120)는 모니터링을 일단 중지하고 수행 중인 작업에 포함된 태스크들을 우선으로 수행할 수 있다.
또는, 수행 중인 작업에 포함된 태스크들의 우선 순위가 높지 않고 그 작업 마감일도 여유가 있는 경우라면, 프로세서(120)는 지연 시간에 대한 모니터링을 수행할 수 있다.
그리고, 프로세서(120)는 모니터링된 지연 시간을 작업을 수행하고 있던 양에 매칭되도록 저장할 수 있고, 다만 추가로 실행되는 태스크가 무엇인지에 대한 정보는 메모리(110)에 저장하지 않을 수도 있다.
즉, 프로세서(120)는 프로세서(120)가 수행하고 있는 작업의 양별로 임의의 태스크를 수행하는 데에 걸렸던 지연 시간을 모두 메모리(110)에 저장할 수 있다.
또한, 프로세서(120)는 메모리(110)에 저장된 지연 시간을 토대로 태스크 처리 시점을 결정할 수 있다. 이때, 태스크의 처리 시점을 앞당기는 것은 해당 태스크를 실행하기 위한 타이머 인터럽트 신호의 발생 시점을 앞당기는 것일 수 있다.
인터럽트는 프로그램이 수행되고 있는 동안에 특정한 조건이 만족되면 기존에 수행되던 프로그램을 일시적으로 중지하고 다른 일을 수행하는 것을 의미한다.
구체적으로는, 프로세서(120)에 포함된 CPU가 프로그램을 실행하고 있을 때, 특정한 입력 또는 특정한 상황이 발생함에 따라 새로운 프로그램에 대한 실행이 필요한 경우, 인터럽트 신호가 발생함에 따라 프로세서(120)는 새로운 프로그램을 실행할 수 있다.
인터럽트는 전자 장치(100)에 포함된 타이머(도시되지 않음)에 기초하여 발생하거나 전자 장치(100)가 외부 장치(도시되지 않음)로부터 인터럽트 신호를 수신함으로써 발생할 수 있다.
또는, 인터럽트는 전자 장치(100)에 대한 사용자의 입력에 따라 발생할 수도 있다. 이때, 인터럽트는 전자 장치(100)의 OS(Operation System) 내에서 이루어진 사용자의 소프트웨어적 제어에 기초하여 발생할 수도 있다. 이 경우, 사용자의 소프트웨어적 제어는 전자 장치(100)와 유선 또는 무선으로 연결된 키보드, 마우스, 원격 제어 장치 등 입력 장치(도시되지 않음)에 기초한 것일 수 있다.
이때, 특정한 시간이 되면 발생하는 인터럽트를 타이머 인터럽트라고 한다. 일반적으로 실시간 시스템(Real Time System)은 특정한 태스크를 정확한 시각에 수행하기 위해 타이머 인터럽트를 사용할 수 있다.
도 3 내지 도 4는 작업의 양에 따라 태스크 처리 시점을 변경하는 종래의 방법과 본 발명의 실시 예를 비교하기 위한 그래프이다.
먼저, 도 3은 태스크의 처리 시점을 상황에 관계없이 일정한 값(고정 offset 값)만큼만 앞당기는 종래의 방법을 설명하기 위한 그래프이다.
도 3은, 특정한 태스크를 수행해야 할 시점의 메모리 사용량에 따라 태스크를 추가로 수행하는 데에 걸리는 지연 시간을 모니터링한 결과를 도시한다. 도 3을 참조하면, 동일한 메모리 사용량에 있어서도 복수의 지연 시간이 측정될 수 있음을 확인할 수 있다.
이때, 도 3을 참조하면 프로세서(120)는 측정된 지연 시간 중 가장 작은 값인, 메모리 사용량이 1인 경우에 측정된 지연 시간 중 최소(min) 값을 모든 경우의 고정 offset 값으로 설정할 수 있다.
즉, 프로세서(120)는 어떤 상황에 어떤 태스크를 수행하든 고정 offset 값만큼 태스크의 처리 시점을 앞당길 수 있다.
한편, 프로세서(120)가 고정 offset 값만큼 모든 태스크의 처리 시점을 앞당긴다고 하더라도, 특정한 태스크를 수행해야 할 시점의 메모리 사용량이 상대적으로 큰 경우라면 고정 offset 값으로 해결할 수 없는 추가 지연이 발생할 수밖에 없다.
이는, 프로세서(120)가 전자 장치(100)를 제어함에 있어 작업의 양이 많을수록 추가로 태스크를 수행하기 위해 필요한 지연 시간이 대체로 늘어나기 때문이다.
도 3을 참조하면, 메모리 사용량(Memory Write Size. KB)이 상대적으로 큰 경우에 있어 추가 지연이 생길 수밖에 없음을 확인할 수 있다.
이를 해결하기 위해, 프로세서(120)는 실행해야 할 태스크가 발생하면, 태스크가 발생한 시점에 프로세서(120)가 수행 중인 작업의 양에 대응되는 지연 시간에 기초하여 태스크의 처리 시점을 변경할 수 있다.
만약, 특정한 태스크를 추가로 수행해야 하는 시점의 작업의 양마다 복수의 지연 시간이 산출되는 경우라면, 프로세서(120)는 그 중 최소 값(min)을 각 작업의 양에 매칭되는 지연 시간으로 결정하여 메모리(110)에 저장할 수 있다.
일 예로, 도 4를 참조하면 프로세서(120)는 특정한 태스크를 수행해야 할 시점의 메모리 사용량 별로 offset 값을 달리할 수 있고, 메모리 사용량 별로 측정된 지연 시간 중 최소 값을 각 메모리 사용량에 매칭되는 offset 값으로 설정할 수 있다.
즉, 프로세서(120)가 수행 중인 작업의 양에 따라 동적인 offset 값을 설정함으로써, 프로세서(120)가 수행하고 있는 작업의 양에 따라 태스크의 처리 시점을 앞당기는 정도를 달리할 수 있다.
이를 통해, 고정 offset 값을 이용함으로써 작업의 양이 커짐에 따라 추가 지연이 발생하였던 도 3의 문제점이 해결될 수 있다.
만약, 특정한 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우(모니터링 결과 측정되지 않은 경우), 프로세서(120)는 메모리에 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경할 수도 있다.
예를 들어, 도 4의 경우를 참조하면, 프로세서(120)가 태스크 A를 수행해야 하는 시점의 프로세서(120)의 메모리 사용량이 500KB인 경우라면, 500KB에 대응되는 지연 시간은 모니터링된 바 없다.
이때, 프로세서(120)는 지연 시간이 측정된 메모리 사용량 중 최대 메모리 사용량인 10,000,000 KB에 있어 측정된 지연 시간만큼, 태스크 A를 수행하기 위한 처리 시점을 앞당길 수 있다.
한편, 프로세서(120)가 수행하고 있는 작업의 양이 많은 경우 각 작업의 양에 대해 측정된 지연 시간의 최소 및 최대 값 간의 차이가 커질 수 있다.
이러한 경우를 고려하여, 각 태스크에 대한 최대 허용 지터 값에 기초하여 태스크 처리 시점을 결정할 수도 있다.
도 5는 동일한 작업의 양에 대해 측정된 지연 시간의 최소 및 최대 값 간의 차이가 커서, 일부 지연 시간에 대해서는 태스크 처리 시점의 오차 범위를 초과하는 문제를 설명하기 위한 그래프이다.
도 5를 참조하면, 프로세서(120)가 수행하고 있는 작업의 양, 즉 메모리 사용량이 100,000 KB를 초과한 경우들에 있어, 모니터링된 지연 시간의 범위가 매우 커지게 됨을 확인할 수 있다.
관련하여, 태스크를 수행하기 위한 처리 시점에 있어, 각 태스크에 대한 최대 허용 지터(Zitter) 값을 고려할 필요가 있다. 이때, 지터는 특정한 신호에 대해서, 원하는 신호와 실제로 발생하는 신호 간에 발생하는 차이를 의미할 수 있다.
일 예로, Task A를 처리하는 시점에 대하여 (+) 또는 (-)로 0.1초까지 오차가 허용된다고 가정하면, 이때 Task A의 최대 허용 지터 값은 0.1초라고 할 수 있다.
도 5는 Task A를 수행해야 하는 처리 시점에 대한 최대 허용 지터 값이 Za인 경우를 가정한다.
도 5를 참조하면, 도 4의 방법으로 정해진 offset 값에만 기초하여 Task A의 처리 시점을 앞당긴 경우, 메모리 사용량이 100,000 KB를 초과한 경우에 있어 측정된 지연 시간 중 max에 해당하는 일부 지연 시간들에 대해서는 Task A의 최대 허용 지터 값 범위를 벗어나는 결과(Deadline miss)가 발생하게 될 수 있다.
비록, 도 5의 그래프상에 나타난 max 지연 시간들은 이미 측정된 과거의 값이기는 하지만, 모니터링 결과에 비추어 추가로 또 발생할 가능성이 있는 지연 시간이라는 점에서, 이러한 max 지연 시간들에 대해서도 최대 허용 지터 값 내에 위치할 수 있도록 offset 값을 조정할 필요가 있다.
따라서, 프로세서(120)는 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 태스크의 최대 허용 지터 값을 가산한 시간만큼 해당 태스크의 처리 시점을 변경할 수 있다.
구체적으로, 프로세서(120)는 작업의 양에 기초하는 동적 offset 값에, 추가로 수행해야 하는 태스크의 최대 허용 지터 값을 더한 "동적 offset New" 값만큼 해당 태스크의 처리 시점을 앞당길 수 있다.
도 6을 참조하면, 도 5와 달리 프로세서(120)는 메모리 사용량 각각에 대한 동적 offset 값에, 추가로 수행해야 하는 Task A의 최대 허용 지터 값 Za만큼 더한 "동적 offset New" 값만큼 Task A의 처리 시점을 앞당김으로써, 메모리 사용량이 100,000 KB를 초과한 경우에 있어서도 지연 시간 중 일부가 Task A의 최대 허용 지터 값 범위를 벗어나는 결과가 발생할 확률을 줄일 수 있다.
이와 같이, 특정한 태스크를 수행함에 있어 태스크의 최대 허용 지터 값 범위 내에 메모리 사용량 각각에 대하여 모니터링된 지연 시간들을 최대한 넓은 범위로 포함할 수 있도록 함으로써, 메모리 사용량 각각에 대하여 앞으로 발생될 지연 시간들에 대해서도 각 태스크를 처리하는 시점이 오차 범위를 벗어날 확률을 줄일 수 있다.
한편, 이를 위해 프로세서(120)는 특정한 태스크가 발생하면, 메모리(110)에 저장된 태스크 자료 구조로부터 발생된 태스크의 최대 허용 지터 값을 독출할 수 있다.
태스크 자료 구조는, 전자 장치(100)가 수행할 수 있는 하나 이상의 태스크에 대한 정보를 포함할 수 있다. 구체적으로, 태스크 자료 구조는 태스크 ID 정보, 태스크 상태 정보, 태스크 관계 정보 및 태스크 스케쥴링 정보 등을 포함할 수 있다.
또한, 태스크 자료 구조는 각각의 태스크를 처리하는 시점에 대한 최대 허용 지터 값에 대한 정보를 포함할 수 있다.
이를 위해, 프로세서(120)는 각 태스크에 대한 최대 허용 지터 값을 사용자로부터 입력받아 메모리(110)에 포함된 태스크 자료 구조에 저장할 수 있다.
또한, 프로세서(120)는 서버(도시되지 않음) 등 외부장치로부터 하나 이상의 태스크에 대한 최대 허용 지터 값을 수신하고 메모리(110)에 포함된 태스크 자료 구조에 저장할 수도 있다.
이렇듯, 프로세서(120)는 수행하고 있는 작업의 양뿐만 아니라, 추가로 수행하게 될 태스크의 특성도 고려하여 태스크의 처리 시점을 변경할 수 있다.
이를 통해, 프로세서(120)는 수행하고 있는 작업의 양이 많아 지연 시간이 비교적 넓은 범위에 걸쳐 불규칙적으로 발생하는 경우에도, 특정한 태스크를 수행하는 시점에 대한 Deadline miss의 발생 확률을 줄일 수 있다.
한편, 상기 설명한 실시 예들은 하나의 전자 장치(100)로만 수행될 수 있는 것은 아니고, 하나 이상의 전자 장치를 포함하는 시스템을 통해 구현될 수도 있다.
또한, 도 2에서는 태스크 처리와 관련된 구성들만 도시하였으나, 전자 장치(100)의 구성은 반드시 이에 한정되지 않고, 전자 장치(100)의 종류에 따라 다양한 추가 구성을 더 포함할 수 있다.
도 7은 본 개시의 다양한 실시 예를 설명하기 위한 전자 장치(100)의 세부 구성을 설명하기 위한 블록도이다.
도 7에 따르면, 전자 장치(100)가 메모리(110), 프로세서(120) 뿐만 아니라 통신부(130), 사용자 입력부(140) 및 출력부(150) 중 적어도 하나를 더 포함할 수 있다.
통신부(130)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기(도시되지 않음)와 무선 혹은 유선으로 데이터 통신을 수행하기 위한 구성이다.
프로세서(120)는 통신부(130)를 이용하여 각종 외부 기기와 통신을 수행할 수 있다.
일 예로, 프로세서(120)는 통신부(도 7의 (a)의 130)를 통해 서버(도시되지 않음) 등 외부장치로부터 하나 이상의 태스크에 대한 최대 허용 지터 값을 수신하고 메모리(110)에 포함된 태스크 자료 구조에 저장할 수도 있다.
프로세서(120)는 수행 중인 작업의 양별로 모니터링된 지연 시간에 대한 정보를 통신부(130)를 통해 외부 장치로부터 수신할 수 있다. 프로세서(120)는 수신된 정보를 기초로 수행해야 할 태스크의 처리 시점을 변경할 수도 있다.
또는, 프로세서(120)는 수행 중인 작업의 양별로 모니터링된 지연 시간에 대한 정보를 메모리(110)를 이용하여 구축한 뒤, 구축된 정보를 통신부(130)를 통해 외부 장치로 전송할 수 있다.
이때, 외부 장치는 구축된 지연 시간에 대한 정보에 기초하여 추가로 수행될 태스크에 대한 처리 시점을 변경하기 위한 offset 값을 계산한 뒤, 계산된 offset 값을 통신부(130)로 전송할 수도 있다.
프로세서(120)는 통신부(130)를 통해 수신한 계산된 offset 값에 기초하여, 수행될 태스크에 대한 처리 시점을 변경할 수 있다.
사용자 입력부(140)는 다양한 사용자 명령 및 정보를 입력받기 위한 구성이다. 프로세서(120)는 사용자 입력부(140)를 통해 입력된 사용자 명령에 대응되는 기능을 실행하거나, 사용자 입력부(140)를 통해 입력된 정보를 메모리(110)에 저장할 수도 있다.
일 예로, 프로세서(120)는 각 태스크에 대한 최대 허용 지터 값을 사용자 입력부(도 7의 (a)의 140)를 통해 사용자로부터 입력받아 메모리(110)에 포함된 태스크 자료 구조에 저장할 수 있다.
사용자 입력부(140)는 사용자 명령을 음성 형태로 수신하기 위해 마이크(도시되지 않음)를 포함하거나, 사용자 명령을 터치로 입력받기 위해 터치스크린으로서 출력부(150)의 디스플레이(도시되지 않음)와 함께 구현되거나 별도의 터치패드(도시되지 않음)로 구현될 수 있다.
또는, 사용자 입력부(140)는 사용자가 전자 장치(100)의 기능을 제어할 수 있게 하는 API(Application Programming Interface)를 포함할 수 있고, 전자 장치(100)가 수행할 수 있는 프로그램에 대한 사용자의 명령 내지는 제어를 API 방식으로 입력받을 수도 있다.
또한, 사용자 입력부(140)는 전자 장치(100)를 제어하기 위한 별도의 제어 장치(도시되지 않음)로부터 사용자 명령 또는 태스크에 대한 정보가 포함된 신호를 입력받을 수도 있다.
출력부(150)는 디스플레이(도시되지 않음), 음성 출력부(도시되지 않음) 등을 포함할 수 있다.
프로세서(120)는 수행 중인 작업의 양별로 임의의 태스크를 추가로 수행함에 있어 발생된 지연 시간을 모니터링한 결과에 대한 정보를 사용자에게 제공하도록 출력부(150)의 디스플레이를 제어할 수 있다.
또는, 프로세서(120)는 수행 중인 작업의 양별로 임의의 태스크를 추가로 수행함에 있어 발생된 지연 시간을 모니터링하고 있는 경우, 지연 시간을 모니터링 중인 전자 장치(100)의 상태에 대한 정보를 사용자에게 시각적 또는 청각적으로 제공하도록 출력부(150)의 디스플레이 또는 음성 출력부를 제어할 수도 있다.
도 8은 본 개시의 일 실시 예에 따른 시스템(100')을 도시한다. 시스템(100')은 서버(10) 및 하나 이상의 사용자 장치(20)를 포함할 수 있다.
서버(10)는 사용자 장치 각각(20-1, 20-2, ...)이 서버(10)의 요청에 기초하여 태스크를 수행함에 있어 기존에 사용자 장치 각각(20-1, 20-2, ...)이 수행 중인 작업의 양에 따라 소요된 지연 시간에 대한 정보를 모니터링할 수 있다.
구체적으로, 서버(10)는, 서버(10)의 태스크 수행 요청 시점으로부터 태스크 수행 요청을 받은 사용자 장치 각각(20-1, 20-2, ...)이 해당 태스크를 수행하기 시작하는 데에 걸린 시점까지의 지연 시간에 대한 정보, 및 요청을 받은 시점에 사용자 장치 각각(20-1, 20-2, ...)이 수행 중이던 작업의 양에 대한 정보를 사용자 장치 각각(20-1, 20-2, ...)으로부터 수신할 수 있다.
이를 통해, 서버(10)는 사용자 장치 각각(20-1, 20-2, ...)이 서버(10)로부터 요청을 받기 전에 수행 중이던 작업의 양에 기초하여 사용자 장치 각각(20-1, 20-2, ...)이 추가로 태스크를 수행하는 데에 걸리는 지연 시간을 모니터링 할 수 있다.
이 경우, 서버(10)는 모니터링된 지연 시간 및 사용자 장치 각각(20-1, 20-2, ...)에 수행을 요청할 태스크에 대한 최대 허용 지터 값에 기초하여, 요청될 태스크의 처리 시점을 변경하기 위한 offset 값을 계산할 수 있다.
그리고, 서버(10)는 태스크 수행 요청을 사용자 장치 각각(20-1, 20-2, ...)에 전송하는 시점을 계산된 offset 값만큼 앞당길 수 있다.
도 9는 본 개시의 일 실시 예에 따른 태스크 처리 방법을 설명하기 위한 흐름도이다.
전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링할 수 있다(S810). 즉, 수행 중이던 작업이 양별로 후속 작업을 개시할 때의 지연 시간을 측정할 수 있다.
이때, 작업의 양은 메모리 사용량, CPU에 걸린 부하의 정도 및 수행 중인 작업에 포함되는 태스크의 개수 등을 포함할 수 있다.
한편, 전자 장치는 수행하고 있는 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 모니터링의 수행 여부를 달리할 수도 있다.
전자 장치는 모니터링된 지연 시간을 저장할 수 있다(S820). 이때, 모니터링된 지연 시간은, 각 지연 시간이 측정된 작업의 양에 매칭되도록 저장될 수 있다.
이때, 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출된 경우, 그 중 최소 값을 해당 작업 양에 매칭되는 지연 시간으로 결정하여 저장할 수 있다.
그리고, 실행해야 할 태스크가 발생하면, 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 기초하여 태스크의 처리 시점을 변경할 수 있다 (S830). 이때, 태스크의 처리 시점을 변경하는 것은 해당 태스크를 실행하기 위한 타이머 인터럽트 신호의 발생 시점을 앞당기는 것일 수 있다.
일 예로, 태스크 발생 시점에 수행 중인 작업의 양이 메모리 사용량 10,000 KB에 해당한다면, 모니터링 결과 메모리 사용량 10,000 KB에 대해 저장된 지연 시간 중 최소 값만큼 태스크의 처리 시점을 앞당길 수 있다.
다만, 만약 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우, 즉 모니터링 결과에 포함되지 않은 경우라면, 모니터링되어 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 태스크의 처리 시점을 변경할 수 있다.
한편, 태스크 발생 시점에 수행 중이던 작업의 양만을 고려한 이상 실시 예와 달리, 발생한 태스크 자체의 특성을 추가로 고려할 수도 있다.
도 10은 태스크의 최대 허용 지터를 추가로 고려하는 본 개시의 다른 실시 예를 설명하기 위한 흐름도이다.
전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링할 수 있다(S910) .
이후, 모니터링된 지연 시간을 저장할 수 있다(S920).
그리고, 전자 장치에서 실행 가능한 태스크 각각의 최대 허용 지터 값을 입력 및 저장할 수 있다(S930). 전자 장치는 자체적으로 입력되거나 외부 장치로부터 수신되는 태스크별 최대 허용 지터 값을 저장할 수 있다.
이때, 최대 허용 지터 값은 각 태스크의 처리 시점에 있어 (+) 또는 (-) 방향만큼의 오차 허용치를 의미하며, 구체적으로는 absolute jitter를 의미할 수 있다.
또한, 수신 또는 입력된 태스크별 최대 허용 지터 값은 메모리(110)에 포함된 태스크 자료 구조에 추가될 수 있다.
그리고, 실행해야 할 태스크가 발생하면, 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에, 실행해야 할 태스크의 최대 허용 지터 값을 더한 시간을 계산할 수 있다(S940).
이를 위해, 실행해야 할 태스크가 발생하면, 태스크 자료 구조로부터 상기 태스크의 최대 허용 지터값을 독출할 수 있다.
이후, 실행해야 할 태스크의 처리시점을 계산된 시간만큼 변경할 수 있다(S950). 구체적으로는, 실행해야 할 태스크의 처리시점을 계산된 시간만큼 앞당길 수 있다.
이렇듯, 본 개시에 따른 다양한 실시 예들에 따르면, 전자 장치(100)가 수행하고 있는 작업의 양 및 추가로 수행해야 하는 태스크에 따라 태스크의 처리 시점을 달리함으로써, 지연 시간에 대한 문제를 효율적으로 해결할 수 있다.
도 9 및 도 10에 따라 설명한 태스크 처리 방법은, 도 2 및 도 7에서 도시 및 설명한 구성을 가지는 전자 장치에서 수행될 수 있으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 도 9 및 도 10에서 설명한 태스크 처리 방법을 수행하기 위한 프로그램이 설치된 다양한 종류의 전자 장치에서 상술한 바와 같이 태스크 처리 시점을 변경하여 태스크를 수행할 수 있다.
이러한 프로그램은 기록 매체에 저장된 상태로 배포될 수도 있다. 이 경우, 기록 매체가 연결 또는 탑재된 장치에 의해 상술한 태스크 처리 방법이 구현될 수 있다.
또는, 도 9 및 도 10에 따라 설명한 태스크 처리 방법은, 도 8에서 설명한 시스템(100')에 포함되는 서버(10) 및 하나 이상의 사용자 장치(20)를 통해 구현될 수도 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.
일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서(120) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치(100)에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치(100)에서의 처리 동작을 상술한 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자 장치
100': 시스템
110: 메모리
120: 프로세서
130: 통신부
140: 사용자 입력부
150: 출력부

Claims (20)

  1. 전자 장치에 있어서,
    메모리; 및
    상기 메모리를 이용하여 작업을 수행하는 프로세서;를 포함하며,
    상기 프로세서는, 상기 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하여 상기 메모리에 저장하고,
    실행해야 할 태스크가 발생하면, 상기 메모리에 저장된 태스크 자료 구조로부터 상기 태스크의 최대 허용 지터값을 독출하고,
    상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 상기 태스크의 상기 최대 허용 지터값을 가산하여 상기 태스크의 처리 시점을 변경하며,
    상기 최대 허용 지터 값은, 상기 태스크의 처리 과정 내 특정 신호에 대한 이상적인 발생 시점과 실제 발생 시점 간의 최대 허용 차이 값을 포함하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 지연 시간으로 결정하여 상기 메모리에 저장하는, 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 수행 중인 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우, 상기 메모리에 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경하는, 전자 장치.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 작업의 양은,
    메모리 사용량, CPU에 걸린 부하의 정도 및 상기 수행 중인 작업에 포함되는 태스크의 개수 중 적어도 하나인, 전자 장치.
  8. 전자 장치의 태스크 처리 방법에 있어서,
    상기 전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하여 저장하는 단계;
    실행해야 할 태스크가 발생하면, 태스크 자료 구조로부터 상기 태스크의 최대 허용 지터값을 독출하는 단계; 및
    상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에 상기 태스크의 상기 최대 허용 지터값을 가산하여, 상기 태스크의 처리 시점을 변경하는 단계;를 포함하며,
    상기 최대 허용 지터 값은, 상기 태스크의 처리 과정 내 특정 신호에 대한 이상적인 발생 시점과 실제 발생 시점 간의 최대 허용 차이 값을 포함하는, 태스크 처리 방법.
  9. 제8항에 있어서,
    상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 지연 시간으로 결정하여 저장하는 단계;를 더 포함하는, 태스크 처리 방법.
  10. 제9항에 있어서,
    상기 전자 장치가 수행하고 있는 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정하는 단계;를 더 포함하는, 태스크 처리 방법
  11. 제10항에 있어서,
    상기 태스크의 처리 시점을 변경하는 단계는,
    상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 미산출된 경우, 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 상기 태스크의 처리 시점을 변경하는, 태스크 처리 방법.
  12. 삭제
  13. 삭제
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 작업의 양은,
    메모리 사용량, CPU에 걸린 부하의 정도 및 상기 수행 중인 작업에 포함되는 태스크의 개수 중 적어도 하나인, 태스크 처리 방법.
  15. 전자 장치의 프로세서에 의하여 실행되어, 상기 전자 장치로 하여금,
    상기 전자 장치에서 수행 중인 작업의 양에 기초하여, 후속 작업을 개시할 때의 지연 시간을 모니터링하는 단계;
    상기 지연 시간을 상기 수행 중인 작업의 양에 대응되도록 저장하는 단계; 및
    상기 저장된 지연 시간에 기초하여, 작업을 추가로 수행하기 위한 타이머 인터럽트(Timer Interrupt)의 발생 시점에 대한 오프셋(Offset) 값을 설정하는 단계;를 포함하며,
    상기 오프셋 값을 설정하는 단계는,
    태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간에, 상기 태스크의 최대 허용 지터값을 가산하여, 상기 오프셋 값을 산출하는 단계;를 포함하는 동작을 수행하도록 하는 컴퓨터 명령어가 저장된 비일시적 컴퓨터 판독 가능 매체.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 동작은,
    실행해야 할 태스크가 발생하면, 상기 설정된 오프셋 값에 기초하여 상기 태스크의 실행을 위한 타이머 인터럽트의 발생 시점을 변경하는 단계;를 더 포함하는, 컴퓨터 판독 가능 매체.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 저장하는 단계는,
    상기 모니터링 중에 동일 작업 양에 대해 복수의 지연 시간이 산출되면, 그 중 최소 값을 상기 동일 작업 양에 대응되는 지연 시간으로 저장하는, 컴퓨터 판독 가능 매체.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    상기 동작은,
    상기 전자 장치가 수행하고 있는 작업에 포함된 각 태스크의 우선 순위 및 작업 마감일에 기초하여 상기 모니터링의 수행 여부를 결정하는 단계;를 더 포함하는, 컴퓨터 판독 가능 매체.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 타이머 인터럽트의 발생 시점을 변경하는 단계는,
    상기 태스크 발생 시점에 수행 중인 작업의 양에 대응되는 지연 시간이 모니터링되지 않은 경우, 저장된 지연 시간 중에서 최대 작업 양에 대해 산출된 지연 시간에 기초하여 설정된 오프셋 값에 기초하여 상기 태스크의 실행을 위한 타이머 인터럽트의 발생 시점을 변경하는, 컴퓨터 판독 가능 매체.
  20. 삭제
KR1020180023730A 2018-02-27 2018-02-27 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체 KR102520596B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180023730A KR102520596B1 (ko) 2018-02-27 2018-02-27 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체
PCT/KR2019/000138 WO2019168265A1 (ko) 2018-02-27 2019-01-04 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180023730A KR102520596B1 (ko) 2018-02-27 2018-02-27 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Publications (2)

Publication Number Publication Date
KR20190102795A KR20190102795A (ko) 2019-09-04
KR102520596B1 true KR102520596B1 (ko) 2023-04-12

Family

ID=67805869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180023730A KR102520596B1 (ko) 2018-02-27 2018-02-27 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Country Status (2)

Country Link
KR (1) KR102520596B1 (ko)
WO (1) WO2019168265A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668951B (zh) * 2019-10-16 2024-06-21 北京京东乾石科技有限公司 一种任务处理方法、装置、服务器及存储介质
KR102497257B1 (ko) * 2020-12-15 2023-02-06 현대오토에버 주식회사 오토사 플랫폼의 메인 기능과 태스크의 매핑 방법
KR102582726B1 (ko) * 2022-02-08 2023-09-25 쿠팡 주식회사 배송 업무의 연기와 관련된 정보를 제공하는 전자 장치 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356033B1 (ko) 2011-12-16 2014-01-29 한국과학기술원 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
US20150154054A1 (en) 2013-11-29 2015-06-04 Fujitsu Limited Information processing device and method for assigning task
WO2016027452A1 (ja) * 2014-08-19 2016-02-25 日本電気株式会社 解析制御装置、解析制御方法及び記録媒体
KR101725151B1 (ko) * 2015-12-15 2017-04-26 현대오트론 주식회사 임베디드 운영체제에서의 태스크 지연 관리 방법 및 그 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080052343A (ko) * 2006-12-05 2008-06-11 한국전자통신연구원 리눅스 커널 실시간 성능 측정 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356033B1 (ko) 2011-12-16 2014-01-29 한국과학기술원 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
US20150154054A1 (en) 2013-11-29 2015-06-04 Fujitsu Limited Information processing device and method for assigning task
WO2016027452A1 (ja) * 2014-08-19 2016-02-25 日本電気株式会社 解析制御装置、解析制御方法及び記録媒体
KR101725151B1 (ko) * 2015-12-15 2017-04-26 현대오트론 주식회사 임베디드 운영체제에서의 태스크 지연 관리 방법 및 그 장치

Also Published As

Publication number Publication date
WO2019168265A1 (ko) 2019-09-06
KR20190102795A (ko) 2019-09-04

Similar Documents

Publication Publication Date Title
KR102520596B1 (ko) 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체
US9727248B2 (en) Dynamic IO operation timeout assignment for a solid state drive
US9448839B2 (en) Backoff job queue polling mechanism
US10599353B2 (en) Techniques for managing storage space allocation within a storage device
US9870275B2 (en) Processor thread management
US9798584B1 (en) Methods and apparatus for IO sizing based task throttling
US9513953B2 (en) Reducing virtual machine suspension time in checkpoint system
US11144330B2 (en) Algorithm program loading method and related apparatus
US10296234B2 (en) Method and apparatus for adjusting throughput of storage device
US20170201566A1 (en) File downloading method, apparatus, and terminal device
US20200117623A1 (en) Adaptive Interrupt Coalescing
US20160239442A1 (en) Scheduling volatile memory maintenance events in a multi-processor system
WO2017193964A1 (zh) 一种组件升级方法、装置和系统
JP2020053013A (ja) 要求処理方法及び装置
CN117056054A (zh) 中断控制方法、中断控制器、计算机设备及存储介质
US20190026142A1 (en) Information processing apparatus, control method and storage medium
JP7214287B1 (ja) リソース割り当ての決定方法、装置、計算装置及びコンピュータプログラム
CN108235422B (zh) 天线功率的设置方法及电子装置
US11388050B2 (en) Accelerating machine learning and profiling over a network
US20160239441A1 (en) Systems and methods for providing kernel scheduling of volatile memory maintenance events
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
WO2019169727A1 (zh) 网络流量测试方法、装置、设备以及计算机可读存储介质
TW201506636A (zh) 簽核動態調整方法及系統
JP6379841B2 (ja) 情報処理装置、試験方法および試験制御プログラム
US11868802B2 (en) Application lifecycle management based on real-time resource usage

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