KR20080047457A - 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한기술 - Google Patents

휴대용 통신 장치에서 애플리케이션들을 관리하기 위한기술 Download PDF

Info

Publication number
KR20080047457A
KR20080047457A KR1020087008854A KR20087008854A KR20080047457A KR 20080047457 A KR20080047457 A KR 20080047457A KR 1020087008854 A KR1020087008854 A KR 1020087008854A KR 20087008854 A KR20087008854 A KR 20087008854A KR 20080047457 A KR20080047457 A KR 20080047457A
Authority
KR
South Korea
Prior art keywords
dsp
new application
priority
currently active
applications
Prior art date
Application number
KR1020087008854A
Other languages
English (en)
Other versions
KR100980253B1 (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 콸콤 인코포레이티드
Publication of KR20080047457A publication Critical patent/KR20080047457A/ko
Application granted granted Critical
Publication of KR100980253B1 publication Critical patent/KR100980253B1/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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Abstract

중재 엔진이 현재 활성인 애플리케이션과 더불어 신규 애플리케이션을 실행시키는데 필요한 모든 모듈들을 포함하는 포괄적인 DSP 이미지를 식별함으로써 휴대용 통신 장치에서 애플리케이션들을 관리한다. 또한 상기 중재 엔진은 상기 신규 애플리케이션을 상기 현재 활성인 애플리케이션들과 동시에 실행시키는 것이 규칙 충돌이나 하드웨어 충돌을 가져올 것인지를 결정하는 충돌 검출기를 포함한다. 포괄적인 DSP 이미지가 식별되지 않거나 충돌이 존재한다면, 중재 엔진의 우선순위 평가기가 상기 현재 활성인 애플리케이션들의 최대 우선순위에 대해 상기 신규 애플리케이션의 우선순위를 평가한다. 상기 우선순위가 상기 현재의 활성 애플리케이션들의 최대 우선순위보다 크거나 같다면, 신규 애플리케이션이 실행된다.

Description

휴대용 통신 장치에서 애플리케이션들을 관리하기 위한 기술{TECHNIQUES FOR MANAGING APPLICATIONS IN A PORTABLE COMMUNICATION DEVICE}
본 발명은 일반적으로 휴대용 통신 장치들 그리고 더 특정하게는 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한 기술에 관한 것이다.
셀룰러 전화기들과 개인 휴대 정보 단말(PDA들)과 같은 휴대용 통신 장치들은 더 많은 기능들과 서비스들을 더욱 더 제공하고 있다. 음성 통신 기능들을 제공하는 것에 더불어, 많은 휴대용 통신은 게임들, 비디오 상영 및 녹화, 디지털 사진 디스플레이와 캡춰, 사운드 및 음악 재생, 그리고 사운드 레코딩 애플리케이션들과 같은 다른 애플리케이션들을 실행한다. 종래의 휴대용 통신 장치들은 상이한 애플리케이션들의 동작을 촉진하는 모듈들을 실행하는 디지털 신호 처리기들(DSPs)을 포함한다. 상기 모듈들은 특정한 태스크나 계산을 수행하는 펌웨어 코드의 섹션들이다. 그러나, 종래의 휴대용 통신 장치들은 모든 지원되는 애플리케이션들에 요구되는 모듈들의 집적(aggregation) 크기 때문에 상기 모듈들이 상기 DSP에 로딩될 수 없다는 점에서 제한된다. 추가로, DSP 엔진의 프로세싱 능력은 상기 모듈들 모두를 동시에 실행하는데 불충분하다. 나아가, 다른 애플리케이션들을 지원하기 위해 상기 DSP에 모듈들을 로딩하도록 애플리케이션들을 정지시키기 위한 매커니즘 이 존재하지 않는다.
따라서, 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한 기술에 대한 수요가 존재한다.
본 발명의 일 특징으로, 휴대용 통신 장치에서 신규 애플리케이션에 대한 요청을 수신하는 단계; 및 복수의 디지털 신호 처리기(DSP) 이미지들로부터, 상기 신규 애플리케이션과 모든 현재의 활성(active) 애플리케이션들을 지원하기 위한 모든 요구되는 모듈들을 포함하는 포괄적(comprehensive) DSP 이미지를 식별하는 단계를 포함하는 방법이 제시된다.
본 발명의 다른 특징으로, 휴대용 통신 장치에서 애플리케이션들을 관리하는 방법으로서: 신규 애플리케이션 및 활성 애플리케이션들을 동시에 실행시키는데 있어서 규칙 충돌이 존재하는지를 결정하는 단계; 상기 신규 애플리케이션 및 상기 활성 애플리케이션들을 동시에 실행시키는데 있어서 하드웨어 충돌이 존재하는지를 결정하는 단계; 규칙 충돌이 존재하지 않고 하드웨어 충돌이 존재하지 않으면, 상기 신규 애플리케이션과 상기 현재의 활성 애플리케이션들의 동시 실행을 지원하는 모듈들을 포함하는 포괄적 DSP 이미지를 식별하기 위해 복수의 DSP 이미지들을 평가하는 단계; 및 포괄적 DSP 이미지가 식별된다면, 상기 포괄적 DSP 이미지를 상기 DSP에 로드시키는 단계를 포함하는 애플리케이션 관리 방법이 제시된다.
본 발명의 또 다른 특징으로, 휴대용 통신 장치에서 주 처리기(main processor) 상에서 실행되는 애플리케이션들을 관리하는 중재 엔진(arbitration engine)으로서: 복수의 DSP 이미지들로부터, 신규 애플리케이션 및 모든 현재의 활성 애플리케이션들을 지원하는데 요구되는 애플리케이션 모듈들을 포함하는 포괄적 DSP 이미지를 식별하도록 구성되는 디지털 신호 처리기(DSP) 이미지 검정기(qualifier)를 포함하는 중재 엔진이 제시된다.
본 발명의 또 다른 특징으로, 휴대용 통신 장치의 주 처리기 상에서 실행되는 애플리케이션들을 관리하는 중재 엔진으로서: 상기 신규 애플리케이션 및 상기 현재의 활성 애플리케이션들을 동시에 실행하는데 있어서 충돌을 식별하도록 구성되는 충돌 검출기; 복수의 DSP 이미지들로부터, 신규 애플리케이션 및 모든 현재의 활성 애플리케이션들을 지원하는데 요구되는 애플리케이션 모듈들을 포함하는 포괄적 DSP 이미지를 식별하도록 구성되는 디지털 신호 처리기(DSP) 이미지 검정기; 및 상기 포괄적 DSP 이미지가 식별되지 않거나 충돌이 검출된다면, 상기 신규 애플리케이션이 호출(invoke)되어야 하는지를 결정하기 위해 상기 현재의 활성 애플리케이션들의 현재의 우선순위에 대한 상기 신규 애플리케이션의 신규 애플리케이션 우선순위를 평가하도록 구성되는 우선순위 평가기를 포함하는 중재 엔진이 제시된다.
도 1은 휴대용 통신 장치의 블록도이다.
도 2는 중재 엔진의 블록도이다.
도 3은 충돌 검출을 수행하는 방법의 순서도이다.
도 4는 DSP 모듈들과 DSP 이미지들 간의 관계의 블록도이다.
도 5는 포괄적인 DSP 이미지를 식별하는 방법의 순서도이다.
본 명세서는 동시에 활성 애플리케이션들을 실행시키는데 요구되는 모든 모듈들 및 신규 애플리케이션을 실행시키는데 요구되는 모듈들을 포함하는 DSP 이미지를 식별함으로써 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한 기술들에 대한 것이다. 일 실시예로, 충돌 검출기(conflict detector)는 포괄적인(comprehensive) DSP 이미지를 DSP 이미지들의 세트로부터 식별한다. 상기 포괄적인 DSP 이미지는 상기 신규 애플리케이션에 의해 요구되는 모듈들과 함께 현재 활성인 애플리케이션들이 필요로 하는 모듈들의 세트를 포함한다. 포괄적인 DSP 이미지가 식별될 수 없거나 충돌(conflict)이 검출된다면, 우선순위(priority) 평가(evaluation)가 수행되어 임의의 애플리케이션들이 중지되어야 할 것인지 또는 상기 신규 애플리케이션이 거부되어야 할 것인지를 결정한다.
도 1은 일 실시예에 따른 휴대용 통신 장치(100)의 블록도이다. 상기 휴대용 통신 장치(100)는 하나 이상의 다른 애플리케이션들을 실행시키는 것과 더불어 통신 서비스들을 제공하는 셀룰러 전화 또는 무선 개인 휴대 정보 단말(PDA)과 같은 임의의 장치이다. 상기 휴대용 통신 장치(100)는 적어도 주 처리기(102), 디지털 신호 처리기(DSP)(104), 메모리(108), 및 하드웨어(106)를 포함한다.
상기 주 처리기(102)는 상기 휴대용 통신 장치(100)의 전체 기능성을 촉진(facilitate)시키는 다양한 애플리케이션들의 코드, 소프트웨어, 및 통신 프로토콜들을 실행하는 임의의 제어기, 처리기, 마이크로-프로세서 또는 처리기 배열(arrangement)일 수 있다. 상기 주 처리기(102)는 하나 이상의 주문형 반도 체(ASIC)들 또는 컴퓨터 소프트웨어를 처리할 수 있는 다른 하드웨어들 간에 산재되는 처리 능력을 포함할 수 있다. 무선 통신에 적합한 ASIC의 예가 상기 처리기(102) 및 다른 코드 분할 다중 접속(CDMA) 기능성이 집적되는 이동국 모뎀(Mobile Station Modem, MSM) 칩이다. 상기 MSM은 셀룰러 망과의 통신 링크를 유지하기 위해 CDMA 신호들의 변조 및 복조를 담당한다.
DSP(104)는 집중적인 또는 신속 민감한 태스크들을 계산적으로 수행하는 고속 처리기이다. DSP(104) 및 상기 주 처리기(102)는 동일한 ASIC 내에서 구현될 수 있다. 추가로, 다른 타입들의 처리기, 마이크로프로세서들, FPGA들, 및 집적 회로들이 어떠한 환경들에서 이용되어 본 발명의 범위를 벗어나지 않고 여기 기재된 기능들을 수행할 수 있다. 상기 휴대용 통신 장치(100)의 동작 동안, 상기 주 처리기 상에서 실행되는 애프리케이션들은 DSP(104) 상의 프로세스들을 불러온다(invoke). 예를 들어, 상기 주 처리기(102) 상에서 실행되는 뮤직 플레이어(music player) 애플리케이션은 상기 DSP(104) 상의 MP3 모듈을 불러와서 MP3 디코딩을 수행할 수 있다.
상기 휴대용 통신 장치(100)는 입력 및 출력 장치들과 같은 하드웨어(106)를 포함한다. 하드웨어(106)의 예는 스피커들, 마이크로폰들, 키패드들, 디스플레이들, 버튼들, LED들, 및 카메라 센서들을 포함한다. 상기 하드웨어(106)는 특정 기능들을 수행하기 위한 개별 장치들 또는 컴포넌트들을 포함한다. 하드웨어(106) 컴포넌트는 다수의 이산 컴포넌트들을 포함할 수 있으며 일부 환경들에서 논리 게이트들이나 처리기 장치들을 포함할 수 있다.
상기 메모리(108)는 데이터 및 코드의 저장을 허용하는 비-휘발성 및 RAM 메모리 장치들의 임의의 조합을 포함한다. DSP 모듈들은 메모리에 저장되고 상기 DSP(104)에 로드되어 상기 DSP(104) 상에서 실행되는 프로세스들의 실행을 촉진(facilitate)한다. 모든 애플리케이션들에 요구되는 상기 모듈들 모두가 상기 DSP(104)에 동시에 로드되는 것이 가능하지는 않을 수 있다. 따라서, 상기 모듈들은 DSP 이미지들 내에서 정렬(arrange)된다. DSP 이미지는 모듈들의 세트를 포함하며, 각각의 모듈은 상기 주 처리기 상에서 실행되는 애플리케이션에 대한 특정 기능을 수행하거나 하드웨어를 동작시키기 위한, 펌웨어, 또는 다른 실행가능 코드를 포함한다. 예를 들어, DSP 이미지는 음성 호(voice call) 처리를 위한 음성 인코딩/디코딩을 수행하는 모듈, 사진들을 찍기 위해 JPEG 인코딩을 수행하는 모듈, 및 키패드 활성화(activation)를 위해 톤(tone)들을 발생시키는 모듈을 포함할 수 있다. 음성 호 애플리케이션 및 카메라 애플리케이션은 상기 DSP 이미지로써 동시에 실행될 수 있으며 사용자는 상기 휴대용 통신 장치를 이용하여 음성 호에 참가하는 동안 사진들을 찍을 수 있다.
상기 휴대용 장치(100)의 동작 동안, 하나 이상의 활성 애플리케이션들이 DSP에 로드된 DSP의 모듈들을 이용하여 기능들을 수행한다. 따라서, 활성 애플리케이션은 DSP(104)에 로드된 모듈들이 지원하는 상기 주 처리기 상에서 실행되는 애플리케이션이다. 새로운 애플리케이션에 대한 요청이 행해질 때, 기준(criteria)이 평가되어 적절한 동작(action)을 결정한다. 그러므로, 여기서 논의되는 바와 같이, 새로운 애플리케이션은 상기 주 처리기 상에서 현재 실행 중이 지 않은 애플리케이션이며 현재 로드된 DSP 이미지가 지원하지 않을 수 있다.
상기 예시적인 실시예를 참조로 이하에 논의되는 바와 같이, 상기 주 처리기(102) 상에서 실행되는 중재 엔진은 DSP(104)에 로드되는 DSP 이미지들을 관리한다. 상기 중재 엔진 내의 DSP 이미지 검정기(qualifier)는 신규 애플리케이션에 요구되는 것들과 더불어 상기 현재의 활성 애플리케이션들에 요구되는 모듈들을 포함하는 포괄적인(comprehensive) DSP 이미지를 식별한다. 우선순위 평가기(priority evaluator)(206)는 상기 신규 애플리케이션이 로드되어야 한다면 하드웨어 충돌(conflict)이나 규칙(rule) 충돌이 존재하는지 또는 포괄적인 DSP 이미지가 식별될 수 없는지를 결정한다.
도 2는 본 발명의 예시적인 실시예에 따른 중재 엔진(200)의 블록도이다. 상기 예시적인 실시예에서, 중재 엔진(200)은 휴대용 통신 장치(100) 내의 주 처리기(102)에서 실행되는 실행가능 코드를 포함한다. 그러나, 도 2를 참조로 기술되는 기능 블록들은 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합을 이용하여 구현될 수 있다. 또한, 도 2에 기재된 블록들의 기능들 및 동작들은 임의의 수의 장치들, 회로들, 또는 인프라스트럭처들로 구현될 수 있다. 두 개 이상의 상기 기능 블록들이 단일 장치에 집적될 수 있으며 임의의 단일 장치 내에서 수행되는 것으로 기재되는 기능들은 수 개의 장치들, 소프트웨어 코드, 또는 소프트웨어 애플리케이션들을 통해 구현될 수 있다.
중재 엔진(200)은 상기 예시적인 실시예에서 충돌 검출기(202), 디지털 신호 처리기(DSP) 이미지 검정기(204), 및 애플리케이션 우선순위 평가기(206)를 포함한 다. 충돌 검출기(202)는 상기 신규 애플리케이션 및 상기 현재의 활성 애플리케이션들에 대응하는 하드웨어 제약(constraint)들(208) 및 애플리케이션 동작 규칙들(210)을 적용하여 하드웨어 충돌 또는 규칙 충돌이 상기 신규 애플리케이션(Ax)을 상기 현재의 활성 애플리케이션(Ai)과 동시에 실행하는데 있어서 존재하는지를 결정한다. 도 2에서, Ax는 신규 애플리케이션의 식별자를 나타내고 Ai는 상기 현재의 활성 애플리케이션들의 식별자를 나타내며 여기서 i=1 내지 N이고 N은 현재의 활성 애플리케이션들의 수이다. 신규 애플리케이션(Ax)을 평가하라는 요청을 수신한 후, 충돌 검출기(202)는, 메모리(108)로부터, 신규 애플리케이션 및 현재의 활성 애플리케이션들에 대한 하드웨어 요구사항(requirement)들(210)을 검색(retrieve)하고 메모리(108)로부터 신규 애플리케이션에 관련된 애플리케이션 동작 규칙들(212)을 검색한다. 충돌 검출기(202)는 상기 신규 애플리케이션 및 현재의 활성 애플리케이션들에 대한 하드웨어 요구사항들(208)이 충족될 수 있는지를 결정한다. 예를 들어, 신규 애플리케이션이, 현재의 활성 애플리케이션들 중 하나와 함께, 화자(speaker)에게 동작을 요구한다면, 충돌 검출기(202)는 하드웨어 충돌이 존재한다고 결정한다.
애플리케이션들의 조합을 동싱 실행하는 것은 애플리케이션 규칙들(210)에 의해 금지될 수 있다. 상기 애플리케이션 규칙들(210)은 하드웨어(106)가 이용가능하더라도 어느 애플리케이션들이 동시에 실행될 수 없는지를 지시한다. 애플리케이션 규칙(210)의 예는 음성 호 동안 사운드 레코더 애플리케이션을 실행하는 것 에 대한 금지를 포함한다. 하드웨어가 두 애플리케이션들 모두의 동시 동작을 지원할 수 있을지라도, 상기 애플리케이션 규칙은 법적 요구사항(legal requirement)들 때문에 상기 애플리케이션들의 동시 실행을 금지한다. 인가되지 않은 음성 호의 레코딩을 회피하기 위해, 상기 애플리케이션 규칙(210)은 사운드 레코딩된 애플리케이션과 음성 통신 애플리케이션의 동시 동작을 금지한다.
규칙 충돌이나 하드웨어 충돌이 신규 애플리케이션을 현재의 활성 애플리케이션들과 함께 실행하는데 존재하지 않는다면, DSP 이미지 검정기(204)는 신규 애플리케이션과 현재의 활성 애플리케이션의 실행을 지원할 포괄적인 DSP 이미지를 식별한다. 충돌이 검출되거나 DSP 이미지 검정기가 포괄적인 DSP 이미지를 식별할 수 없다면, 우선순위 평가기(206)는, 우선순위 레벨들에 기초하여, 현재의 활성 애플리케이션들이 상기 신규 애플리케이션을 실행하기 위해 정지 또는 중단되어야 할 것인지를 결정한다.
DSP 이미지는 모듈들의 세트를 포함하며, 여기서 각각의 모듈은 애플리케이션에 관한 특정 기능을 수행하거나 하드웨어를 동작시키기 위한 실행가능 코드를 포함한다. 예를 들어, DSP 이미지는 음성 인코드/디코드(encode/decode) 모듈 및 카메라 뷰 파인딩(camera view finding) 모듈과 키-프레스(key-press) 톤 발생 모듈을 포함할 수 있다. 로드된 본 DSP 이미지로써, 사용자는 음성 호 동안 상기 카메라 뷰 파인딩 특징을 이용할 수 있다. 이하에 더 상세히 기재되는 바와 같이, DSP 이미지 검정기는 적어도 현재의 활성 애플리케이션들에 요구되는 모듈들과 상기 신규 애플리케이션에 요구되는 모듈들을 포함하는 상기 포괄적인 DSP 이미지를 식별한다. 요구되는 모듈들의 세트는 각각의 DSP 이미지 내에 포함되는 모듈들에 비교된다. 모든 요구되는 모듈들을 포함하는 DSP 이미지는 상기 포괄적인 DSP 이미지로서 식별되며 DSP(104) 상에 로드된다.
포괄적인 DSP 이미지가 식별되지 않거나 충돌이 존재한다면, 우선순위 평가기(206)는 신규 애플리케이션과 현재의 활성 애플리케이션의 우선순위들을 평가하여 상기 신규 애플리케이션이 실행되어야 할 것인지를 결정한다. 상기 예시적인 실시예에서, 우선순위 평가기(206)는 상기 신규 애플리케이션이 현재의 활성 애플리케이션들의 최대 우선순위보다 더 높은 우선순위를 보유하는지 여부를 결정한다. 신규 애플리케이션에 관련된 우선순위 레벨(신규 애플리케이션 우선순위)이 모든 현재의 활성 애플리케이션들의 최대 우선순위 레벨과 비교된다. 상기 예시적인 실시예에서, 신규 애플리케이션이 활성 애플리케이션들의 최고 우선순위보다 크거나 같은 우선순위를 갖는다면, 하나 이상의 현재의 활성 애플리케이션들이 정지되며 신규 애플리케이션이 호출(invoke)되어 실행되도록 허용된다. 다른 기준을 이용하여 일부 환경들에서 상기 우선순위들을 평가할 수 있다. 예시적인 실시예에서, 현재의 모든 활성 애플리케이션들이 중지되거나 중단되며 자원들은 신규 애플리케이션에 할당된다. 신규 애플리케이션을 지원하는 요구되는 모듈들을 포함하는 DSP 이미지가 로드(load)되고 신규 애플리케이션이 실행된다. 현재의 활성 애플리케이션들의 최대 우선순위가 신규 애플리케이션의 우선순위보다 높다면, 신규 애플리케이션은 거부된다. 일부 상황들에서, 더 낮은 우선순위를 가지며 신규 애플리케이션이 실행되게 하도록 정지되어야 하는 하나 이상의 DSP 애플리케이션들을 식별하 는 DSP 이미지들과 더불어 상기 애플리케이션들의 우선순위를 분석하는 절차(procedure)가 개시될 수 있다. 그러한 경우들에 있어서, 현재의 활성 애플리케이션들 모두가 정지되는 것은 아니다.
도 3은 본 발명의 예시적인 실시예에 따라 충돌 검출을 수행하는 방법의 순서도이다. 본 방법은 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합으로써 수행될 수 있다. 상기 예시적인 실시예에서, 본 방법은 주 처리기(102) 상의 코드를 실행시킴으로써 수행된다.
단계(302)에서, i는 1로 세트(set)된다.
단계(304)에서, 규칙 충돌이 존재하는지 여부가 결정된다. 예시적인 실시예로, 신규 애플리케이션을 포함하는 애플리케이션들의 각각의 쌍, Ax, 및 각각의 현재의 활성 애플리케이션, Ai가 금지된(prohibited) 애플리케이션 쌍(pair)들 목록에 비교된다. 상기 금지된 애플리케이션 쌍들 목록은 하나 이상의 규칙들에 의해 동시에 실행하는 것이 금지되는 애플리케이션들의 모든 쌍들을 포함한다. 따라서, 규칙 충돌들이 예시적인 실시예에서 금지된 애플리케이션들 쌍들 목록 내에서 반영된다. 다른 기술들이 일부 환경들에서 이용되어 상기 규칙들을 적용하여 신규 애플리케이션들을 현재의 활성 애플리케이션들과 실행시킴으로써 규칙 위반이 존재하는지 여부를 결정한다. 상기 애플리케이션 쌍(Ai, Ax)이 상기 목록에서 발견되면, 규칙 충돌이 단계(306)에서 식별된다.
단계(308)에서, 현재의 활성 애플리케이션들에 의해 요구되는 하드웨어 자원 들(106)이 신규 애플리케이션이 필요로 하는 하드웨어 자원들과 겹치는지(overlap)가 결정된다. 따라서, 현재의 활성 애플리케이션, Ai에 대한 하드웨어 자원들의 세트가, 1 내지 N의 각각의 i에 대해 신규 애플리케이션 Ax에 의해 요구되는 하드웨어 자원들의 세트와 비교된다. 상기 세트들의 교점(intersection)이 영(zero)이면(즉, 널(null) 세트), 하드웨어 충돌이 존재하지 않으며 상기 절차는 단계(312)로 계속된다. 상기 교점이 널 세트가 아니라면, 하드웨어 충돌이 단계(310)에서 식별된다.
단계들(304, 308, 312, 및 314)에 의해 형성되는 루프는, 모든 현재의 애플리케이션들이 분석될 때까지, 규칙 충돌이 검출될 때까지, 또는 하드웨어 충돌이 발견될 때까지, i를 1부터 N까지 증분(increment)시킨다. 단계(312)에서, 현재의 활성 애플리케이션들 모두(Ai, i=1 내지 N)가 분석되었는지 여부라 결정된다. i가 N이라면, 현재의 활성 애플리케이션들 모두의 하드웨어 요구사항(requirement)들 모두가 신규 애플리케이션들의 하드웨어 요구사항들에 비교되고, 모든 Ax, Ai 쌍들이 금지된 애플리케이션 쌍들 목록과 비교되며 본 절차는 단계(316)으로 계속된다. 그렇지 않으면, i는 1씩 증분되며 본 절차는 단계(304)로 복귀한다.
단계(316)에서, 신규 애플리케이션을 현재의 활성 애플리케이션들과 동시에 실행시키는데 있어서 규칙 충돌이나 하드웨어 충돌이 존재하지 않는다고 결정된다. 그리고 나서 중재 엔진(200)의 DSP 이미지 검정기(204)가 상기 포괄적인 DSP 이미지를 식별하려고 한다.
도 4는 본 발명의 예시적인 실시예에 따른 DSP 모듈들(402)과 DSP 이미지들404) 간의 관계(400)의 블록도이다. DSP 모듈들(402)은 임의의 수(Y)의 모듈들을 포함하며 상기 이미지는 임의의 수(Z)의 DSP 이미지들(404)을 포함한다. 도 4의 화살표들은 관련되는 DSP 이미지들(404) 및 DSP 모듈들(402)을 식별한다. 모듈과 이미지 간의 화살표는 상기 모듈이 상기 이미지 내부라는 점을 지시하였다. 따라서, 도 4에 도시되는 예에서, 이미지 1, 이미지 2 및 이미지 5 각각은 모듈 2를 포함한다. DSP 이미지(404)는 임의의 수의 모듈들을 포함할 수 있으며 모듈은 임의의 수의 이미지들 내에 포함될 수 있다. 이하에 더 상세히 논의되는 바와 같이, 포괄적인 DSP 이미지를 식별하는 효율적인 기법은 다른 요구되는 모듈들이 상기 이미지에 포함되는지를 결정하기 전에 이미지들 내에 덜 빈번하게 포함되는 모듈을 포함하는 이미지들을 식별하는 것을 포함한다. 달리 말해, 빈번하게 포함되는 모듈은 DSP 이미지가 상기 포괄적 DSP 이미지의 요구사항들을 충족할 것인지에 대해 제한된 정보를 제공한다.
도 5는 본 발명의 예시적인 실시예에 따른 포괄적인 DSP 이미지를 식별하는 방법의 순서도이다. 본 방법은 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합으로써 수행될 수 있다. 예시적인 실시예로, 본 방법은 주 처리기(102) 상에서 코드를 실행함으로써 수행된다. 그러므로, 도 5를 참조로 기재되는 본 방법은, DSP 이미지 검정기(204)의 예시적인 구현을 제공한다.
단계(502)에서, 현재 로드된 DSP 이미지 내의 모듈(Mj)이 탐색(search) 모듈 로서 식별된다. 다양한 기준들과 기법들이 상기 탐색 모듈(Mj)을 식별하는데 이용될 수 있을지라도, Mj은 예시적인 실시예에서 DSP 이미지들 내의 포함 빈도에 기초하여 선택된다. 상기 예시적인 실시예에서, 현재 이용되는 모듈들 {M1, M2, ...MD}의 서브셋 S는 {M1, M2, ...MD}-{M1, Mp, ...Mq}를 이용함으로써 형성되며, 여기서 {M1, Mp, ...Mq}는 가장 빈번하게 이용되는 모듈들의 세트이다. 모듈 Mj는 상기 세트 S로부터 무작위로 골라진다. 일부 환경들에서, Mj는 현재 로드된 모듈들의 세트로부터 무작위로 선택될 수 있다.
단계(504)에서, Mj를 포함하는 DSP 이미지들의 세트가 식별된다(iSET={i1, i2, i3...ix}). 그러므로, 상기 모듈, Mj는 모듈들(402)의 목록 내에서 식별되며 상기 모듈에 대응하는 이미지들이 iSET으로 그룹화(group) 된다.
단계(506)에서, 카운터가 1로 세트된다.
단계(508)에서, 신규 애플리케이션 모듈들 및 현재의 활성 애플리케이션 모듈들을 포함하는 모듈들의 결합(union) 세트가 식별되고(Um={Ma, Mb,...MK}U{M1, M2,...MD}, 여기서 K는 신규 애플리케이션 모듈들의 수이며 D는 현재의 활성 애플리케이션 모듈들의 수이다). 그러므로, Um은 신규 애플리케이션에 요구되는 모든 모듈들 및 현재의 활성 애플리케이션에 요구되는 모든 모듈들을 포함한다.
단계(510)에서, DSP 이미지가 모듈들의 결합 세트, Um을 포함하는지가 결정된다. DSP 이미지가 적어도 신규 애플리케이션에 요구되는 모듈들 및 현재의 활성 애플리케이션에 요구되는 모듈들을 포함하지 않는다면, 본 절차는 단계9514)로 계속된다. DSP 이미지가 적어도 신규 애플리케이션에 요구되는 모듈들 및 현재의 활성 애플리케이션에 요구되는 모듈들을 포함한다면, 본 절차는 단계(512)로 계속되어 현재의 분석되는 DSP 이미지(iC)가 포괄적인 DSP 이미지로서 검정된다. 그러므로, iC가 Um을 포함한다면, iC는 상기 포괄적인 DSP 이미지로서 검정된다. 상기 포괄적인 DSP 이미지는 DSP에 로드되어 신규 애플리케이션 및 현재의 활성 애플리케이션을 지원하도록 실행된다.
단계들(510, 514, 및 516)으로써 형성되는 루프는 iSET 내의 모든 DSP 이미지들이 분석되거나 포괄적인 DSP 이미지가 식별될 때까지 C를 1부터 X까지 증분시킨다. 단계(514)에서, iSET 내의 모든 DSP 이미지들이 분석되었는지가 결정된다. C가 X와 같다면, iSET 내의 모든 DSP 이미지들이 분석되었으며 본 절차는 단계(518)로 계속된다. 그렇지 않으면, C는 1씩 증분되며 본 절차는 단계(510)로 복귀한다. 따라서, DSP 이미지들의 세트가 평가되어 상기 포괄적인 DSP 이미지를 식별한다.
단계(518)에서, 이용가능한 포괄적인 DSP 이미지가 없는지 여부가 결정된다. 우선순위 평가기(202)가 호출(invoke)되어 신규 애플리케이션을 실행하기 위해 상기 현재의 활성 애플리케이션들이 정지 또는 중단되어야 하는지를 결정한다.
그러므로, 상기 예시적인 실시예에서, 중재 엔진(200)은 신규 애플리케이션 및 현재의 활성 애플리케이션들을 동시에 실행시키는데 있어서 임의의 하드웨어 또는 규칙 충돌들이 존재하는지를 결정한다. 충돌들이 식별되지 않는다면, 상기 중재 엔진(200) 내의 DSP 이미지 검정기(204)는 신규 애플리케이션과 현재의 활성 애플리케이션을 실행시키는데 필요한 모든 모듈들을 포함하는 포괄적인 DSP 이미지를 식별하려고 한다. 포괄적인 DSP 이미지가 식별되지 않거나 충돌이 검출된다면, 우선순위 평가기(206)는 신규 애플리케이션이 거부되어야 한다거나 신규 애플리케이션과 현재의 활성 애플리케이션들의 우선순위들에 기초하여 실행되어야 한다고 결정한다.
분명, 본 발명의 다른 실시예들 및 변형들이 이러한 제시사항들의 관점에서 당해 기술분야에서 통상의 지식을 가진 자에게 용이하게 발생할 것이다. 상기 실시예는 예시적인 것이며 제한적인 것이 아니다. 본 발명은 이하의 청구항들에 의해서만 한정되는 것이며, 이는 상기 기재사항 및 첨부되는 도면들과 함께 검토할 때 모든 그러한 실시예들과 변형들을 포함한다. 그러므로, 본 발명의 범위는, 상기 실시예를 참조로 하여 결정되는 것이 아니라, 대신 균등물들의 전 범위와 함께 첨부된 청구항들을 참조로 하여 결정되어야 한다.

Claims (21)

  1. 휴대용 통신 장치에서 신규 애플리케이션에 대한 요청을 수신하는 단계; 및
    복수의 디지털 신호 처리기(DSP) 이미지들로부터, 상기 신규 애플리케이션과 모든 현재의 활성(active) 애플리케이션들을 지원하기 위한 모든 요구되는 모듈들을 포함하는 포괄적(comprehensive) DSP 이미지를 식별하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 식별 단계는:
    현재 로드(load)된 모듈들의 세트로부터 탐색(search) 모듈을 식별하는 단계;
    상기 복수의 DSP 이미지들로부터, 상기 탐색 모듈을 포함하는 DSP 이미지들의 세트를 식별하는 단계; 및
    상기 포괄적 DSP 이미지를 식별하기 위해 상기 DSP 이미지들의 세트를 평가(evaluate)하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 포괄적 DSP 이미지를 DSP에 로드(load)하는 단계를 더 포함하는 방법.
  4. 제 2 항에 있어서,
    포괄적 DSP 이미지가 식별되지 않는다면, 상기 신규 애플리케이션이 호출(invoke)되어야 하는지를 결정하기 위해 상기 현재의 활성 애플리케이션들의 현재 우선순위(priority)에 대한 상기 신규 애플리케이션의 신규 애플리케이션 우선순위를 평가하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 평가 단계는:
    상기 신규 애플리케이션 우선순위가 상기 현재의 활성 애플리케이션의 최대 우선순위보다 높거나 같다면 상기 신규 애플리케이션을 호출(invoke)하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 신규 애플리케이션 우선순위가 상기 현재의 활성 애플리케이션의 최대 우선순위보다 높거나 같다면 모든 현재의 활성 애플리케이션들을 정지(suspend)시키는 단계를 더 포함하는 방법.
  7. 제 5 항에 있어서,
    상기 신규 애플리케이션을 지원하는데 적절한 DSP 이미지를, 상기 DSP에, 로드하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 신규 애플리케이션과 현재의 활성 애플리케이션들을 동시에 실행하는데 규칙(rule) 충돌(conflict)이 존재하지 않는지를 결정하는 단계; 및
    상기 신규 애플리케이션과 상기 현재의 활성 애플리케이션들을 동시에 실행하는데 하드웨어 충돌이 존재하지 않는지를 결정하는 단계를 더 포함하는 방법.
  9. 휴대용 통신 장치에서 애플리케이션들을 관리하는 방법으로서:
    신규 애플리케이션 및 활성 애플리케이션들을 동시에 실행시키는데 있어서 규칙 충돌이 존재하는지를 결정하는 단계;
    상기 신규 애플리케이션 및 상기 활성 애플리케이션들을 동시에 실행시키는데 있어서 하드웨어 충돌이 존재하는지를 결정하는 단계;
    규칙 충돌이 존재하지 않고 하드웨어 충돌이 존재하지 않으면, 상기 신규 애플리케이션과 상기 현재의 활성 애플리케이션들의 동시 실행을 지원하는 모듈들을 포함하는 포괄적 DSP 이미지를 식별하기 위해 복수의 DSP 이미지들을 평가하는 단계; 및
    포괄적 DSP 이미지가 식별된다면, 상기 포괄적 DSP 이미지를 상기 DSP에 로드시키는 단계를 포함하는 애플리케이션 관리 방법.
  10. 제 9 항에 있어서,
    상기 포괄적 DSP 이미지가 식별되지 않는다면, 상기 신규 애플리케이션이 호 출(invoke)되어야 하는지를 결정하기 위해 상기 현재의 활성 애플리케이션들의 현재 우선순위에 대한 상기 신규 애플리케이션의 신규 애플리케이션 우선순위를 평가하는 단계를 더 포함하는 애플리케이션 관리 방법.
  11. 제 10 항에 있어서,
    상기 평가 단계는:
    상기 신규 애플리케이션 우선순위가 상기 현재의 활성 애플리케이션의 최대 우선순위보다 높거나 같다면 상기 신규 애플리케이션을 호출(invoke)하는 단계를 포함하는, 애플리케이션 관리 방법.
  12. 제 11 항에 있어서,
    상기 신규 애플리케이션 우선순위가 상기 현재의 활성 애플리케이션의 최대 우선순위보다 높거나 같다면 모든 현재의 활성 애플리케이션들을 중지(suspend) 시키는 단계를 더 포함하는 애플리케이션 관리 방법.
  13. 제 11 항에 있어서,
    상기 신규 애플리케이션을 지원하는데 적합한 DSP 이미지를, 상기 DSP에 로드하는 단계를 더 포함하는 애플리케이션 관리 방법.
  14. 휴대용 통신 장치에서 주 처리기(main processor) 상에서 실행되는 애플리케 이션들을 관리하는 중재 엔진(arbitration engine)으로서:
    복수의 DSP 이미지들로부터, 신규 애플리케이션 및 모든 현재의 활성 애플리케이션들을 지원하는데 요구되는 애플리케이션 모듈들을 포함하는 포괄적 DSP 이미지를 식별하도록 구성되는 디지털 신호 처리기(DSP) 이미지 검정기(qualifier)를 포함하는 중재 엔진.
  15. 제 14 항에 있어서,
    상기 DSP 이미지 검정기는 추가로:
    현재의 로드된 모듈들의 세트로부터 탐색(search) 모듈을 식별하고;
    상기 복수의 DSP 이미지들로부터, 상기 탐색 모듈을 포함하는 DSP 이미지들의 세트를 식별하고; 그리고
    상기 포괄적 DSP 이미지를 식별하기 위해 상기 DSP 이미지들의 세트를 평가하도록 구성되는, 중재 엔진.
  16. 제 15 항에 있어서,
    포괄적 DSP 이미지가 식별되지 않는다면, 상기 신규 애플리케이션이 호출(invoke)되어야 하는지를 결정하기 위해 상기 현재의 활성 애플리케이션들의 현재의 우선순위에 대한 상기 신규 애플리케이션의 신규 애플리케이션 우선순위를 평가하도록 구성되는 우선순위 평가기(evaluator)를 더 포함하는 중재 엔진.
  17. 제 16 항에 있어서,
    상기 우선순위 평가기는 추가로:
    상기 신규 애플리케이션 우선순위가 상기 현재의 활성 애플리케이션의 최대 우선순위보다 높거나 같다면 상기 신규 애플리케이션이 실행되어야 한다고 결정하도록 구성되는, 중재 엔진.
  18. 제 14 항에 있어서,
    상기 신규 애플리케이션 및 상기 현재의 활성 애플리케이션들을 동시에 실행시키는데 있어서 충돌(conflict)을 식별하도록 구성되는 충돌 검출기(conflict detector)를 더 포함하는 중재 엔진.
  19. 제 18 항에 있어서,
    상기 충돌은 하드웨어 충돌인, 중재 엔진.
  20. 제 18 항에 있어서,
    상기 충돌은 규칙 충돌인, 중재 엔진.
  21. 휴대용 통신 장치의 주 처리기 상에서 실행되는 애플리케이션들을 관리하는 중재 엔진으로서:
    상기 신규 애플리케이션 및 상기 현재의 활성 애플리케이션들을 동시에 실행 하는데 있어서 충돌을 식별하도록 구성되는 충돌 검출기;
    복수의 DSP 이미지들로부터, 신규 애플리케이션 및 모든 현재의 활성 애플리케이션들을 지원하는데 요구되는 애플리케이션 모듈들을 포함하는 포괄적 DSP 이미지를 식별하도록 구성되는 디지털 신호 처리기(DSP) 이미지 검정기; 및
    상기 포괄적 DSP 이미지가 식별되지 않거나 충돌이 검출된다면, 상기 신규 애플리케이션이 호출(invoke)되어야 하는지를 결정하기 위해 상기 현재의 활성 애플리케이션들의 현재의 우선순위에 대한 상기 신규 애플리케이션의 신규 애플리케이션 우선순위를 평가하도록 구성되는 우선순위 평가기를 포함하는 중재 엔진.
KR1020087008854A 2005-09-15 2006-09-15 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한기술 KR100980253B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/229,199 2005-09-15
US11/229,199 US7454607B2 (en) 2005-09-15 2005-09-15 Techniques for managing applications in a portable communication device

Publications (2)

Publication Number Publication Date
KR20080047457A true KR20080047457A (ko) 2008-05-28
KR100980253B1 KR100980253B1 (ko) 2010-09-06

Family

ID=37499206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087008854A KR100980253B1 (ko) 2005-09-15 2006-09-15 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한기술

Country Status (5)

Country Link
US (1) US7454607B2 (ko)
KR (1) KR100980253B1 (ko)
BR (1) BRPI0616218A2 (ko)
IL (1) IL190186A0 (ko)
WO (1) WO2007035548A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009058154A1 (en) * 2007-11-02 2009-05-07 Qualcomm Incorporated Apparatus and methods of configurable system event and resource arbitration management
US8437748B2 (en) 2010-07-07 2013-05-07 At&T Mobility Ii Llc Method for managing multiple radio access bearers in a single handset
US10133604B2 (en) * 2011-12-13 2018-11-20 Sony Interactive Entertainment Inc. Information processing device, information processing method, program, and information storage medium
US9740531B2 (en) 2015-06-29 2017-08-22 Lookout, Inc. Coordinating multiple components

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062645B2 (en) * 1998-06-04 2006-06-13 Gateway Inc. Build to order personal computer manufacturing fast boot method
US6778596B1 (en) * 1999-03-12 2004-08-17 Aware, Inc. Method and multi-carrier transceiver with stored application profiles for supporting multiple applications
KR100681055B1 (ko) * 1999-09-15 2007-02-08 어웨어, 인크. 활성 어플리케이션 세트 사이에서 동적 전환을 갖는다중캐리어 시스템
GB2364143A (en) 2000-06-30 2002-01-16 Nokia Corp Resource allocation
US8214849B2 (en) * 2001-07-13 2012-07-03 Advanced Micro Devices, Inc. System for loading device-specific code and method thereof
US20030041125A1 (en) 2001-08-16 2003-02-27 Salomon Kirk C. Internet-deployed wireless system
US6971004B1 (en) * 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
JP2005005909A (ja) * 2003-06-10 2005-01-06 Sony Ericsson Mobilecommunications Japan Inc 競合管理プログラム,競合管理プログラムが記憶された記憶媒体,競合管理方法及び電子機器
US7257583B2 (en) * 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
US8176503B2 (en) * 2004-01-27 2012-05-08 Hewlett-Packard Development Company, L.P. Device driver selection
EP1569101A1 (en) 2004-02-25 2005-08-31 Research In Motion Limited Method and system for selecting a program for download

Also Published As

Publication number Publication date
US7454607B2 (en) 2008-11-18
IL190186A0 (en) 2008-11-03
US20070061557A1 (en) 2007-03-15
WO2007035548A1 (en) 2007-03-29
KR100980253B1 (ko) 2010-09-06
BRPI0616218A2 (pt) 2011-06-14

Similar Documents

Publication Publication Date Title
US9158604B1 (en) Lightweight data-flow tracker for realtime behavioral analysis using control flow
US9189624B2 (en) Adaptive observation of behavioral features on a heterogeneous platform
US20180039779A1 (en) Predictive Behavioral Analysis for Malware Detection
KR20070027613A (ko) 디바이스상의 공유된 리소스의 동적 중재 시스템
US9280663B2 (en) Apparatus and method for analyzing malware in data analysis system
CN108717374B (zh) Java虚拟机启动时预热的方法、装置、及计算机设备
CN109408232B (zh) 一种基于交易流程的组件化总线调用执行系统
JP2019512113A (ja) 通知メッセージ処理方法及び装置
KR100980253B1 (ko) 휴대용 통신 장치에서 애플리케이션들을 관리하기 위한기술
US20070204224A1 (en) System and method for storing and accessing data files at wireless devices
CN112416616B (zh) 一种微服务调用方法、装置、电子设备及存储介质
EP3058481A1 (en) Acceleration based on cached flows
CN107133169B (zh) 应用测试包生成方法及生成装置
US20080140390A1 (en) Solution for sharing speech processing resources in a multitasking environment
JP2004171258A (ja) パーミッショントークン管理システム及びプログラム
KR20140007294A (ko) 콘텍스트 가중 및 인센티브들에 기초하여 폰북 연락처들을 소팅하기 위한 시스템 및 방법
EP4044590A1 (en) Phone as an audio output device for a computing system
CN111796865B (zh) 一种字节码文件修改方法、装置、终端设备及介质
CN115061907A (zh) 测试方法和测试系统、电子设备、存储介质
JP2005228309A (ja) ルールに基づいて決定的に行う、コードへのオブジェクトのディスパッチ
CN113778850A (zh) 数据处理方法、装置、电子设备和计算机可读介质
KR102081389B1 (ko) 위치 기반 서비스 제공 방법 및 그 전자 장치
US20080163224A1 (en) Modeling interrupts in a business process
EP3640821A1 (en) Coefficient calculation method, component calling method, device, medium, server, and terminal
EP1452965B1 (en) System for event based java applications for mobile terminals

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
LAPS Lapse due to unpaid annual fee