KR20170112774A - 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템 - Google Patents

복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템 Download PDF

Info

Publication number
KR20170112774A
KR20170112774A KR1020160040346A KR20160040346A KR20170112774A KR 20170112774 A KR20170112774 A KR 20170112774A KR 1020160040346 A KR1020160040346 A KR 1020160040346A KR 20160040346 A KR20160040346 A KR 20160040346A KR 20170112774 A KR20170112774 A KR 20170112774A
Authority
KR
South Korea
Prior art keywords
self
adaptive
resource manager
system resource
performance
Prior art date
Application number
KR1020160040346A
Other languages
English (en)
Other versions
KR101955715B1 (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 KR1020160040346A priority Critical patent/KR101955715B1/ko
Publication of KR20170112774A publication Critical patent/KR20170112774A/ko
Application granted granted Critical
Publication of KR101955715B1 publication Critical patent/KR101955715B1/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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine

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

복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템{EMBEDDED SYSTEM INCLUDING A PLURALITY OF SELF-ADAPTIVE APPLICATIONS}
본 발명은 임베디드 시스템에 관한 것으로, 좀 더 구체적으로는 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템에 관한 것이다.
임베디드 시스템(embedded system)은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템이다. 즉, 임베디드 시스템은 전체 장치의 일부분으로 구성되며, 제어가 필요한 시스템을 위한 두뇌 역할을 하는 특정 목적의 컴퓨터 시스템이다. 이에 비해 개인용 컴퓨터와 같은 특정되지 않는 일반적인 목적을 수행하는 컴퓨터 시스템과 대조된다. 특정 목적을 수행하는 컴퓨터 시스템이므로 목적을 설정하고 이를 수행하는 프로그램 코드를 작성하여 메모리에 기록하고 이를 읽어 동작시키는 방법이 일반적이다.
최근 응용 프로그램의 성능을 높여줄 수 있도록, 임베디드 시스템의 핵심인 CPU, GPU, 메모리, 네트워크 장치 등의 하드웨어는 계속 고성능화되고 있다. 하지만, 높은 사양을 요구하는 고품질의 어플리케이션과 콘텐츠가 지속적으로 개발됨에 따라 사용자는 지속적으로 시스템 성능 저하를 경험하게 된다. 또한, 시스템 개발자는 다양한 형태의 디바이스 출현으로 해당 시스템에 대한 어플리케이션이나 콘텐츠를 최적화하는데 많은 시간과 노력이 요구된다.
본 발명의 목적은 시스템 리소스 관리기를 통해 자원을 효율적으로 관리하는 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템을 제공하는 데 있다.
본 발명에 따른 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템은 상기 자가적응형 어플리케이션들을 실행하는 중앙처리장치, 그리고 상기 자가적응형 어플리케이션들 및 상기 자가적응형 어플리케이션들의 리소스 관리하는 시스템 리소스 관리기가 로드되는 워킹 메모리를 포함하되, 상기 자가적응형 어플리케이션들 각각은 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 상기 시스템 리소스 관리기에 전달하는 모니터링 어뎁터, 그리고 상기 제어 파라미터를 이용하여 제어 파라미터 테이블을 생성하는 가상 액츄에이터를 포함하고, 상기 시스템 리소스 관리기는 상기 자가적응형 어플리케이션들 각각의 상기 품질 요구사항, 상기 제어 파라미터 및 상기 성능 측정 정보를 수신하여 가상 액츄에이터 테이블을 생성하고, 그리고 상기 품질 요구사항과 상기 성능 측정 정보를 비교하여 그 결과에 따라 상기 가상 액츄에이터 테이블에서 선택된 파라미터 아이디를 상기 가상 액츄에이터로 전송하고, 상기 자가적응형 어플리케이션들 각각의 가상 액츄에이터는 상기 파라미터 아이디에 따라 상기 자가적응형 어플리케이션들 각각의 성능을 제어한다.
본 발명의 실시 예에 따르면, 시스템 리소스 관리기를 통해 자원을 효율적으로 관리하는 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 임베디드 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 복수의 자가적응형 어플리케이션들을 지원하는 임베디드 시스템의 동작을 보여주는 블록도이다.
도 3은 도 2의 가상 액츄에이터의 동작을 자세히 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 제어 파라미터 선택 과정을 보여주는 순서도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 임베디드 시스템이 본 발명의 특징 및 기능을 설명하기 위한 장치의 한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 또한, 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고, 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 실시 예에 따른 임베디드 시스템을 보여주는 블록도이다. 도 1을 참조하면, 임베디드 시스템(1000)은 중앙처리장치(100), 워킹 메모리(200), 입출력 장치(300), 저장 장치(400), 그리고 시스템 버스(500)를 포함할 수 있다.
중앙처리장치(100)는 임베디드 시스템(1000)에서 수행될 소프트웨어(운영 체제, 응용 프로그램들, 장치 드라이버들)를 실행한다. 중앙처리장치(100)는 워킹 메모리(200)에 로드되는 운영체제(210)를 실행할 것이다. 중앙처리장치(100)는 운영 체제(210) 기반에서 구동될 다양한 자가적응형 어플리케이션들(220)을 실행할 것이다.
워킹 메모리(200)에는 운영 체제(210), 자가적응형 어플리케이션들(220) 또는 시스템 리소스 관리기(230)가 로드될 것이다. 임베디드 시스템(1000)의 부팅 시에 저장 장치(400)에 저장된 OS 이미지(미도시됨)가 부팅 시퀀스에 의거하여 워킹 메모리(200)로 로드될 것이다. 운영 체제(210)에 의해서 임베디드 시스템(1000)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 자가적응형 어플리케이션들(220)이 워킹 메모리(200)에 로드될 수 있다. 워킹 메모리(200)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.
자가적응형 어플리케이션들(220)은 각 어플리케이션 내에 품질 요구사항을 가질 수 있다. 자가적응형 어플리케이션들(220)은 자신의 성능을 조절할 수 있는 제어 파라미터를 가질 수 있다. 자가적응형 어플리케이션들(220)은 소정의 시간 주기로 자신들의 성능을 측정하여 성능 측정 정보를 생성할 수 있다. 예를 들면, 자가적응형 어플리케이션들(220)은 소정의 동작 품질을 만족하지 못할 경우 내부 실행 경로 또는 내부 실행 알고리즘을 변경하여 동작 품질을 유지할 수 있다. 자가적응형 어플리케이션들(220)은 품질 요구사항과 성능 측정 정보를 비교하여 제어 파라미터를 통해 동작 품질을 유지할 수 있다. 다만, 자가적응형 어플리케이션들(220)이 서로의 품질 요구사항을 모르는 경우, 자가적응형 어플리케이션들(220) 각각은 자신들의 성능을 낮춰 소극적으로 실행될 수 있다. 따라서, 자가적응형 어플리케이션들(220)의 외부에서 각 어플리케이션의 성능을 모니터링하고, 전체 어플리케이션들을 제어하는 것이 필요하다.
시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220)로부터 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 수신할 수 있다. 시스템 리소스 관리기(230)는 수신된 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 자가적응형 어플리케이션 별로 각각 관리할 수 있다. 시스템 리소스 관리기(230)는 품질 요구사항과 성능 측정 정보를 비교하여 자가적응형 어플리케이션들(220) 각각의 성능 적정성을 판별할 수 있다. 시스템 리소스 관리기(230)는 판별 결과에 따라 자가적응형 어플리케이션들(220) 각각으로 제어가 필요한 파라미터 아이디를 전송할 수 있다. 자가적응형 어플리케이션들(220) 각각은 수신된 파라미터 아이디를 이용하여 자신의 성능을 제어할 수 있다. 따라서, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220)의 성능을 제어하여 전체적인 자원을 효율적으로 관리할 수 있다.
입출력 장치(300)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어한다. 예를 들면, 입출력 장치(300)는 키패드, 터치패드와 같은 입력 장치를 구비하여 사용자로부터 명령을 입력받을 수 있다. 그리고 입출력 장치(300)는 디스플레이 등의 출력 장치를 구비하여 임베디드 시스템(1000)의 수행 과정이나 수행 결과 등을 표시할 수 있다.
저장 장치(400)는 임베디드 시스템(1000)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(400)는 운영 체제 이미지(OS Image), 자가적응형 어플리케이션들(220), 시스템 리소스 관리기(230) 및 각종 데이터를 저장할 수 있다. 저장 장치(400)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)나 하드디스크 드라이브(HDD)로 제공될 수도 있다. 저장 장치(400)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(400)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다.
시스템 버스(500)는 임베디드 시스템(1000)의 내부에서 네트워크를 제공하기 위한 인터커넥터로 제공될 것이다. 시스템 버스(500)를 통해서 중앙처리장치(100), 워킹 메모리(200), 입출력 장치(300), 그리고 저장 장치(400)가 전기적으로 연결되고 상호 데이터를 교환할 수 있다. 하지만, 시스템 버스(500)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
이상에서 살펴 본 바와 같이, 임베디드 시스템(1000)은 시스템 리소스 관리기(230)를 통해 임베디드 시스템(1000)의 자원을 효율적으로 관리할 수 있다. 예를 들면, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항 및 제어 파라미터를 저장할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220)로부터 소정의 주기로 성능 측정 정보를 수신할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항과 성능 측정 정보를 비교할 수 있다. 비교 결과에 따라 시스템 리소스 관리기(230)는 성능 조절이 필요한 어플리케이션을 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션의 변경할 제어 파라미터를 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션에게 제어 파라미터 아이디를 전송할 수 있다. 선택된 어플리케이션은 수신된 제어 파라미터 아이디에 대응하는 제어 파라미터를 조절할 수 있다. 따라서, 임베디드 시스템(1000)은 자원을 통합적으로 관리할 수 있다.
도 2는 본 발명의 실시 예에 따른 복수의 자가적응형 어플리케이션들을 지원하는 임베디드 시스템의 동작을 보여주는 블록도이다. 도 2를 참조하면, 임베디드 시스템(1000)은 운영체제(210), 복수의 자가적응형 어플리케이션들(220) 및 시스템 리소스 관리기(230)를 통하여 구동될 수 있다. 자가적응형 어플리케이션들(220)은 자가적응형 어플리케이션(220a), 자가적응형 어플리케이션(220b) 및 자가적응형 어플리케이션(220c)을 포함할 수 있다. 이하에서는 자가적응형 어플리케이션(220a)이 예시적으로 설명될 것이다. 다른 자가적응형 어플리케이션들(220b, 220c)도 자가적응형 어플리케이션(220a)과 동일 또는 유사하게 동작할 수 있다. 또한, 워킹 메모리(200)에 더 많은 자가적응형 어플리케이션들이 로딩될 수 있다.
자가적응형 어플리케이션(220a)은 비즈니스 로직(221a), 모니터링 어뎁터(222a) 및 가상 액츄에이터(223a)를 포함할 수 있다. 예를 들면, 비즈니스 로직(221a)은 자가적응형 어플리케이션(220a)의 업무에 필요한 데이터 처리를 수행할 수 있다. 비즈니스 로직(221a)은 데이터 입력, 수정, 조회 및 보고서 처리 등을 수행하는 루틴을 의미한다. 비즈니스 로직(221a)은 호출 함수 또는 파라미터 정보를 모니터링 어뎁터(222a)에 제공할 수 있다.
모니터링 어뎁터(222a)는 품질 요구사항 및 성능 측정 정보를 시스템 리소스 관리기(230)에 전달할 수 있다. 예를 들면, 품질 요구사항은 자가적응형 어플리케이션(220a)의 정적 정보이다. 품질 요구사항은 자가적응형 어플리케이션(220a)이 처음 실행될 때 요구되는 성능 정보이다. 품질 요구사항은 어플리케이션 명칭, 응용 프로세스 아이디, 성능 최대치, 성능 최소치, 성능 적정값 등을 포함할 수 있다. 성능 측정 정보는 자가적응형 어플리케이션(220a)의 동적 정보이다. 성능 측정 정보는 비즈니스 로직(221a) 내의 체크 포인터가 실행될 때마다 측정되는 실행 소요 시간 등을 포함할 수 있다. 성능 측정 정보는 주기적으로 시스템 리소스 관리기(230)에 전송될 수 있다.
모니터링 어뎁터(222a)는 제어 파라미터를 시스템 리소스 관리기(230) 또는 가상 액츄에이터(223a)에 전달할 수 있다. 예를 들면, 제어 파라미터는 비즈니스 로직(221a)에서 성능을 조절할 수 있는 실행 흐름, 함수 및 환경 설정 파라미터 등을 포함할 수 있다.
시스템 리소스 관리기(230)는 품질 요구사항 데이터베이스(231), 제어 파라미터 데이터베이스(232), 성능 측정 정보 데이터베이스(233) 및 피드백 제어기(234)를 포함할 수 있다. 예를 들면, 품질 요구사항 데이터베이스(231)는 자가적응형 어플리케이션들(220a~220c)로부터 수신되는 품질 요구사항들을 저장할 수 있다. 제어 파라미터 데이터베이스(232)는 자가적응형 어플리케이션들(220a~220c)로부터 수신되는 제어 파라미터들을 저장할 수 있다. 성능 측정 정보 데이터베이스(233)는 자가적응형 어플리케이션들(220a~220c)로부터 수신되는 성능 측정 정보들을 저장할 수 있다. 시스템 리소스 관리기(230)는 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 자가적응형 어플리케이션 별로 각각 관리할 수 있다.
피드백 제어기(234)는 품질 요구사항 데이터 베이스(231)로부터 자가적응형 어플리케이션(220a)의 품질 요구사항을 제공받을 수 있다. 피드백 제어기(234)는 성능 측정 정보 데이터 베이스(233)에서 소정의 주기로 자가적응형 어플리케이션(220a)의 성능 측정 정보를 확인할 수 있다. 피드백 제어기(234)는 성능 측정 정보가 품질 요구사항의 성능 적정값을 만족하는지 또는 허용 범위 내에 있는지 여부를 판별할 수 있다. 성능 측정 정보가 성능 적정값을 만족하지 않는 경우 또는 허용 범위를 벗어날 경우, 피드백 제어기(234)는 성능 적정값을 만족하는 제어 파라미터를 선택하여 자가적응형 어플리케이션(220a)으로 전달할 수 있다. 예를 들면, 피드백 제어기(234)는 메시지 큐(211)를 통하여 선택된 제어 파라미터의 아이디를 가상 액츄에이터(223a)로 전달할 수 있다. 도 2에 도시되지 않았지만, 메시지 큐(211)를 대신하여, 운영체제(210)에 의해 프로세스 사이의 정보 공유를 위해 사용되는 TCP/IP 소켓, 공유 메모리 및 IPC는 제어 파라미터의 아이디를 전달하기 위해 사용될 수 있다.
본 발명에 따른 시스템 리소스 관리기(230)는 자가적응형 어플리케이션별로 품질 요구사항과 성능 측정 정보를 비교하여 제어가 필요한 제어 파라미터를 결정할 수 있다. 자가적응형 어플리케이션들(220a~220c) 각각은 제어가 필요하다고 결정된 제어 파라미터를 변경하여 성능을 제어할 수 있다. 따라서, 임베디드 시스템(1000)의 자원은 시스템 리소스 관리기(230)에 의해 효율적으로 관리될 수 있다.
이상에서 살펴 본 바와 같이, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션별로 품질 요구사항과 성능 측정 정보를 비교하여 제어가 필요한 제어 파라미터를 결정할 수 있다. 예를 들면, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항 및 제어 파라미터를 저장할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220)로부터 소정의 주기로 성능 측정 정보를 수신할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항과 성능 측정 정보를 비교할 수 있다. 비교 결과에 따라 시스템 리소스 관리기(230)는 성능 조절이 필요한 어플리케이션(220a~220c)을 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션(220a~220c)의 변경할 제어 파라미터를 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션(220a~220c)에게 제어 파라미터 아이디를 전송할 수 있다. 선택된 어플리케이션(220a~220c)은 수신된 제어 파라미터 아이디에 대응하는 제어 파라미터를 조절할 수 있다. 따라서, 임베디드 시스템(1000)은 자원을 통합적으로 관리하고 효율적으로 사용할 수 있다.
도 3은 도 2의 가상 액츄에이터의 동작을 자세히 보여주는 블록도이다. 도 3을 참조하면, 가상 액츄에이터(223a)는 비즈니스 로직(221a)의 특정 함수를 호출하거나 파라미터를 변경하여 임베디드 시스템(100, 도 1 참조)의 리소스를 효율적으로 사용하도록 제어할 수 있다.
비즈니스 로직(221a)은 초기화 부분을 실행할 때 비즈니스 로직(221a)의 수행 성능을 변경할 수 있는 호출 함수 또는 파라미터 정보를 정적-동적 정보 모니터링 유닛(222a_1)에 전달할 수 있다.
정적-동적 정보 모니터링 유닛(222a_1)은 수신된 호출 함수 또는 파라미터 정보를 이용하여 품질 요구사항을 시스템 리소스 관리기(230)에 전달할 수 있다. 예를 들면, 품질 요구사항은 자가적응형 어플리케이션(220a)의 정적 정보이다. 품질 요구사항은 어플리케이션 명칭, 응용 프로세스 아이디, 성능 최대치, 성능 최소치, 성능 적정값 등을 포함할 수 있다.
정적-동적 정보 모니터링 유닛(222a_1)은 제어 파라미터를 시스템 리소스 관리기(230) 또는 가상 액츄에이터(223a)에 전달할 수 있다. 예를 들면, 제어 파라미터는 비즈니스 로직(221a)에서 성능을 조절할 수 있는 실행 흐름, 함수 및 환경 설정 파라미터 등을 포함할 수 있다. 정적-동적 정보 모니터링 유닛(222a_1)은 자가적응형 어플리케이션(220a)을 제어하기 위해 필요한 최소한의 정보를 시스템 리소스 관리기(230)에 제공할 수 있다. 예를 들면, 정적-동적 정보 모니터링 유닛(222a_1)은 파라미터 아이디 및 파라미터 가중치를 시스템 리소스 관리기(230)에 전달할 수 있다.
제어 파라미터 테이블 재구성기(223a_1)는 수신된 제어 파라미터들을 종합하여 제어 파라미터 테이블(CPTB)을 생성할 수 있다. 예를 들면, 제어 파라미터 테이블(CPTB)은 파라미터 명칭, 파라미터 아이디, 콜백 함수 또는 파라미터 설정을 위한 함수, 파라미터 포인터 정보, 및 파라미터 가중치를 포함할 수 있다. 파라미터 가중치는 자가적응형 어플리케이션(220a)의 파라미터들 사이의 중요도를 설정한 값이다.
정적-동적 정보 모니터링 유닛(222a_1)은 성능 측정 정보를 시스템 리소스 관리기(230)에 전달할 수 있다. 예를 들면, 성능 측정 정보는 자가적응형 어플리케이션(220a)의 동적 정보이다. 성능 측정 정보는 비즈니스 로직(221a) 내의 체크 포인터가 실행될 때마다 측정되는 실행 소요 시간 등을 포함할 수 있다.
시스템 리소스 관리기(230)는 정적-동적 정보 모니터링 유닛(222a_1)로부터 수신된 파라미터 아이디 및 파라미터 가중치에 기초하여 가상 액츄에이터 테이블(VATB)을 생성할 수 있다. 예를 들면, 파라미터 가중치는 대응하는 파라미터가 자가적응형 어플리케이션(220a)의 성능에 미치는 영향을 나타낸 것이다. 파라미터 가중치가 큰 경우, 대응하는 제어 파라미터는 자가적응형 어플리케이션(220a)의 성능 향상에 큰 영향을 미치는 것이다. 파라미터 가중치가 작은 경우, 대응하는 제어 파라미터는 자가적응형 어플리케이션(220a)의 성능 향상에 영향이 없는 것이다. 따라서, 시스템 리소스 관리기(230)가 큰 파라미터 가중치를 가지는 제어 파라미터를 선택하는 경우, 자가적응형 어플리케이션(220a)의 성능은 향상될 수 있다. 시스템 리소스 관리기(230)가 작은 파라미터 가중치를 가지는 제어 파라미터를 선택하는 경우, 자가적응형 어플리케이션(220a)의 성능은 감소하지만 다른 자가적응형 어플리케이션들(220b, 220c)이 시스템 리소스를 사용할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220a, 220b, 220c) 각각의 품질 요구사항 및 성능 측정 정보를 고려하여 전체 시스템 관점에서 향후 자가적응형 어플리케이션들(220a, 220b, 220c) 각각에 대한 시스템 리소스의 할당 크기를 정할 수 있다. 시스템 리소스 관리기(230)는 결정된 파라미터 아이디를 가상 액츄에이터(223a)의 간접 콜백 함수 호출기(223a_2)로 전달할 수 있다.
간접 콜백 함수 호출기(223a_2)는 제어 파라미터 테이블(CPTB)을 이용하여 수신된 파라미터 아이디에 대응하는 제어 함수 또는 파라미터 포인터를 검색할 수 있다. 간접 콜백 함수 호출기(223a_2)는 제어 함수 또는 파라미터 포인터를 사용하여 비즈니스 로직(221a)의 특정 함수를 호출하거나 파라미터 값을 변경할 수 있다.
이상에서 살펴 본 바와 같이, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션 별로 품질 요구사항과 성능 측정 정보를 비교하여 제어가 필요한 제어 파라미터를 결정할 수 있다. 예를 들면, 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항 및 제어 파라미터를 저장할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 가상 액츄에이터 테이블(VATB)을 관리할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각으로부터 소정의 주기로 성능 측정 정보를 수신할 수 있다. 시스템 리소스 관리기(230)는 자가적응형 어플리케이션들(220) 각각의 품질 요구사항과 성능 측정 정보를 비교할 수 있다. 비교 결과에 따라 시스템 리소스 관리기(230)는 성능 조절이 필요한 어플리케이션을 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션의 변경할 제어 파라미터를 가상 액츄에이터 테이블(VATB)에서 선택할 수 있다. 시스템 리소스 관리기(230)는 선택된 어플리케이션에게 제어 파라미터 아이디를 전송할 수 있다. 선택된 어플리케이션은 수신된 제어 파라미터 아이디에 대응하는 제어 파라미터를 조절할 수 있다. 따라서, 임베디드 시스템(1000)은 자원을 통합적으로 관리하고 효율적으로 사용할 수 있다.
도 4는 본 발명의 실시 예에 따른 제어 파라미터 선택 과정을 보여주는 순서도이다. 도 4를 참조하면, 시스템 리소스 관리기는 제어가 필요한 자가적응형 어플리케이션의 성능을 조절할 수 있다.
S110 단계에서, 시스템 리소스 관리기는 자가적응형 어플리케이션을 등록할 수 있다. 예를 들면, 자가적응형 어플리케이션은 실행 초기에 품질 요구사항 및 제어 파라미터를 시스템 리소스 관리기에 전달할 수 있다. 시스템 리소스 관리기는 수신된 품질 요구사항 및 제어 파라미터에 기초하여 자가적응형 어플리케이션을 등록할 수 있다.
S120 단계에서, 시스템 리소스 관리기는 가상 액츄에이터 테이블을 생성할 수 있다. 예를 들면, 시스템 리소스 관리기는 제어 파라미터에 기초하여 파라미터 아이디 및 파라미터 가중치를 포함하는 가상 액츄에이터 테이블을 생성할 수 있다.
S130 단계에서, 시스템 리소스 관리기는 성능 측정 정보를 수신할 수 있다. 예를 들면, 성능 측정 정보는 자가적응형 어플리케이션으로부터 주기적으로 수신되는 실행 소요 시간을 포함할 수 있다.
S140 단계에서, 시스템 리소스 관리기는 자가적응형 어플리케이션의 성능이 적정 성능 구간에 포함되는지 여부를 판별할 수 있다. 예를 들면, 시스템 리소스 관리기는 품질 요구사항과 성능 측정 정보를 비교할 수 있다. 자가적응형 어플리케이션의 성능이 적정 성능 구간에 포함되는 경우, S160 단계로 이동한다. 자가적응형 어플리케이션의 성능이 적정 성능 구간에 포함되지 않는 경우, S150 단계로 이동한다.
S150 단계에서, 시스템 리소스 관리기는 적정 성능 구간에 포함될 수 있도록 제어 파라미터를 선택할 수 있다. 예를 들면, 시스템 리소스 관리기는 가상 액츄에이터 테이블에서 적정 성능 구간에 포함될 수 있는 파라미터 가중치를 가지는 파라미터 아이디를 선택할 수 있다. 시스템 리소스 관리기는 선택된 파라미터 아이디를 가상 액츄에이터에 전달할 수 있다.
S160 단계에서, 시스템 리소스 관리기는 자가적응형 어플리케이션의 모니터링 종료 여부 또는 자가적응형 어플리케이션 자체의 종료 여부를 확인할 수 있다. 자가적응형 어플리케이션의 모니터링이 종료 또는 자가적응형 어플리케이션 자체가 종료되지 않은 경우, 시스템 리소스 관리기는 S130 단계로 돌아가 다음 성능 측정 정보를 기다릴 수 있다. 자가적응형 어플리케이션의 모니터링이 종료 또는 자가적응형 어플리케이션 자체가 종료된 경우, 시스템 리소스 관리기는 S170 단계로 이동한다.
S170 단계에서, 시스템 리소스 관리기는 자가적응형 어플리케이션의 등록을 해제할 수 있다. 예를 들면, 자가적응형 어플리케이션의 모니터링이 종료 또는 자가적응형 어플리케이션 자체가 종료된 경우, 시스템 리소스 관리기는 자가적응형 어플리케이션의 등록을 해제할 수 있다.
본 발명에 따른 임베디드 시스템은 복수의 자가적응형 어플리케이션들의 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 관리할 수 있다. 임베디드 시스템은 자가적응형 어플리케이션들 각각의 품질 요구사항과 성능 측정 정보를 비교하여 자가적응형 어플리케이션들이 적정 성능 구간에서 동작하는지 모니터링할 수 있다. 모니터링 결과에 따라, 임베디드 시스템은 시스템 리소스를 자가적응형 어플리케이션들에게 효율적으로 할당하도록 관리할 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 중앙처리장치
200: 워킹 메모리
210: 운영체제
211: 메시지 큐
220: 자가적응형 어플리케이션
221: 비즈니스 로직
222: 모니터링 어뎁터
223: 가상 액츄에이터
230: 시스템 리소스
231: 품질 요구사항 데이터베이스
232: 제어 파라미터 데이터베이스
233: 성능 측정 정보 데이터베이스
234: 피드백 제어기
300: 저장 장치
400: 입출력 장치
500: 시스템 버스
1000: 임베디드 시스템

Claims (1)

  1. 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템에 있어서:
    상기 자가적응형 어플리케이션들을 실행하는 중앙처리장치; 그리고
    상기 자가적응형 어플리케이션들 및 상기 자가적응형 어플리케이션들의 리소스 관리하는 시스템 리소스 관리기가 로드되는 워킹 메모리를 포함하되,
    상기 자가적응형 어플리케이션들 각각은 품질 요구사항, 제어 파라미터 및 성능 측정 정보를 상기 시스템 리소스 관리기에 전달하는 모니터링 어뎁터, 그리고 상기 제어 파라미터를 이용하여 제어 파라미터 테이블을 생성하는 가상 액츄에이터를 포함하고,
    상기 시스템 리소스 관리기는 상기 자가적응형 어플리케이션들 각각의 상기 품질 요구사항, 상기 제어 파라미터 및 상기 성능 측정 정보를 수신하여 가상 액츄에이터 테이블을 생성하고, 그리고 상기 품질 요구사항과 상기 성능 측정 정보를 비교하여 그 결과에 따라 상기 가상 액츄에이터 테이블에서 선택된 파라미터 아이디를 상기 가상 액츄에이터로 전송하고,
    상기 자가적응형 어플리케이션들 각각의 가상 액츄에이터는 상기 파라미터 아이디에 따라 상기 자가적응형 어플리케이션들 각각의 성능을 제어하는 임베디드 시스템.
KR1020160040346A 2016-04-01 2016-04-01 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템 KR101955715B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160040346A KR101955715B1 (ko) 2016-04-01 2016-04-01 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160040346A KR101955715B1 (ko) 2016-04-01 2016-04-01 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템

Publications (2)

Publication Number Publication Date
KR20170112774A true KR20170112774A (ko) 2017-10-12
KR101955715B1 KR101955715B1 (ko) 2019-03-07

Family

ID=60141086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160040346A KR101955715B1 (ko) 2016-04-01 2016-04-01 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템

Country Status (1)

Country Link
KR (1) KR101955715B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190086144A (ko) * 2018-01-12 2019-07-22 엔에이치엔 주식회사 모바일 단말기 및 그의 어플리케이션 관리 방법과 이를 활용한 타겟 광고 제공 시스템
WO2021162763A1 (en) * 2020-02-13 2021-08-19 Francesc Guim Bernat Hardware-assisted tracing schemes for distributed and scale-out applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172543A (ja) * 1998-12-10 2000-06-23 Nippon Telegr & Teleph Corp <Ntt> データベース接続管理方法及び装置及びデータベース接続管理プログラムを格納した記憶媒体
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
KR100772999B1 (ko) * 2002-06-25 2007-11-05 인터내셔널 비지네스 머신즈 코포레이션 분산 환경에서 어플리케이션의 성능을 모니터링하는 방법및 시스템
KR20160018030A (ko) * 2014-08-07 2016-02-17 삼성전자주식회사 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172543A (ja) * 1998-12-10 2000-06-23 Nippon Telegr & Teleph Corp <Ntt> データベース接続管理方法及び装置及びデータベース接続管理プログラムを格納した記憶媒体
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
KR100772999B1 (ko) * 2002-06-25 2007-11-05 인터내셔널 비지네스 머신즈 코포레이션 분산 환경에서 어플리케이션의 성능을 모니터링하는 방법및 시스템
KR20160018030A (ko) * 2014-08-07 2016-02-17 삼성전자주식회사 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
정영준. '이기종 IoT 디바이스 지원 자가적응형 SW 프레임워크 핵심 기술 개발'. 한국전자통신연구원, 2015.01.31, pp.1-109. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190086144A (ko) * 2018-01-12 2019-07-22 엔에이치엔 주식회사 모바일 단말기 및 그의 어플리케이션 관리 방법과 이를 활용한 타겟 광고 제공 시스템
WO2021162763A1 (en) * 2020-02-13 2021-08-19 Francesc Guim Bernat Hardware-assisted tracing schemes for distributed and scale-out applications

Also Published As

Publication number Publication date
KR101955715B1 (ko) 2019-03-07

Similar Documents

Publication Publication Date Title
US11310286B2 (en) Mechanism for providing external access to a secured networked virtualization environment
US10929165B2 (en) System and method for memory resizing in a virtual computing environment
US9959337B2 (en) Independent data processing environments within a big data cluster system
US11093297B2 (en) Workload optimization system
US10942760B2 (en) Predictive rightsizing for virtual machines in cloud computing systems
TWI525433B (zh) 具有動態運行時間記憶體對映選擇之適應性位址對映技術
US10108460B2 (en) Method and system for integrated deployment planning for virtual appliances
TWI479422B (zh) 電腦系統及其繪圖處理方法
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
CN107851039B (zh) 用于资源管理的系统和方法
US9146608B2 (en) Power management for processing capacity upgrade on demand
US8767535B2 (en) Dynamic feedback control of resources in computing environments
US9081618B2 (en) Method and apparatus for the scheduling of computing tasks
KR20210095690A (ko) 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체
US10354033B2 (en) Mapping application functional blocks to multi-core processors
US11012316B2 (en) Methods and apparatus to generate and manage workload domains in virtual server racks
US20130125116A1 (en) Method and Device for Adjusting Virtual Resource and Computer Readable Storage Medium
KR101955715B1 (ko) 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템
KR20150007698A (ko) 가상 데스크탑 서비스를 위한 부하 분산 시스템
US20160147657A1 (en) System and method for optimized disk io ram caching for a vdi environment
US11561843B2 (en) Automated performance tuning using workload profiling in a distributed computing environment
KR20180068300A (ko) 서비스 시스템 및 서비스 시스템의 제어 방법, 및 컴퓨터 판독가능 저장 매체
US20210011779A1 (en) Performance-based workload/storage allocation system
KR20230063015A (ko) 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법
CA2802396A1 (en) Systems and methods for managing emulation sessions

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