KR20120127694A - 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치 - Google Patents

디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치 Download PDF

Info

Publication number
KR20120127694A
KR20120127694A KR1020110103358A KR20110103358A KR20120127694A KR 20120127694 A KR20120127694 A KR 20120127694A KR 1020110103358 A KR1020110103358 A KR 1020110103358A KR 20110103358 A KR20110103358 A KR 20110103358A KR 20120127694 A KR20120127694 A KR 20120127694A
Authority
KR
South Korea
Prior art keywords
application
priority
group
scheduling
user
Prior art date
Application number
KR1020110103358A
Other languages
English (en)
Other versions
KR101897598B1 (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 EP12785647.4A priority Critical patent/EP2707796A4/en
Priority to US13/469,648 priority patent/US9183047B2/en
Priority to PCT/KR2012/003728 priority patent/WO2012157906A2/en
Priority claimed from PCT/KR2012/003728 external-priority patent/WO2012157906A2/en
Publication of KR20120127694A publication Critical patent/KR20120127694A/ko
Priority to US14/878,661 priority patent/US9594593B2/en
Application granted granted Critical
Publication of KR101897598B1 publication Critical patent/KR101897598B1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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
    • 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/461Saving or restoring of program or task context
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/44Arrangements for executing specific programs
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

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)

Abstract

본 발명은 프로세서(Processor)의 성능이 뛰어나지 않은 임베디드(Embedded) 환경에서 어플리케이션의 처리 속도를 개선하기 위한 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치에 관한 것으로, 어플리케이션의 실행이 요청되는 과정; 서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하는 과정; 및 상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하고, 상기 스케쥴링에 대응하여 상기 어플리케이션을 실행하는 과정을 포함하는 것을 특징으로 한다.

Description

디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치{METHOD AND APPARATUS FOR IMPROVING PROCESSING SPEED OF APPLICATION IN DIGITAL DEVICE}
본 발명은 어플리케이션(Application)의 처리 속도를 개선하기 위한 방법 및 장치에 관한 것으로, 특히 프로세서(Processor)의 성능이 뛰어나지 않은 임베디드(Embedded) 환경에서 어플리케이션의 처리 속도를 개선하기 위한 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치에 관한 것이다.
최근의 디지털 디바이스는 프로세서 및 메모리 등의 기술적 발전으로 인하여, 제조사에서 제공하는 어플리케이션 이외에 다양한 어플리케이션을 설치할 수 있다. 또한, 상기 디지털 디바이스는 다수의 어플리케이션을 동시에 실행할 수 있다.
하지만, 상기 디지털 디바이스는 다수의 어플리케이션이 실행되는 경우 프로세서가 각 어플리케이션에 동일한 비율로 할당되어 어플리케이션 실행을 처리하도록 하고 있다. 따라서 다수의 어플리케이션이 실행되고 있는 상태에서 사용자가 다른 어플리케이션의 실행을 요청하는 경우 종래의 디지털 디바이스는 상기 실행 요청된 다른 어플리케이션에 프로세서를 충분히 할당하지 못하기 때문에 상기 다른 어플리케이션을 실행시키기 위한 소요 시간이 오래 걸린다는 문제점이 있다. 이는 사용자의 입장에서 디지털 디바이스의 성능에 대한 불만 요소가 될 수 있다. 특히, 다수의 어플리케이션이 설치 가능한 최근의 디지털 디바이스는 백그라운드로 동작하는 어플리케이션들이 다수 존재하기 때문에, 프로세서의 성능이 좋지 못한 경우 사용자에 의해 실행 요청된 어플리케이션의 처리 속도가 저하되는 문제점이 있다. 이로 인하여, 최근에는 프로세서의 물리적 리소스 지원이 부족한 임베디드 환경을 가지는 디지털 디바이스에서 어플리케이션을 실행시키기 위한 소요 시간을 단축할 수 있는 방안이 요구되고 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위하여 창안된 것으로, 본 발명의 목적은 프로세서의 물리적 리소스 지원이 여유롭지 못한 임베디드 환경에서 어플리케이션 실행 시 대기 시간을 단축할 수 있는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치를 제공하는데 있다.
본 발명의 다른 목적은 어플리케이션들이 필요로 하는 처리 속도 및 응답 속도의 중요도를 기반으로 어플리케이션들을 다수의 그룹으로 그룹핑하고, 각 그룹별로 스케쥴링(Scheduling)을 위한 우선순위를 차등 적용하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 사용자에 의해 실행 요청된 어플리케이션을 우선적으로 처리하도록 상기 사용자에 의해 실행 요청된 어플리케이션 또는 동시에 실행되고 있는 타 어플리케이션들의 우선순위를 동적으로 변경하여 상기 사용자에 의해 실행 요청된 어플리케이션의 실행을 위한 소요 시간을 단축할 수 있는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치를 제공하는데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법은 어플리케이션의 실행이 요청되는 과정; 서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하는 과정; 및 상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하고, 상기 스켈쥴링에 대응하여 상기 어플리케이션을 실행하는 과정을 포함하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 다른 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법은 사용자 어플리케이션의 실행 요청 시 타 어플리케이션이 실행되고 있는지 확인하는 과정; 상기 확인 결과 적어도 하나의 타 어플리케이션이 실행되고 있는 경우 상기 사용자 어플리케이션이 우선적으로 처리될 수 있도록 상기 타 어플리케이션의 우선순위를 변경시키고, 상기 변경된 우선순위를 기반으로 스케쥴링하는 과정; 및 상기 스케쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 적어도 하나의 타 어플리케이션을 실행하는 과정을 포함하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 장치는 어플리케이션 실행 요청 시 서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하는 그룹핑부; 상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하는 스케쥴러; 및 상기 스케쥴러의 스케쥴링에 따라 어플리케이션을 실행하는 프로세서를 포함하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 다른 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 장치는 사용자 어플리케이션의 실행을 위한 신호를 입력하는 입력부; 및 상기 입력부로부터 사용자 어플리케이션의 실행을 위한 신호 입력 시 실행 중인 적어도 하나의 타 어플리케이션이 존재하는지 확인하고, 상기 확인 결과 적어도 하나의 타 어플리케이션이 존재하는 경우 상기 사용자 어플리케이션이 우선적으로 처리될 수 있도록 상기 적어도 하나의 타 어플리케이션의 우선순위를 변경시키고, 상기 변경된 우선순위를 기반으로 스케쥴링하며, 상기 스켈쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 적어도 하나의 타 어플리케이션의 실행을 제어하는 제어부를 포함하는 것을 특징으로 한다.
이상에서 살펴본 바와 같이 본 발명의 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치는 어플리케이션들이 필요로 하는 처리 속도 및 응답 속도의 중요도를 기반으로 다수의 그룹으로 그룹핑하고, 각 그룹별로 우선순위를 차등 적용함에 따라 프로세서를 효율적으로 사용할 수 있다. 즉, 본 발명은 우선순위가 높은 그룹에 속한 어플리케이션이 상대적으로 프로세서를 많이 점유하고, 우선순위가 낮은 그룹에 속한 어플리케이션이 프로세서를 적게 점유하여 우선순위가 높은 그룹에 속한 어플리케이션이 먼저 처리되도록 할 수 있다. 이는 사용자의 입장에서 어플리케이션의 실행 속도가 향상된 것과 유사한 효과를 제공할 수 있다.
또한, 본 발명은 사용자에 의해 특정 어플리케이션의 실행이 요구되는 시점에 타 어플리케이션의 우선순위를 낮추거나, 상기 특정 어플리케이션을 우선 처리하도록 함으로써, 상기 특정 어플리케이션 실행을 위한 소요 시간을 감소시킬 수 있다. 즉, 본 발명은 사용자에 의해 실행 요청된 어플리케이션의 처리 속도를 향상 시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 디지털 디바이스의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 실시 예에 따른 제어부의 구성을 좀 더 상세히 도시한 도면이다.
도 3은 본 발명의 제1실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 제1실시 예에 따른 어플리케이션의 그룹 할당 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 제2실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 제2실시 예에 따른 어플리케이션의 우선순위 변경 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.상세한 설명에 앞서, 본 발명의 실시 예에 따른 디지털 디바이스(Digital Device)는 임베디드 시스템 환경을 가지는 장치로써, 개인 정보 단말기(PDA), 이동통신 단말기, 스마트폰(Smart Phone), 태블릿(Tablet) PC, 스마트 TV(Smart TeleVision), 카메라 등이 될 수 있다.
본 발명은 프로세서(Processor)의 성능이 뛰어나지 않은 임베디드(Embedded) 시스템 환경에서 어플리케이션의 실행을 위한 소요 시간을 단축하기 위하여, 많은 프로세서의 점유율을 필요로 하는 쓰레드(Thread)들이 프로세서 사용의 우선권을 행사할 수 있게 하는 것을 특징으로 한다. 이를 위하여 본 발명은 사용 가능한 프로세서의 여유 점유율이 부족한 상태에 도달할 때, 어떤 어플리케이션들이 먼저 스케쥴링 되어야 하는가를 결정하기 위해서, 어플리케이션들의 스케쥴링 속성(Attribute) 및 특성(Property)을 기반으로 어플리케이션들을 다수의 그룹으로 분류하고, 각 그룹에 서로 다른 우선순위(Priority)를 부여하는 것을 특징으로 한다. 또는, 본 발명의 다른 실시 예에서는 타 어플리케이션이 실행되고 있는 상태에서 사용자가 특정 어플리케이션의 실행을 요청하는 경우 상기 특정 어플리케이션이 우선적으로 처리될 수 있도록 어플리케이션들의 우선순위를 변경할 수 있다. 예를 들어, 본 발명의 다른 실시 예에서는 상기 타 어플리케이션의 실행을 중지하고 상기 특정 어플리케이션을 실행하도록 제어하거나, 상기 타 어플리케이션의 우선순위를 감소시켜 상기 특정 어플리케이션이 상대적으로 좀 더 많은 점유율을 확보하도록 하여 상기 특정 어플리케이션의 처리 속도를 향상시키는 것을 특징으로 한다.
도 1은 본 발명의 실시 예에 따른 디지털 디바이스의 구성을 개략적으로 도시한 블록도이고, 도 2는 본 발명의 실시 예에 따른 제어부의 구성을 좀 더 상세히 도시한 도면이다.
상기 도 1 및 도 2를 참조하면, 본 발명의 실시 예에 따른 디지털 디바이스(100)는 제어부(110), 저장부(120), 표시부(130), 입력부(140), 무선 통신부(150) 및 오디오 처리부(160)를 포함할 수 있다.
상기 오디오 처리부(160)는 오디오 신호를 송수신하여 인코딩(Encoding) 및 디코딩(Decoding)을 수행하는 음향 부품으로 형성될 수 있다. 이러한 상기 오디오 처리부(160)는 코덱(Codec) 및 오디오 앰프(Amp) 등을 포함할 수 있다. 상기 오디오 처리부(160)는 마이크(MIC) 및 스피커(SPK)와 연결되며, 상기 마이크(MIC)로부터 입력되는 아날로그 음성 신호를 디지털 음성 신호로 변환하여 상기 제어부(110)로 전송하고, 상기 제어부(110)로부터 입력되는 디지털 음성 신호를 아날로그 음성 신호로 변환하여 스피커(SPK)를 통해 출력할 수 있다. 또한, 상기 오디오 처리부(160)는 디지털 디바이스(100)에서 발생하는 다양한 오디오 신호(예컨대, MP3 파일, 동영상 파일 재생 등에 따른 오디오 신호 등)를 스피커(SPK)를 통해 출력할 수 있다. 상기 오디오 처리부(160)는 어플리케이션 실행에 따른 다양한 오디오 신호를 출력할 수 있다.
상기 무선 통신부(150)는 기지국과 통화(음성 통화 및 화상 통화 포함)를 위한 통화 채널 및 데이터 전송을 위한 데이터 통신 채널 등을 형성할 수 있다. 예를 들어, 상기 무선 통신부(150)는 제어부(110)의 제어 하에 음성 신호 및 화상 신호를 상대방 단말기에 전송하거나, 상대방 단말기로부터 음성 신호 및 화상 신호를 수신할 수 있다. 이러한 상기 무선 통신부(150)는 송신되는 신호의 주파수 상승 변환 및 증폭하는 무선주파수 송신부(미도시), 수신되는 신호를 저잡음 증폭하고 주파수 하강 변환하는 무선주파수 수신부(미도시) 및 수신 신호와 송신 신호를 분리하는 송수신 분리부(미도시) 등을 포함할 수 있다. 한편, 상기 디지털 디바이스(100)가 무선 통신 기능을 제공하지 않는 경우 상기 무선 통신부(150)는 생략될 수 있다.
상기 표시부(130)는 디지털 디바이스(100)의 각종 메뉴를 비롯하여 사용자가 입력한 정보 또는 사용자에게 제공하는 정보를 표시한다. 즉, 상기 표시부(130)는 디지털 디바이스(100)의 이용에 따른 다양한 화면 예를 들면, 다수의 어플리케이션이 표시된 대기 화면, 어플리케이션 실행 화면, 메뉴 화면, 메시지 작성 화면, 통화 화면 등을 제공할 수 있다. 상기 표시부(130)는 액정 표시 장치(Liquid Crystal Display : LCD), OLED(Organic Light Emitted Diode), AMOLED(Active Matrix Organic Light Emitted Diode) 등으로 형성될 수 있다. 또한, 상기 표시부(130)가 터치스크린(Touch-screen, 미도시)으로 형성되는 경우 상기 표시부(130)는 입력부(140)의 기능을 함께 수행할 수 있다.
상기 입력부(140)는 숫자 또는 다양한 문자 정보를 입력받고, 각종 기능들의 설정 및 상기 디지털 디바이스(100)의 기능 제어를 위한 입력키 및 기능키들을 포함할 수 있다. 특히, 본 발명에 따른 상기 입력부(140)는 어플리케이션의 실행을 요청하는 입력 신호, 어플리케이션의 동작을 제어하는 입력 신호 등을 제어부(110)에 입력할 수 있다. 이러한 입력부(140)는 버튼식 키패드(Key Pad), 볼 조이스틱(Ball Joystick), 옵티컬 조이스틱(Optical Joystick), 휠 키(Wheel Key), 터치 키(Touch key), 터치 패드(Touch Pad), 터치스크린(미도시) 등과 같은 입력 수단들 중 어느 하나 또는 이들의 조합으로 형성될 수 있다.
상기 저장부(120)는 본 발명의 실시 예에 따른 기능 동작에 필요한 프로그램을 비롯하여, 사용자 데이터 등을 저장할 수 있다. 예를 들어, 상기 저장부(120)는 디지털 디바이스(100)의 전반적인 동작을 제어하는 프로그램 및 디지털 디바이스(100)를 부팅시키는 운영체제(OS, Operating System), 디지털 디바이스(100)의 기타 옵션(Options) 기능 예컨대, 카메라 기능, 이미지 또는 동영상 재생 기능, 근거리 무선 통신 기능 등에 필요한 어플리케이션 등을 저장할 수 있다. 또한, 상기 저장부(120)는 표시부(130)가 터치스크린(미도시)으로 형성되는 경우 상기 터치스크린(미도시) 운용을 위한 키 맵이나 메뉴 맵 등을 저장할 수 있다. 여기서 키 맵, 메뉴 맵은 각각 다양한 형태로 구성될 수 있다. 예를 들어, 상기 키 맵은 키보드 맵이나, 3*4 키 맵, 쿼티 키 맵 등이 될 수 있고, 현재 활성화되고 있는 어플리케이션의 운용 제어를 위한 제어키 맵 또는 메뉴 맵이 될 수 있다. 특히, 본 발명의 실시 예에 따른 상기 저장부(120)는 그룹 테이블(121) 및 헤쉬 테이블(122)을 포함할 수 있다.
상기 그룹 테이블(121)은 어플리케이션들의 처리 속도 및 응답 속도의 중요도에 따라 다수의 그룹으로 구분하여 저장한 테이블이다. 상기 어플리케이션이 다수의 프로세스(Process) 또는 쓰레드(Thread)로 구성되는 경우 상기 그룹 테이블(121)은 어플리케이션을 구성하는 프로세스 또는 쓰레드 단위로 그룹을 분류하여 저장할 수 있다. 상기 그룹은 "Urgent Task", "Normal Task", "Service Task", "Background Task" 및 "Idle Task"를 포함할 수 있다. 이하에서는 설명의 편의를 위하여 쓰레드 단위로 그룹을 저장하는 것으로 가정하여 설명하기로 한다.
상기 "Urgent Task"는 사용자와 상호 작용하며 표시부(130)의 최상위에 있는 쓰레드 또는 현재 수행되고 있는 즉, 프로세서(Processor, 113)를 점유하고 있는 쓰레드로, 긴급한 처리를 필요로 하는 쓰레드이다. 상기 "Urgent Task"는 사용자 인터페이스에 대한 빠른 응답을 처리하기 위해 사용될 수 있다. 상기 "Normal Task"는 표시부(130) 상에 표시되고 있으나, 긴급한 처리를 요하지 않는 쓰레드이다. 이러한 "Normal Task"는 더 이상 수행되지 않을 때까지 종료되지 않으며, 실행 가능한 상태로 유지된다. 상기 "Service Task"는 어플리케이션들의 동작을 위해 주요 기능을 제공하는 미들웨어(Middleware) 레벨의 쓰레드로, 서비스를 점유하고 있다. 즉, 상기 "Service Task"는 사용자에게 직접 보여지지 않으나, 어플리케이션이 요청한 기능을 수행하기 위하여, 상기 "Urgent Task" 및 "Normal Task"들을 처리하기에 충분한 프로세서(113) 리소스가 존재하는 한, 항상 실행 가능한 상태를 유지할 수 있다. 상기 "Background Task"는 사용자에게 보여지지 않는 쓰레드이다. 이러한 "Background Task" 그룹에 속한 쓰레드들은 사용자의 어플리케이션 사용에 직접적인 영향을 미치지 않는다. 상기 "Background Task"는 상기 "Urgent Task", "Normal Task" 및 "Service Task"로부터 프로세서(113) 사용 요청이 있을 경우 종료된다. 이때, 일반적으로 상기 "Background Task"에 속한 어플리케이션 중 가장 최근에 사용된 어플리케이션이 다시 사용될 확률이 높기 때문에 가장 마지막에 종료된다. 상기 "Idle Task"는 활성화되어 있는 어플리케이션의 어떠한 컴포넌트(component)도 점유하지 쓰레드이다. 상기 "Idle Task"는 사용자가 해당 어플리케이션의 실행을 요청하였을 때, 시작 소요 시간을 감소하기 위하여 사용된다. 즉, 상기 "Idle Task"는 캐쉬(Cache) 역할을 수행할 수 있다.
상기 해쉬 테이블(Hash Table, 122)은 사용자 공간(User Space)의 쓰레드ID((Thread IDentification : TID)와 OS 커널(Kernel)에서의 쓰레드 ID 즉, LWPID(Light Weight Process ID)를 매핑하여 저장한 테이블이다.
상기 제어부(110)는 디지털 디바이스(100)의 전반적인 동작 및 디지털 디바이스(100)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 특히, 본 발명에 따른 상기 제어부(110)는 어플리케이션의 실행이 요청되면 서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하고, 상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하며, 상기 스케쥴링에 대응하여 상기 어플리케이션을 실행하도록 제어할 수 있다. 또한, 상기 제어부(110)는 사용자 어플리케이션의 실행을 요청하는 신호 입력 시 실행 중인 적어도 하나의 타 어플리케이션이 존재하는지 확인하고, 상기 확인 결과 적어도 하나의 타 어플리케이션이 존재하는 경우 상기 사용자 어플리케이션이 우선적으로 처리될 수 있도록 상기 적어도 하나의 타 어플리케이션의 우선순위를 변경(예컨대 감소)시키고, 변경된 우선순위를 기반으로 스케쥴링하며, 상기 스케쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 적어도 하나의 타 어플리케이션의 실행을 제어할 수 있다. 여기서, 상기 타 어플리케이션은 사용자 어플리케이션과 유사한 우선순위를 가지거나, 높은 우선순위를 가지는 어플리케이션이 될 수 있다. 이를 위하여 상기 제어부(110)는 그룹핑부(111), 스케쥴러(112) 및 프로세서(113)를 포함할 수 있다.
상기 그룹핑부(111)는 어플리케이션 실행 요청 시 실행 요청된 어플리케이션에 할당된 그룹을 확인할 수 있다. 상기 실행 요청된 어플리케이션에 그룹이 할당되지 않은 경우 상기 그룹핑부(111)는 기 설정된 규칙(예컨대 응용프로그램의 처리 속도 및 응답 속도의 중요도)에 따라 상기 다수의 그룹 중 어느 하나의 그룹을 상기 실행 요청된 어플리케이션에 할당할 수 있다. 한편, 상기 어플리케이션의 스케쥴링 속성이 설정되지 않은 경우 상기 그룹핑부(111)는 해당 어플리케이션을 일반 그룹으로 할당하고, 스케쥴링(쓰레드) 속성이 설정된 경우 설정된 스케쥴링 속성에 따라 상기 다수의 그룹 중 어느 하나의 그룹을 할당할 수 있다. 이때, 상기 어플리케이션이 다수의 프로세스 또는 쓰레드로 구성된 경우 상기 그룹핑부(111)는 프로세스 또는 쓰레드 단위로 그룹을 각각 할당할 수 있다. 이와 같은 그룹 분류는 어플리케이션이 최초 실행될 때 수행되며, 해당 어플리케이션이 완전히 종료될 때까지 분류된 그룹을 유지할 수 있다. 이에 대한 설명은 도 4를 참조하여 후술하기로 한다.
상기 스케쥴러(112)는 어플리케이션이 수행될 순서를 조정하고, 실행 가능한 작업(Task)에 순서를 할당할 수 있다. 특히, 본 발명에 따른 스케쥴러(112)는 그룹에 할당된 우선순위를 기반으로 스케쥴링할 수 있다. 즉, 상기 스케쥴러(112)는 프로세서(113)가 우선순위가 높은 어플리케이션을 먼저 처리하도록 스케쥴링할 수 있다. 상기 도 2에 도시된 바와 같이, 다수의 그룹에 포함된 어플리케이션들의 실행이 요구되는 경우 상기 스케쥴러(112)는 상대적으로 우선순위가 높게 설정된(예컨대 "Urgent Task", "Normal Task") 그룹에 속한 어플리케이션이 먼저 실행되도록 스케쥴링할 수 있다. 또한, 상기 스케쥴러(112)는 사용자 어플리케이션 실행 시 상기 사용자 어플리케이션 또는 타 어플리케이션의 변경된 우선순위에 따라 스케쥴링할 수 있다.
상기 프로세서(113)는 스케쥴러(112)의 스케쥴링에 따라 어플리케이션을 실행할 수 있다. 상기 프로세서(113)는 아래 <표 1>과 같은 시스템 콜 및 라이브러리 콜 함수를 이용하여 어플리케이션을 구성하는 프로세스(Process) 또는 쓰레드(Thread)의 우선순위를 설정할 수 있다.
Content Function name Call Linux
Thread
NPTL
Normal Priority
(=Regular)
Range:-20~19
Process setpriority() or nice() System call

getpid()


gettid()
Thread setpriority() or nice() System call
Real-time Priority
(=time-critical)
Range:1~99
Process sched_setscheduler()
sched_setparam()
System call
Thread pthread_setschedparam() Library call
상기 <표 1>을 참조하면, 시스템 콜 "setpriority()" 함수 또는 "nice()" 함수를 이용하여 실행 중인 "Normal Priority"를 가지는 프로세스 또는 쓰레드의 우선순위를 변경할 수 있음을 알 수 있다. 또한, 라이브러리 콜 "pthread_setschedparam()" 함수를 이용하여 "Real-time Priority"를 가지는 쓰레드의 우선순위를 변경할 수 있음을 알 수 있다. 여기서, 상기 "Normal Priority"는 "Dynamic Priority"라고도 불리우며, 주어진 시간 동안 프로세서(113)의 사용을 공유한다. 이때, 상기 "Normal Priority"는 nice() 함수에 의해 설정되는NICE값에 따라 동작되면, 상기 Nice값이 낮을수록 프로세서(113)를 더 오랫동안 사용할 수 있다. 상기 "Real-time Priority"는 실시간성이 요구되는 쓰레드 또는 프로세스에 적용하기 위한 우선순위이다. 이러한 "Real-time Priority"는 사용자 공간에서는 잘 사용되지 않으며, OS 커널(Kernel) 레벨에서 "Watchdog", "Migration"등에 사용된다. 이와 같은 우선순위 변경에 대한 상세한 설명은 후술하기로 한다.
상기 도 1에서 도시하지 않았지만 본 발명에 따른 디지털 디바이스(100)는 이미지 또는 동영상 촬영을 위한 카메라 모듈, 방송 수신을 위한 방송 수신 모듈, MP3(MPeg audio layer-3) 모듈과 같은 디지털 음원 재생 모듈 및 근접 센싱을 위한 근접 센서 모듈 등 부가 기능을 제공하기 위한 구성 요소들을 선택적으로 더 포함할 수 있다. 이러한 구성 요소들은 디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 본 발명에 따른 디지털 디바이스(100)는 상기 언급된 구성 요소들과 동등한 수준의 구성 요소들을 더 포함할 수 있다.
도 3은 본 발명의 제1실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 3을 참조하면, 본 발명의 실시 예에 따른 제어부(110)는 301 단계에서 어플리케이션의 실행 요청을 감지할 수 있다. 상기 어플리케이션의 실행이 요청되면, 상기 제어부(110)는 303 단계에서 그룹이 이전에 할당된 어플리케이션인지 확인할 수 있다.
상기 실행 요청된 어플리케이션에 그룹이 이전에 할당되지 않은 경우 상기 제어부(110)는 305 단계로 진행하여 그룹 할당 과정을 수행할 수 있다. 간략히 설명하면, 상기 제어부(110)는 어플리케이션의 스케쥴링 속성을 체크하고, 기 설정된 규칙에 따라 다수의 그룹 중 어느 하나의 그룹으로 분류할 수 있다. 이때, 상기 제어부(110)는 어플리케이션이 다수의 프로세스 또는 쓰레드로 구성된 경우 프로세스 또는 쓰레드별로 그룹을 할당할 수 있다. 이에 대한 설명은 도 4를 참조하여 후술하기로 한다. 상기 실행된 어플리케이션의 그룹 할당 과정이 완료되면 상기 제어부(110)는 후술하는 307 단계로 진행할 수 있다.
반면에, 상기 실행 요청된 어플리케이션에 그룹이 이전에 할당된 경우 상기 제어부(110)는 307 단계에서 해당 그룹의 우선순위를 상기 실행 요청된 어플리케이션에 부여하고, 309 단계에서 부여된 우선순위를 기반으로 스케쥴링하고, 스켈쥴링에 대응하여 어플리케이션의 실행을 제어할 수 있다. 즉, 상기 제어부(110)의 스케쥴러(112)는 우선순위를 기반으로 스켈쥴링을 수행하고, 상기 제어부(110)의 프로세서(113)는 스케쥴링에 대응하여 어플리케이션을 실행시킬 수 있다.
이상에서 상술한 본 발명은 다수의 어플리케이션 실행 요청 시 상기 다수의 어플리케이션들이 동일한 우선순위를 가지도록 하는 종래와 달리 실행 요청된 어플리케이션의 스케쥴링 속성에 따라 서로 다른 우선순위를 가지는 다수의 그룹 중 어느 하나의 그룹으로 분류하고, 상기 그룹에 할당된 우선순위를 기반으로 스케쥴링하고, 스켈쥴링에 대응하여 어플리케이션의 실행을 제어할 수 있다. 즉, 본 발명은 빠른 응답 속도를 요하는 속성을 가지는 어플리케이션들을 우선순위가 높은 그룹으로 분류함으로써, 어플리케이션의 실행을 효율적으로 관리할 수 있다.
도 4는 본 발명의 제1실시 예에 따른 어플리케이션의 그룹 할당 방법을 설명하기 위한 도면이다.
상기 도 1 내지 도 4를 참조하면, 본 발명의 실시 예에 따른 제어부(110)의 그룹핑부(111)는 401 단계에서 그룹 할당 요청을 감지할 수 있다. 상기 그룹 할당은 어플리케이션이 최초 실행될 때 요청될 수 있다.
상기 제어부(110)의 그룹핑부(111)는 402 단계에서 실행된 어플리케이션의 스케쥴링 속성 및 특성을 체크하고, 403 단계에서 상기 실행된 어플리케이션에 스케쥴링 속성 및 특성이 설정되어 있는지 확인할 수 있다. 상기 스케쥴링 속성 및 특성이 설정되어 있는 경우 상기 그룹핑부(111)는 409 단계에서 기 설정된 규칙에 따라 해당 어플리케이션의 그룹을 결정할 수 있다. 즉, 상기 그룹핑부(111)는 어플리케이션에 설정된 스케쥴링 속성 및 특성을 기반으로 어플리케이션의 처리 속도 및 응답 속도의 중요도를 판단하고, 상기 판단 결과에 따라 어플리케이션의 그룹을 결정할 수 있다. 반면에 상기 스케쥴링 속성 및 특성이 설정되어 있지 않은 경우 상기 그룹핑부(111)는 407 단계에서 해당 어플리케이션을 일반 그룹으로 결정할 수 있다. 한편, 상기 어플리케이션이 다수의 프로세스 또는 쓰레드로 구성된 경우 상술한 바와 유사하게 상기 그룹핑부(111)는 프로세스 또는 쓰레드 단위로 스케쥴링 속성 설정 여부를 확인하여, 상기 프로세스 또는 쓰레드 단위로 그룹을 결정할 수 있다.
이와 같이 결정된 그룹은 해당 어플리케이션이 완전히 종료될 때까지 유지될 수 있다. 이는 매번 그룹을 결정하는 것은 비효율적이며, 모든 어플리케이션에 대한 그룹을 영구적으로 저장하는 것 역시 비효율적이기 때문이다.
도 5는 본 발명의 제2실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 5를 참조하면, 본 발명의 제2실시 예에 따른 디지털 디바이스(100)의 제어부(110)는 501 단계에서 사용자 어플리케이션의 실행 요청을 감지하고, 503 단계에서 타 어플리케이션이 실행 중인지 확인할 수 있다. 상기 사용자 어플리케이션은 사용자가 입력부(140) 또는 터치스크린(미도시)의 GUI(Graphic User Interface)를 이용하여 실행한 어플리케이션이 될 수 있다. 상기 타 어플리케이션은 상기 사용자 어플리케이션의 실행을 저해하는 어플리케이션이 될 수 있다. 즉, 상기 타 어플리케이션은 사용자 어플리케이션과 유사한 우선순위를 가지거나, 높은 우선순위를 가지는 어플리케이션이 될 수 있다.
상기 503 단계에서 타 어플리케이션이 실행 중이 아닌 경우 상기 제어부(110)는 513 단계로 진행하여 사용자 어플리케이션을 실행할 수 있다. 반면에 상기 타 어플리케이션이 실행 중인 경우 상기 제어부(110)는 505 단계에서 타 어플리케이션의 우선순위를 감소시키고, 507 단계에서 변경된 우선순위를 기반으로 스켈쥴링할 수 있다. 상기 우선순위를 변경하기 위하여, 본 발명은 NPTL(Native POSIX(Portable Operating System Interface) Thread Library) 환경에서 사용자 공간의 공용 라이브러리 콜인 "pthread_setschedparam()" 함수를 이용할 수 있다. 이에 대한 설명은 도 6 및 도 7을 참조하여 후술하기로 한다.
상기 제어부(110)는 508 단계에서 상기 스케쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 타 어플리케이션의 실행을 제어할 수 있다. 이와 같이, 타 어플리케이션의 우선순위가 감소되어 상기 실행 요청된 사용자 어플리케이션이 좀 더 많은 점유율을 확보함에 따라 본 발명은 상기 사용자 어플리케이션의 처리 속도를 상대적으로 향상시킬 수 있다.
상기 제어부(110)는 509 단계에서 사용자 어플리케이션의 실행이 완료되었는지 확인할 수 있다. 상기 실행이 완료되지 않은 경우 상기 제어부(110)는 509 단계를 유지할 수 있다. 반면에, 상기 실행이 완료된 경우 상기 제어부(110)는 511 단계에서 타 어플리케이션의 감소된 우선순위를 이전 우선순위로 복원할 수 있다.
한편, 이상에서는 타 어플리케이션의 우선순위를 감소시키는 것으로 설명하였지만, 상기 제어부(110)는 사용자 어플리케이션의 우선순위를 타 어플리케이션보다 높게 증가시킬 수 있다. 또는, 상기 제어부(110)는 사용자 어플리케이션의 실행이 완료될 때까지 타 어플리케이션의 실행을 일시적으로 중지시킬 수도 있다.
또한, 상기 타 어플리케이션이 기 설정된 기준값 이상의 우선순위를 가지는 경우 상기 제어부(110)는 상기 타 어플리케이션의 우선순위를 유지하도록 할 수도 있다. 예를 들어, 상기 타 어플리케이션이 통화 요청 수신과 같이 "Urgent Task"와 관련된 경우 상기 제어부(110)는 타 어플리케이션의 우선순위를 감소하지 않을 수 있다.
이상에서 상술한 본 발명의 제2실시 예는 사용자가 어플리케이션을 실행 시켰을 때, 이전에 실행 중인 타 어플리케이션의 우선순위를 조절하거나, 사용자 어플리케이션의 우선순위를 조절하여 사용자 어플리케이션 실행을 위한 소요 시간을 감소시키는 것을 특징으로 한다. 이는 일반적으로 사용자가 자신이 실행시킨 어플리케이션의 실행 결과가 빨리 보여지기를 원할 것이기 때문이다.
도 6은 본 발명의 제2실시 예에 따른 어플리케이션의 우선순위 변경 방법을 설명하기 위한 도면이다.
상기 스케쥴링을 위한 다수의 정책들 중 임베디드 환경에서의 실시간 특성을 고려하면, SCHED_RR의 스케쥴링 정책이 가장 이상적이나, 관리의 효율성 및 정책의 간편성으로 인하여 SCHED_FIFO의 스케쥴링 정책이 선호된다.
한편, 본 발명은 Linux Kernel 2.6 기반의 NPTL환경에서 기존의 pthread_setschedparam()라이브러리 콜을 개선함으로써 POSIX 규격을 준수하면서, 특정 시점(예컨대 타 어플리케이션이 실행 중인 시점)에 실행 요청된 어플리케이션(또는 어플리케이션을 구성하는 프로세스 또는 쓰레드)의 스케쥴링 우선순위를 조정하거나 또는 타 어플리케이션들의 "Normal Priority"를 런타임(Runtime)에 동적으로 변경할 수 있게 함으로써 사용자가 실행 요청한 어플리케이션의 실행 결과를 얻기위하여 대기해야 하는 소요 시간을 최소화하는 것을 특징으로 한다. 이때, 기존에 작성된 쓰레드 애플리케이션의 소스를 수정하지 않고 재사용(Reuse)가능하도록 하며, 하나의 프로세스 내에서 생성된 다수의 쓰레드에 대해서 차별적인 우선순위를 부여하기 위하여, 기존의 NPTL 쓰레드 함수의 인터페이스에 대해서 POSIX 호환성을 유지하면서 개선하는 하는 것이 중요하다.
아래 < 표 2>는 비선점형 리눅스 2.6 커널에서 생성된 쓰레드들에 대하여 동적으로 스케쥴링 우선순위를 조정하기 위한 NPTL 라이브러리를 구현하기 위하여 동적으로 "Normal Priority"를 적용하기 위한 슈도 코드(pseudo code)의 일 예이다. 하지만 본 발명이 아래와 같은 슈도 코드로 한정되지 않음은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 있어 자명할 것 이다.
int __pthread_setschedparam(threadid, policy, param)
pthread_t threadid;
int policy;
const struct sched_param *param;
{
/*To support priority, if used SCHED_FIFO or SCHED_RR, display caution message
*(@/usr/include/linux/sched.h)

/*Default Value is normal*/
structp thread *pd = (struct pthread *) threadid;
if (policy == SCHED_OTHER){
/*The scheduling priority of the process. */
int which = PRIO_PROCESS;

/*Handling of SCHED_OTHER priority that user assigned */
if (param->sched_priority < -20 && param->sched_priority > 19){
printf("ERROR! Range of priority that you can input is -20~19 \r\n");
return errno;
}
/*Getting LWP(thread id in the kernel) to change priority about as signed thread id. */
if (setpriority(which, unique_kernel_tid(), param->sched_priority)){
perror ("setpriority() is ERROR. It seems that System not support setpriority()\n");
result = errno;
}
상기 <표 2>과 같은 슈도 코드가 구현되었을 때, pthread_setschedparam() 함수는 상기 도 6에 도시된 바와 같이 동작할 수 있다. 상세하게는, pthread_create()함수를 이용하여 쓰레드가 생성이 될때 상기 제어부(110)의 프로세서(113)는 해쉬 테이블(Hash Table, 122)을 참조하여 사용자 공간(User Space)의 쓰레드 아이디(TID)에 대응하는 커널 공간(kernel space)에서의 쓰레드 아이디(LWPID)를 검색한다. 여기서, 상기 해쉬 테이블(122)은 사용자 공간(User Space)의 쓰레드 아이디(TID)와 커널 공간(Kernel Space)의 쓰레드 아이디(LWPID)를 맵핑하여 저장한 테이블 정보이다.
이후, 상기 제어부(110)의 프로세서(113)는 탐색된 커널 공간(Kernel Space)의 쓰레드 아이디(LWPID)를 이용하여 pthread_setschedparam()함수 내의 setpriority()함수를 동작시키고, 상기 setpriority()함수를 이용하여 커널 공간(Kernel Space)내에 해당 쓰레드 아이디의 우선순위를 조정하는 명령을 지시할 수 있다. 상기 우선순위 조정명령을 받은 커널은 해당 쓰레드 아이디에 대한 차별적인 프로세서 통제권을 가지게 되며, 상기 스케쥴러(112)는 상기 조정된 우선순위에 기반하여 차별적으로 스케쥴링 동작을 수행할 수 있다. 한편, 이상에서는 setpriority()함수를 이용하여 우선순위를 변경하는 것으로 설명하였지만 본 발명이 이에 한정되지는 않는다. 예를 들어, 본 발명은 nice()함수 또는 renice()함수를 이용하여 우선순위를 변경할 수도 있다. setpriority()함수, nice()함수 또는 renice()함수를 이용하여 우선순위를 변경하는 방법은 본 발명의 기술분야에서 통상의 지식을 가진 자에게 있어 자명하며, 공지된 기술이므로 상세한 설명은 생략하기로 한다.
위와 같이 NPTL 라이브러리의 스케쥴링 관련 쓰레드 함수를 수정한 후 하나의 프로세스에서 생성된 다수의 쓰레드에 대하여 차별적인 우선순위를 적용하기 위하여 아래 <표 3>과 같은 방법으로 쓰레드의 스케쥴링을 능동적으로 조절할 수 있다.
/*
*@Description:voluntary& enforcedthreadscheduling atnon-preemptivemode
*@threadvariables(pthread_t thread[max])
*Ifyouwanttoaffectpriorityabouteachthreadoftheprocessinthekernel2.6+NPTL,
*WerecommendthatyouuseSCHED_OTHERpolicybasedonpriority-basedscheduling.
*And,Ifyouneedtimeslice(sharing)aboutthreads,UseSCHED_RRPolicy
*(Real-timePolicy)withSamePriorityusingpthread_attribute_setschedpolicy().
*/

structsched_param schedp;
intpriority=5;/*YouhavetoinputPriorityNumberofbetween-20and19.*/
memset(&schedp,0,sizeof(schedp));
schedp.sched_priority=priority;

pthread_setschedparam(pthread_self(), SCHED_OTHER, &schedp) //for self thread
pthread_setschedparam(thread[i], SCHED_OTHER, &schedp) //for other thread
여기서, 상기 도 6의 "7992"의 pid 값을 가지는 쓰레드의 우선순위를 renice() 함수를 이용하여 변경하는 것으로 가정하여 간략히 설명하기로 한다.
상기 해쉬 테이블을 이용하여 커널 공간에서의 쓰레드 아이디를 검색한 후, 상기 제어부(110)의 프로세서(113)는 "renice 8 ??p 7992"와 같은 우선순위 조정명령을 입력할 수 있다. 상기 조정명령이 입력되면, 상기 도 6에 도시된 바와 같이 "7992"의 pid 값을 가지는 쓰레드의 우선순위는 8로 변경될 수 있다. 이와 같이 본 발명은 쓰레드의 pid값을 통해 쓰레드의 우선순위를 동적으로 변경할 수 있다. 즉, 본 발명은 상술한 방법을 통해 상기 사용자 어플리케이션 또는 실행중인 타 어플리케이션(또는 쓰레드)의 우선순위를 동적으로 조절함으로써, 사용자 어플리케이션이 우선적으로 처리되도록 할 수 있다. 한편, 상기 쓰레드의 tgid값을 통해 쓰레드가 소속된 프로세스를 알 수 있다. 즉, 상기 도 6에서 다수의 쓰레드들(2,3,4)은 프로세스(1)를 구성하는 쓰레드들임을 알 수 있다. 또한, pid 값과 tgid 값이 동일한 쓰레드의 경우 프로세스임을 알 수 있다.
상술한 바와 같은 본 발명의 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 상기 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 상기 컴퓨터로 판독 가능한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
이상에서는 본 발명의 실시 예에 따른 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치에 대하여 본 명세서 및 도면을 통해 바람직한 실시 예들에 대하여 설명하였으며, 비록 특정 용어들이 사용되었으나 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위해 일반적인 의미에서 사용된 것일 뿐, 본 발명이 전술한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 기술적 사상에 바탕을 둔 다양한 실시 예가 가능함은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100 : 디지털 디바이스 110 : 제어부
120 : 저장부 111 : 그룹핑부
112 : 스케쥴러 113 : 프로세서
121 : 그룹 테이블 122 : 해쉬 테이블

Claims (20)

  1. 어플리케이션의 실행이 요청되는 과정;
    서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하는 과정; 및
    상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하고, 상기 스케쥴링에 대응하여 상기 어플리케이션을 실행하는 과정을 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  2. 제1항에 있어서,
    상기 어플리케이션에 그룹이 할당되지 않은 경우 기 설정된 규칙에 따라 상기 다수의 그룹 중 어느 하나의 그룹을 할당하는 과정을 더 수행하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  3. 제2항에 있어서,
    상기 그룹을 할당하는 과정은
    상기 어플리케이션의 스케쥴링 속성 및 특성이 설정되었는지 확인하는 과정; 및
    상기 어플리케이션의 스케쥴링 속성 및 특성이 설정되지 않은 경우 일반 그룹으로 할당하고, 상기 어플리케이션의 스케쥴링 속성 및 특성이 설정된 경우 상기 설정된 어플리케이션의 스케쥴링 속성 및 특성에 따라 그룹을 할당하는 과정을 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  4. 제3항에 있어서,
    상기 설정된 어플리케이션의 스케쥴링 속성 및 특성에 따라 그룹을 할당하는 과정은
    상기 설정된 어플리케이션의 스케쥴링 속성 및 특성을 기반으로 어플리케이션들의 처리 속도 및 응답 속도의 중요도를 판단하는 과정; 및
    상기 판단 결과에 따라 상기 어플리케이션의 그룹을 결정하는 과정을 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  5. 제2항에 있어서,
    상기 그룹을 할당하는 과정은
    상기 어플리케이션을 구성하는 프로세스 또는 쓰레드 단위로 그룹을 할당하는 과정인 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  6. 제2항에 있어서,
    상기 그룹을 할당하는 과정은
    상기 어플리케이션의 최초 실행 시 수행되며, 상기 어플리케이션이 완전히 종료될 때까지 할당된 그룹이 유지되는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  7. 사용자 어플리케이션의 실행 요청 시 타 어플리케이션이 실행되고 있는지 확인하는 과정;
    상기 확인 결과 적어도 하나의 타 어플리케이션이 실행되고 있는 경우 상기 사용자 어플리케이션이 우선적으로 처리될 수 있도록 상기 타 어플리케이션의 우선순위를 변경시키고, 상기 변경된 우선순위를 기반으로 스케쥴링하는 과정; 및
    상기 스케쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 적어도 하나의 타 어플리케이션을 실행하는 과정을 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  8. 제7항에 있어서,
    상기 타 어플리케이션의 우선순위를 변경시키는 과정은
    상기 타 어플리케이션의 우선순위를 감소시키는 과정; 및
    상기 사용자 어플리케이션의 실행이 완료될 때까지 상기 적어도 하나의 타 어플리케이션의 실행을 일시적으로 중지시키는 과정을 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  9. 제7항에 있어서,
    상기 사용자 어플리케이션의 실행이 완료되면, 상기 적어도 하나의 타 어플리케이션의 우선순위를 이전의 우선순위로 복원하는 과정을 더 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  10. 제7항에 있어서,
    상기 타 어플리케이션의 우선순위를 변경시키는 과정은
    상기 적어도 하나의 타 어플리케이션 중 기 설정된 기준값 이상의 우선순위를 가지는 어플리케이션들의 우선순위를 유지하는 과정을 더 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 방법.
  11. 어플리케이션 실행 요청 시 서로 다른 우선순위를 가지는 다수의 그룹 중 상기 실행 요청된 어플리케이션에 할당된 그룹을 확인하는 그룹핑부;
    상기 확인된 그룹의 우선순위를 기반으로 스케쥴링하는 스케쥴러; 및
    상기 스케쥴러의 스케쥴링에 따라 어플리케이션을 실행하는 프로세서를 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  12. 제11항에 있어서,
    상기 그룹핑부는
    상기 실행된 어플리케이션에 그룹이 할당되지 않은 경우 기 설정된 규칙에 따라 상기 다수의 그룹 중 어느 하나의 그룹을 할당하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  13. 제12항에 있어서,
    상기 그룹핑부는
    상기 어플리케이션을 구성하는 프로세스 또는 쓰레드 단위로 그룹을 할당하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치
  14. 제12항에 있어서,
    상기 그룹핑부는
    상기 어플리케이션의 스케쥴링 속성이 설정되었는지 확인하고, 상기 어플리케이션의 스케쥴링 속성이 설정되지 않은 경우 일반 그룹으로 할당하고, 상기 어플리케이션의 스케쥴링 속성이 설정된 경우 상기 설정된 스케쥴링 속성에 따라 그룹을 할당하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  15. 제11항에 있어서,
    상기 그룹핑부는
    상기 어플리케이션 최초 실행 시 그룹을 할당하고, 상기 어플리케이션이 완전히 종료될 때까지 할당된 그룹을 유지시키는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  16. 사용자 어플리케이션의 실행을 위한 신호를 입력하는 입력부; 및
    상기 입력부로부터 사용자 어플리케이션의 실행을 위한 신호 입력 시 실행 중인 적어도 하나의 타 어플리케이션이 존재하는지 확인하고, 상기 확인 결과 적어도 하나의 타 어플리케이션이 존재하는 경우 상기 사용자 어플리케이션이 우선적으로 처리될 수 있도록 상기 적어도 하나의 타 어플리케이션의 우선순위를 변경시키고, 상기 변경된 우선순위를 기반으로 스케쥴링하며, 상기 스케쥴링에 대응하여 상기 사용자 어플리케이션 및 상기 적어도 하나의 타 어플리케이션의 실행을 제어하는 제어부를 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  17. 제16항에 있어서,
    상기 제어부는
    상기 타 어플리케이션의 우선순위를 감소시키거나, 상기 사용자 어플리케이션의 실행이 완료될 때까지 상기 타 어플리케이션의 실행을 일시적으로 중지시키는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  18. 제16항에 있어서,
    상기 제어부는
    상기 변경된 우선순위를 기반으로 스케쥴링하는 스케쥴러; 및
    상기 스케쥴러에 의한 스케쥴링에 따라 상기 어플리케이션을 실행하는 프로세서를 포함하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  19. 제16항에 있어서,
    상기 제어부는
    상기 사용자 어플리케이션의 실행이 완료된 경우 상기 적어도 하나의 타 어플리케이션의 우선순위를 이전 우선순위로 복원하는 것을 특징으로 하는 디지털 디바이스의 어플리케이션 처리 속도 향상 장치.
  20. 제16항에 있어서,
    상기 적어도 하나의 타 어플리케이션은
    상기 사용자 어플리케이션과 우선순위가 유사하거나, 높은 우선순위를 가지는 어플리케이션인 것을 특징으로 하는 어플리케이션 처리 속도 향상 장치.
KR1020110103358A 2011-05-13 2011-10-11 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치 KR101897598B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP12785647.4A EP2707796A4 (en) 2011-05-13 2012-05-11 METHOD AND APPARATUS FOR ENHANCING APPLICATION PROCESSING SPEED IN DIGITAL DEVICE
US13/469,648 US9183047B2 (en) 2011-05-13 2012-05-11 Classifying requested application based on processing and response time and scheduling threads of the requested application according to a preset group
PCT/KR2012/003728 WO2012157906A2 (en) 2011-05-13 2012-05-11 Method and apparatus for improving application processing speed in digital device
US14/878,661 US9594593B2 (en) 2011-05-13 2015-10-08 Application execution based on assigned group priority and priority of tasks groups of the application

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161485865P 2011-05-13 2011-05-13
US201161485873P 2011-05-13 2011-05-13
US61/485,865 2011-05-13
US61/485,873 2011-05-13
PCT/KR2012/003728 WO2012157906A2 (en) 2011-05-13 2012-05-11 Method and apparatus for improving application processing speed in digital device

Publications (2)

Publication Number Publication Date
KR20120127694A true KR20120127694A (ko) 2012-11-23
KR101897598B1 KR101897598B1 (ko) 2018-09-13

Family

ID=63638555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110103358A KR101897598B1 (ko) 2011-05-13 2011-10-11 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101897598B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150080859A (ko) * 2014-01-02 2015-07-10 삼성전자주식회사 어플리케이션 운용 방법 및 이를 이용한 전자 장치
US10437604B2 (en) 2016-02-29 2019-10-08 Samsung Electronics Co., Ltd. Electronic apparatus and booting method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3973740A4 (en) * 2019-08-02 2022-12-14 Samsung Electronics Co., Ltd. METHODS AND SYSTEMS FOR SCHEDULING RANGEFINDER AND DATA SESSIONS IN A SHORT-RANGE COMMUNICATION SYSTEM

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123420A1 (en) * 2004-12-01 2006-06-08 Naohiro Nishikawa Scheduling method, scheduling apparatus and multiprocessor system
JP2008508584A (ja) * 2004-07-30 2008-03-21 コミッサリア タ レネルジー アトミーク タスク処理のスケジューリング方法及びこの方法を適用するための装置
US20090249020A1 (en) * 2008-03-28 2009-10-01 Symantec Corporation Techniques for optimizing configuration partitioning
KR20100081363A (ko) * 2007-11-02 2010-07-14 콸콤 인코포레이티드 구성가능한 시스템 이벤트 및 자원 중재 관리 장치 및 방법들
US20120047509A1 (en) * 2010-08-23 2012-02-23 Yuval Ben-Itzhak Systems and Methods for Improving Performance of Computer Systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508584A (ja) * 2004-07-30 2008-03-21 コミッサリア タ レネルジー アトミーク タスク処理のスケジューリング方法及びこの方法を適用するための装置
US20060123420A1 (en) * 2004-12-01 2006-06-08 Naohiro Nishikawa Scheduling method, scheduling apparatus and multiprocessor system
KR20100081363A (ko) * 2007-11-02 2010-07-14 콸콤 인코포레이티드 구성가능한 시스템 이벤트 및 자원 중재 관리 장치 및 방법들
US20090249020A1 (en) * 2008-03-28 2009-10-01 Symantec Corporation Techniques for optimizing configuration partitioning
US20120047509A1 (en) * 2010-08-23 2012-02-23 Yuval Ben-Itzhak Systems and Methods for Improving Performance of Computer Systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150080859A (ko) * 2014-01-02 2015-07-10 삼성전자주식회사 어플리케이션 운용 방법 및 이를 이용한 전자 장치
US10437604B2 (en) 2016-02-29 2019-10-08 Samsung Electronics Co., Ltd. Electronic apparatus and booting method thereof

Also Published As

Publication number Publication date
KR101897598B1 (ko) 2018-09-13

Similar Documents

Publication Publication Date Title
US9594593B2 (en) Application execution based on assigned group priority and priority of tasks groups of the application
US10133598B2 (en) Systems and methods of using a hypervisor to assign virtual processor priority based on task priority and to schedule virtual processors for guest operating systems
CN109076303B (zh) 用于应用的空间音频资源管理和混合
JP5723968B2 (ja) 便宜的マルチタスキング
US20170293465A1 (en) Playback manager
WO2018082570A1 (zh) I/o请求的调度方法及装置
US10152359B2 (en) Load balancing method for multicore mobile terminal
US20140333633A1 (en) Apparatuses and methods for policy awareness in hardware accelerated video systems
CN113110941A (zh) 使用应用容器管理代码和依赖性数据的传递
US20090300637A1 (en) Scheduler instances in a process
US9191417B2 (en) Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
CN112527476B (zh) 资源调度方法及电子设备
US11782756B2 (en) Method and apparatus for scheduling processor core, and storage medium
KR20170108636A (ko) 태스크 스케줄링 방법 및 이를 구현한 전자 장치
US9075789B2 (en) Methods and apparatus for interleaving priorities of a plurality of virtual processors
KR20180055273A (ko) 전자 장치 및 그 트래픽 제어 방법
KR101897598B1 (ko) 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치
CN113535251A (zh) 一种线程管理方法及装置
KR102230266B1 (ko) 복수의 전자 디바이스 사이에서 애플리케이션을 공유하는 방법 및 전자 디바이스
EP3665572B1 (en) Memory allocation type for media buffer
CN116546228A (zh) 用于虚拟场景的推流方法、装置、设备及存储介质
US8806180B2 (en) Task execution and context switching in a scheduler
US20100251251A1 (en) Apparatus and method for cpu load control in multitasking environment
US10698619B1 (en) Service level agreement based management of pending access requests
CN117707719A (zh) 进程管理的方法、电子设备及可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant