KR20210157246A - 임베디드시스템에서 동적자원관리방법 및 장치 - Google Patents

임베디드시스템에서 동적자원관리방법 및 장치 Download PDF

Info

Publication number
KR20210157246A
KR20210157246A KR1020200075311A KR20200075311A KR20210157246A KR 20210157246 A KR20210157246 A KR 20210157246A KR 1020200075311 A KR1020200075311 A KR 1020200075311A KR 20200075311 A KR20200075311 A KR 20200075311A KR 20210157246 A KR20210157246 A KR 20210157246A
Authority
KR
South Korea
Prior art keywords
resource
container
resource usage
containers
allocated
Prior art date
Application number
KR1020200075311A
Other languages
English (en)
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 KR1020200075311A priority Critical patent/KR20210157246A/ko
Publication of KR20210157246A publication Critical patent/KR20210157246A/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/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
    • 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/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/505Allocation 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 load
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리방법은 기설정된 우선순위를 기초로 최우선순위가 할당된 컨테이너에는 전용코어를 할당하여 정적인 자원사용량을 확보하고, 그 외의 우선순위가 할당된 컨테이너에는 동적으로 자원사용량을 부여하고, 자원을 추가로 할당하거나 회수하는 방법을 통해 동적 자원 관리를 수행하는 것을 특징으로 한다.

Description

임베디드시스템에서 동적자원관리방법 및 장치{Method and Device for managing resource dynamically in a embedded system}
본 발명은 임베디드시스템의 컨테이너 가상화 환경에서 동적으로 자원을 관리하는 방법에 관한 것이다.
제한된 하드웨어 자원을 갖는 차량 혹은 임베디드 시스템에서 다수의 안드로이드 컨테이너 혹은 프로그램을 동작시키는 환경은 공유 자원에 대한 간섭으로 인해 성능 하락을 발생시킬 수 있다. 예를 들어 중요한 프로그램과 상대적으로 우선순위가 낮은 컨테이너가 같이 구동될 때, 우선순위가 낮은 작업이 CPU를 점유하고 있다면 중요한 작업은 CPU와 같은 중요한 자원을 제시간에 사용할 수 없게 된다.
또한, 프로그램이 CPU를 점유함에 따라 메모리를 사용할 수 있게 되므로 중요한 프로그램의 메모리 대역폭 역시 영향을 받는다. 예를 들어, 컨테이너에서 실행되는 인포테인먼트(Infotainment) 요소로 인해 클러스터(Cluster)에서는 차량의 상태를 정확한 순간에 운전자에게 전달할 수 없을 수 있다. 따라서 각 프로그램 혹은 컨테이너에게 적절한 양의 CPU 자원을 동적으로 할당하고 관리할 필요가 있다.
KR 10-2019-0140341A
본 발명은 임베디드 환경에서 멀티컨테이너의 에너지 효율과 QoS 성능을 보장하도록 동적 자원 관리를 수행하고자 한다.
본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리방법은 수신부에서 복수의 컨테이너 각각에 대해 기설정된 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시주기 정보를 수신하는 단계; QoS보장부에서 상기 우선순위를 기초로 상기 복수의 컨테이너 중 적어도 하나의 컨테이너에 전용코어를 할당하는 단계; 모니터링부에서 상기 모니터링 감시주기마다 상기 복수의 컨테이너 각각의 자원사용량을 수집하여, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 컨테이너 각각의 자원사용량이 상기 자원사용량 임계값 이하인지 또는 초과인지를 판단하는 단계; 및 자원분배부에서 상기 자원사용량 임계값 이하인 컨테이너는 기할당된 자원을 회수하고, 상기 자원사용량 임계값을 초과하는 컨테이너에 자원사용량을 할당하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 상기 자원분배부는 상기 자원사용량 임계값을 초과하는 컨테이너가 있는 경우, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너 및 상기 자원사용량 임계값을 초과하는 컨테이너를 제외한 나머지 컨테이너 각각의 CPU사용량을 기초로 CPU사용총량을 계산하고, 상기 CPU사용총량을 기초로 상기 자원사용량 임계값을 초과하는 컨테이너에게 할당할 여유자원량을 산출하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 상기 자원분배부는 상기 자원사용량 임계값을 초과하는 컨테이너가 있는 경우, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너 및 상기 자원사용량 임계값을 초과하는 컨테이너를 제외한 나머지 컨테이너 각각의 CPU사용량을 기초로 CPU사용총량을 계산하고, 상기 CPU사용총량을 기초로 상기 자원사용량 임계값을 초과하는 컨테이너에게 할당할 여유자원량을 산출하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 상기 여유자원량이 기설정된값을 초과하는 경우, 상기 여유자원량을 상기 자원사용량 임계값을 초과하는 컨테이너에 할당하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 여유자원량이 기설정된값 이하인 경우, 상기 자원사용량 임계값을 초과하는 컨테이너와 동일한 우선순위 또는 더 낮은 우선순위가 부여된 컨테이너에 기할당된 자원사용량으로부터 자원을 회수하여 할당하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 상기 자원분배부는 모니터링된 자원사용량이 임계값 이하인 컨테이너에 대해 기할당된 자원을 회수하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 상기 자원분배부는 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 나머지 컨테이너의 CPU사용량을 기초로 CPU사용총량 및 여유자원량을 계산하고, 계산된 여유자원량이 기설정된 값을 초과하고, 상기 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인지를 판단하는 것을 특징으로 한다.
본 발명의 또 다른 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치는 복수의 컨테이너 각각에 대해 기설정된 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시주기 정보를 수신하는 수신부; 상기 우선순위를 기초로 상기 복수의 컨테이너 중 적어도 하나의 컨테이너에 전용코어를 할당하는 QoS보장부; 상기 모니터링 감시주기마다 상기 복수의 컨테이너 각각의 자원사용량을 수집하여, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 컨테이너 각각의 자원사용량이 상기 자원사용량 임계값 이하인지 또는 초과인지를 판단하는 모니터링부; 및 상기 자원사용량 임계값 이하인 컨테이너는 기할당된 자원을 회수하고, 상기 자원사용량 임계값을 초과하는 컨테이너에 자원사용량을 할당하는 자원분배부;를 포함하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예로서, 동적자원관리방법은 컨테이너 및 프로그램의 자원 사용량을 수집하여 자원부족으로 인한 QoS 성능저하를 사전에 예방하는 효과가 있다. 본 발명의 바람직한 일 실시예로서, 동적자원관리방법은 Cgroup을 통해 수행되므로 Linux Container를 사용하는 모든 환경에 적용할 수 있으며, ISA에 관계없이 리눅스 환경이라면 어떤 ISA라도 관계없이 적용할 수 있는 효과가 있다.
본 발명의 바람직한 일 실시예로서, 동적자원관리방법은 클러스터 등과 같이 최우선순위가 부여된 컨테이너에는 전용코어를 할당하므로, CPU 자원이 부족하여 발생하는 오류 내지 QoS 성능저하를 선제적으로 차단할 수 있는 효과가 있다. 또한, 동적으로 자원을 할당할 수 있기 때문에 여러 컨테이너가 순차적으로 부팅되는 상황에서 부팅중인 컨테이너에게 많은 지원을 일시적으로 할당함으로서 자원 부족으로 인한 부팅속도 저하를 개선할 수 있는 효과가 있다.
도 1 은 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치의 내부 구성도를 도시한다.
도 2 는 본 발명의 바람직한 일 실시예로서, 자원분배부의 내부 구성도를 도시한다.
도 3 은 본 발명의 바람직한 일 실시예로서, 동적자원관리장치에서 우선순위에 따라 임베디드시스템 자원을 할당하는 일 예를 도시한다.
도 4 는 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리방법의 일 예를 도시한다.
도 5 내지 6은 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리방법의 흐름도를 도시한다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 발명의 바람직한 일 실시예로서, 컨테이너는 가상화 방식의 일 형태로서 프로세스 가상화의 일정이다. 컨테이너를 이용한 가상화 기술은 호스트 OS(operating system) 내부를 물리적 자원을 관리하는 커널 공간과 사용자 프로세스, 즉 응용 프로그램(APP, application)을 실행하는 사용자 공간으로 구분하고, 사용자 공간을 여러 개로 나누어 각각의 사용자 프로세스에서 사용되는 하드웨어 자원을 할당하고 공유하는 기술을 의미한다.
본 발명의 바람직한 일 실시예로서, 컨테이너에 사용되는 핵심 기술은 Linux의 Cgroups(control groups)이다. 컨테이너는 cgroup을 통해 어플리케이션 프로세스에 자원을 할당한다. 컨테이너는 자원 할당 정책에 따라 Cgroups 를 이용하여 컴퓨팅 리소스를 각 어플리케이션별로 할당할 수 있다. Cgroups는 OS상의 프로세스에 호스트 자원을 할당하기 위해 해당 프로세스 그룹을 만들고 자원의 할당 및 관리를 수행할 수 있다. 호스트 장치는 설정된 리소스 할당 정책에 따라 Cgroups를 이용하여 컴퓨팅 자원을 각 어플리케이션별로 할당할 수 있다. Cgroups는 리눅스에 구비되는 컴퓨팅 자원을 어플리케이션 별로 할당하도록 자원을 제어할 수 있다. 이에 따라, 컨테이너는 리눅스 커널의 Cgroups 기능을 사용하여 CPU 사용량, 메모리 사용량 등을 제한할 수 있어, 애플리케이션의 실행 중 발생하는 문제에 따른 컴파일 및 정밀한 실행에 대한 컨트롤이 가능하다.
본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치는 기설정된 우선순위를 기초로 최우선순위가 할당된 컨테이너에는 전용코어를 할당하여 정적인 자원사용량을 확보하고, 그 외의 우선순위가 할당된 컨테이너에는 동적으로 자원사용량을 부여하고, 자원을 추가로 할당하거나 회수하는 방법을 통해 동적 자원 관리를 수행하는 것을 특징으로 한다.
이하에서 도면을 참고하여 설명한다.
도 1 은 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치의 내부 구성도를 도시하고, 도 2 는 자원분배부의 내부 구성도를 도시한다. 도 1 내지 2 를 참고하여 설명하면 다음과 같다.
본 발명의 바람직한 일 실시예로서, 동적자원관리장치(100)는 임베디드시스템의 다중 컨테이너가 효율적으로 자원을 활용하여 컨테이너에서 어플리케이션이 QoS를 준수할 수 있도록 관리하도록 구현된다.
동적자원관리장치(100)는 수신부(110), QoS보장부(120), 모니터링부(130) 및 자원분배부(140)를 포함한다.
수신부(110)는 복수의 컨테이너 각각에 대해 기설정된 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시주기 정보를 수신한다.
QoS보장부(120)는 수신부에서 수신한 우선순위를 기초로 복수의 컨테이너 중 적어도 하나의 컨테이너에 전용코어(도 3, 320 참고)를 할당한다. QoS보장부(120)는 최우선순위 'Priority 0'가 할당된 적어도 하나의 컨테이너에 전용코어를 할당한다. 최우선순위 'Priority 0'는 지연이 발생해서는 안되는 애플리케이션이나 시스템 기능을 수행하는 컨테이너에 부여된다. 본 발명의 바람직한 일 실시예에서, QoS보장부(120)는 반드시 시간을 지켜야 되는 서비스 또는 애플리케이션에 최우선순위를 부여하고 전용코어를 할당함으로써, 해당 컨테이너가 다른 컨테이너와 자원을 공유함으로 인해 발생할 수 있는 간섭을 제거하고 QoS를 보장할 수 있다.
일 실시예로서, 차량용 시스템의 경우 클러스터나 차량 제어 서비스의 동작에 지연이 발생해서는 안된다. 이 경우 본 발명의 바람직한 일 실시예에서 시스템 관리자는 QoS보장부(120)는 클러스터나 차량 제어 서비스를 실행하는 컨테이너의 Cgroup에 전용코어를 할당할 수 있도록 최우선순위 'Priority 0'를 미리 시스템에 설정해둘 수 있다.
보다 상세히 서술하면, 차량용 시스템의 경우 차량용 인포테인먼트 기능을 제공하는 것과 동시에 차량의 제어에 관련된 중요한 기능을 수행하고 있다. 여기서 차량의 제어에 관련된 기능이라 함은 사용자의 차량 조작에 영향을 주는 네비게이션 시스템과 같은 애플리케이션부터 차량의 속도나 RPM 등을 표시하는 계기판을 뜻하는 클러스터 시스템, 자율제어 차량의 자율제어 시스템과 같이 탑승자의 생명에 관련된 중요한 기능까지도 포함한다. 이러한 애플리케이션이나 시스템 기능은 사용자에게 정보를 제공하거나 차량을 제어하는 데 있어 지연이 발생하면 안되기 때문에 연산이 필요한 경우 반드시 하드데드라인(hard deadline)을 지켜야 한다. 만약 하드데드라인을 어기게 될 경우 차량이 잘못된 길로 인도되거나 속도를 제 때 제어하지 못하게 될 가능성이 있으며, 심한 경우 차량 제어 실패로 인해 사고가 발생할 수도 있다. 따라서, 본 발명의 바람직한 일 실시예에서는 오디오 재생, 비디오 재생, 게임 실행 등과 같이 엔터테인먼트에 관련된 기능을 실행하는 서비스보다 더 높은 최우선순위를 부여하고 전용코어를 할당함으로써 QoS를 보장할 수 있다.
모니터링부(130)는 수신부(110)에서 수신한 모니터링 감시주기마다 복수의 컨테이너 각각의 자원사용량을 수집한다. 그리고, 수집한 복수의 컨테이너 각각의 자원사용량이 기설정된 자원사용량 임계값 이하인지 또는 초과인지를 판단한다. 모니터링부(130)는 전용코어가 할당된 컨테이너에 대해서는 기설정된 자원사용량 임계값 이하인지 또는 초과인지 여부에 대해서는 별도로 판단하지 않도록 구현될 수 있다.
자원분배부(140)는 모니터링부(130)에서 기설정된 자원사용량 임계값 이하로 자원을 사용하고 있는 컨테이너로부터는 기할당된 자원을 회수한다. 또한, 모니터링부(130)에서 기설정된 자원사용량 임계값을 초과하는 컨테이너에는 자원을 추가로 할당한다.
도 2 를 참고하면, 자원분배부(140)는 자원할당부(250) 및 자원회수부(260)를 포함한다. 자원할당부(250)는 제 1 여유자원량산출부(252) 및 자원재할당부(254)를 포함한다. 자원회수부(260)는 제 2 여유자원량산출부(262) 및 자원사용량임계값판단부(264)를 포함한다. 설명의 편의를 위해 제 1 여유자원량산출부(252) 및 제 2 여유자원량산출부(262)로 분리하였으나, 하나의 여유자원량산출부에서 여유자원량을 산출하도록 구현이 가능함을 유의하여야 한다.
자원할당부(250)의 구성에 대해 설명한다.
제 1 여유자원량산출부(252)는 복수의 컨테이너 중 전용코어가 할당된 컨테이너 및 자원사용량 임계값을 초과하는 컨테이너를 제외한 나머지 컨테이너 각각의 CPU사용량을 기초로 CPU사용총량을 계산하고, CPU사용총량을 기초로 자원사용량 임계값을 초과하는 컨테이너에게 할당할 여유자원량을 산출한다. 도 4를 참고하면, 여유자원량은 Idle CPU resource를 의미한다.
여유자원량을 산출하는 일 예는 아래와 같다.
여유 자원량 =(컨테이너의 CPU자원 총량) - (컨테이너의 현재 자원 사용량)
=((컨테이너에 할당된 CPU 개수) * 100) - (컨테이너의 현재 자원 사용량)
제 1 여유자원량산출부(252)는 산출된 여유자원량이 기설정된값을 초과하여 여유자원량을 모니터링부(130)에서 검출된 자원사용량 임계값을 초과하는 컨테이너에 할당한다.
자원재할당부(254)는 제 1 여유자원량산출부(252)에서 산출한 여유자원량이 기설정된값 이하인 경우에는 모니터링부(130)에서 검출된 자원사용량 임계값을 초과하는 컨테이너와 동일한 우선순위 또는 더 낮은 우선순위가 부여된 컨테이너에 기할당된 자원사용량으로부터 자원을 회수하여 자원을 재할당한다.
자원회수부(260)는 모니터링부(130)에서 검출된 자원사용량이 임계값 이하인 컨테이너에 대해 기할당된 자원을 회수한다. 그리고 추가적으로, 여유자원량과 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인지를 판단하여 CPU 주파수를 감소시킬지 파악한다. 자원회수부(260)는 여유자원량이 기설정된 값을 초과하고, 또한 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인 경우 CPU 주파수를 감소시킨다.
상세히, 제 2 여유자원량산출부(262)는 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 나머지 컨테이너의 CPU사용량을 기초로 CPU사용총량 및 여유자원량을 계산한다.
자원사용량임계값판단부(264)는 제 2 여유자원량산출부(262)에서 계산된 여유자원량이 기설정된 값을 초과하는 경우, 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인지를 판단한다.
도 3 은 본 발명의 바람직한 일 실시예로서, 동적자원관리장치에서 우선순위에 따라 임베디드시스템 자원을 할당하는 일 예를 도시한다.
동적자원관리장치는 QoS보장부를 통해 최우선순위 'Priority 0'이 할당된 적어도 하나의 컨테이너(322)에게 전용코어(320) 자원을 정적으로 할당한다. 그리고, 최우선순위를 제외한 나머지 우선순위가 할당된 다른 컨테이너에게 자원분배부를 통해 동적으로 자원을 할당한다. 도 3을 참고하면 'Priority 1', 'Priority 2' 및 'Priority 3'이 할당된 컨테이너 각각(332,334,336)에 자원분배부를 통해 동적으로 자원을 할당한다.
도 4 는 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리방법의 일 예를 도시한다.
도 4는 제 1 자원사용량 임계값이 10%, 제 2 자원사용량 임계값이 90%인 경우의 일 예이다. T1 시간에 자원이 분배된 예를 살펴보면, 전용코어가 컨테이너A(410a)에 할당되고, 그 외 컨테이너B(420a), 컨테이너C(430a) 및 컨테이너D(440a)에는 공유코어가 할당되어 있다. 임베디드시스템에서 컨테이너 A 내지 D(410a, 420a, 430a, 440a)에 할당한 자원할당 및 사용량이 도면의 상단과 같을 경우 컨테이너 A 내지 D(410a, 420a, 430a, 440a)는 다음과 같이 동작한다.
T1 시간의 컨테이너A(410a)의 경우, 관리자가 설정한 제 1 자원사용량 임계값(Under utilize threshold)인 10% 이하로 평균적으로 자원을 이용하고 있음에도 전용코어를 할당받았으므로, T2시간에 컨테이너A(410a)는 자원을 회수당하지 않는다.
T1 시간의 컨테이너B(420a)의 경우, 관리자가 설정한 제 1 자원사용량 임계값인 10% 이하에 해당하지 않고, 또한 제 2 자원사용량임계값(Over utilize threshold)인 90%를 초과하지 않으므로 T2시간에 컨테이너B(420b)는 자원할당량의 변화가 없다.
T1 시간의 컨테이너C(430a)의 경우, 제 2 자원사용량임계값인 90%를 초과하므로 T2시간에 컨테이너C(430b)는 추가적으로 자원(431)을 할당받는다.
T1 시간의 컨테이너D(440a)의 경우, 제 2 자원사용량임계값인 90%를 초과하므로 T2시간에 컨테이너D(440b)는 T1시간에 할당받았던 자원(441)을 회수당한다.
도 5는 본 발명의 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치에서 구현되는 동적자원관리방법의 흐름도를 도시한다.
수신부는 시스템 관리자가 복수의 컨테이너 각각에 대해 기설정한 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시정보를 수신한다(S510). 자원사용량 임계값은 필요에 따라 n개(n은 자연수)의 임계값이 설정될 수 있다. QoS보장부는 수신부에서 수신한 우선순위를 확인한 후, 최우선순위가 부여된 컨테이너에 전용코어를 할당한다(S520). 모니터링부는 수신부에서 수신한 모니터링 감시주기마다 복수의 컨테이너 각각의 자원사용량을 수집한다. 도 4를 참고하면, T1시간에 컨테이너A(410a), 컨테이너B(420a), 컨테이너C(430a) 및 컨테이너D(440a)의 자원사용량을 수집한다. 그리고, 전용코어가 할당된 컨테이너A(410a)를 제외한 컨테이너B(420a), 컨테이너C(430a) 및 컨테이너D(440a) 각각의 자원사용량이 자원사용량임계값이하인지 초과인지를 판단한다(S530).
자원분배부는 자원사용량 임계값 이하의 자원사용률을 지닌 컨테이너에서는 기할당된 자원을 회수하고, 자원사용량 임계값을 초과하는 자원사용률을 지닌 컨테이너에게는 자원사용량을 할당한다(S540). 도 4 를 참고하면, 자원분배부는 T2시간에 컨테이너C(430b)에 추가적으로 자원(431)을 할당하고, 컨테이너D(440b)로부터 자원(441)을 회수한다.
도 5는 본 발명의 또 다른 바람직한 일 실시예로서, 임베디드시스템에서 동적자원관리장치에서 구현되는 동적자원관리방법의 흐름도를 도시한다.
수신부는 관리자로부터 시스템설정, 자원사용량 임계값 내지 모니터링 동작주기를 전달받는다(S610). QoS보장부는 시스템설정에 따라 최우선순위 Priority 0에 해당하는 컨테이너에 전용코어를 할당한다(S620). 모니터링부(S630)는 각 컨테이너의 CPU 사용량을 포함하는 자원사용량 정보를 수집하고(S632), 기설정된 자원사용량임계값과 비교하여 초과하는지 이하인지 여부를 확인한다(S634).
자원할당부는 자원사용량임계값을 초과하여 자원을 사용하고 있는 컨테이너가 존재하는 경우, 다른 컨테이너들의 CPU 총 사용량을 확인한 후 여유자원사용량을 산출한다(S662). 산출된 여유자원사용량이 기설정된 값을 초과하는 경우(S664), 자원사용량임계값을 초과하여 자원을 사용하고 있는 컨테이너에 할당한다(S666). 산출된 여유자원량이 기설정된 값 미만인 경우에는 우선순위가 같거나 낮은 다른 컨테이너 중 가장 많은 자원을 사용중인 컨테이너로부터 자원을 회수한다(S668).
자원할당부는 자원사용량임계값 미만인 컨테이너가 존재하는 경우(S650), 해당 컨테이너에 할당된 자원을 회수한다(S670). 그리고, 자원할당부는 시스템 전반의 여유자원사용량을 산출하고, 산출된 여유자원사용량이 기설정된 값을 초과하는지 파악한다(S672). 이 후 전용코어가 할당된 컨테이너의 자원사용량이 자원사용량임계값 미만인지를 더 파악한다(S672). 두 가지 요건을 모두 만족시키는 경우 DVFS(Dynamic Voltage Frequency Scaling)기술을 이용하여 CPU의 주파수를 감소시킴으오써 에너지를 절약한다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 수신부에서 복수의 컨테이너 각각에 대해 기설정된 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시주기 정보를 수신하는 단계;
    QoS보장부에서 상기 우선순위를 기초로 상기 복수의 컨테이너 중 적어도 하나의 컨테이너에 전용코어를 할당하는 단계;
    모니터링부에서 상기 모니터링 감시주기마다 상기 복수의 컨테이너 각각의 자원사용량을 수집하여, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 컨테이너 각각의 자원사용량이 상기 자원사용량 임계값 이하인지 또는 초과인지를 판단하는 단계;
    자원분배부에서 상기 자원사용량 임계값 이하인 컨테이너는 기할당된 자원을 회수하고, 상기 자원사용량 임계값을 초과하는 컨테이너에 자원사용량을 할당하는 단계;를 포함하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  2. 제 1 항에 있어서, 상기 전용코어는
    지연이 발생해서는 안되는 애플리케이션이나 시스템 기능을 수행하는 컨테이너에 부여되는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  3. 제 1 항에 있어서, 상기 자원분배부는
    상기 자원사용량 임계값을 초과하는 컨테이너가 있는 경우, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너 및 상기 자원사용량 임계값을 초과하는 컨테이너를 제외한 나머지 컨테이너 각각의 CPU사용량을 기초로 CPU사용총량을 계산하고, 상기 CPU사용총량을 기초로 상기 자원사용량 임계값을 초과하는 컨테이너에게 할당할 여유자원량을 산출하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  4. 제 3 항에 있어서, 상기 여유자원량이 기설정된값을 초과하는 경우,
    상기 여유자원량을 상기 자원사용량 임계값을 초과하는 컨테이너에 할당하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  5. 제 3 항에 있어서, 상기 여유자원량이 기설정된값 이하인 경우,
    상기 자원사용량 임계값을 초과하는 컨테이너와 동일한 우선순위 또는 더 낮은 우선순위가 부여된 컨테이너에 기할당된 자원사용량으로부터 자원을 회수하여 할당하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  6. 제 1 항에 있어서, 상기 자원분배부는
    모니터링된 자원사용량이 임계값 이하인 컨테이너에 대해 기할당된 자원을 회수하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  7. 제 6 항에 있어서, 상기 자원분배부는
    상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 나머지 컨테이너의 CPU사용량을 기초로 CPU사용총량 및 여유자원량을 계산하고, 계산된 여유자원량이 기설정된 값을 초과하고, 상기 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인지를 판단하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  8. 제 7 항에 있어서,
    상기 여유자원량이 기설정된 값을 초과하고, 상기 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인 경우 DVFS 방법으로 CPU 주파수를 감소시키는 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  9. 제 1 항에 있어서, 상기 자원사용량은
    CPU 사용량인 것을 특징으로 하는 임베디드시스템에서 동적자원관리방법.
  10. 복수의 컨테이너 각각에 대해 기설정된 컨테이너의 우선순위, 자원사용량 임계값 및 모니터링 감시주기 정보를 수신하는 수신부;
    상기 우선순위를 기초로 상기 복수의 컨테이너 중 적어도 하나의 컨테이너에 전용코어를 할당하는 QoS보장부;
    상기 모니터링 감시주기마다 상기 복수의 컨테이너 각각의 자원사용량을 수집하여, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 컨테이너 각각의 자원사용량이 상기 자원사용량 임계값 이하인지 또는 초과인지를 판단하는 모니터링부;
    상기 자원사용량 임계값 이하인 컨테이너는 기할당된 자원을 회수하고, 상기 자원사용량 임계값을 초과하는 컨테이너에 자원사용량을 할당하는 자원분배부;를 포함하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리장치.
  11. 제 10항에 있어서, 상기 자원분배부는
    상기 자원사용량 임계값을 초과하는 컨테이너에 자원사용량을 할당하는 자원할당부를 포함하고, 상기 자원할당부는
    상기 자원사용량 임계값을 초과하는 컨테이너가 있는 경우, 상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너 및 상기 자원사용량 임계값을 초과하는 컨테이너를 제외한 나머지 컨테이너 각각의 CPU사용량을 기초로 CPU사용총량을 계산하고, 상기 CPU사용총량을 기초로 상기 자원사용량 임계값을 초과하는 컨테이너에게 할당할 여유자원량을 산출하는 여유자원량 산출부;및
    상기 여유자원량이 기설정된값 이하인 경우, 상기 자원사용량 임계값을 초과하는 컨테이너와 동일한 우선순위 또는 더 낮은 우선순위가 부여된 컨테이너에 기할당된 자원사용량으로부터 자원을 회수하여 할당하는 우선순위기반 자원재할당부;를 포함하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리장치.
  12. 제 10항에 있어서, 상기 자원분배부는
    상기 자원사용량이 임계값 이하인 컨테이너에 대해 기할당된 자원을 회수하는 자원회수부를 포함하고, 상기 자원회수부는
    상기 복수의 컨테이너 중 전용코어가 할당된 컨테이너를 제외한 나머지 컨테이너의 CPU사용량을 기초로 CPU사용총량 및 여유자원량을 계산하는 여유자원량산출부;
    계산된 여유자원량이 기설정된 값을 초과하고, 상기 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인지를 판단하는 자원사용량임계값판단부;를 포함하는 것을 특징으로 하는 임베디드시스템에서 동적자원관리장치.
  13. 제 12 항에 있어서, 상기 자원분배부는
    상기 여유자원량이 기설정된 값을 초과하고, 상기 전용코어가 할당된 컨테이너의 자원사용량이 임계값 미만인 경우 DVFS 방법으로 CPU 주파수를 감소시키는 것을 특징으로 하는 임베디드시스템에서 동적자원관리장치.
  14. 제 1 항에 있어서, 상기 전용코어는
    지연이 발생해서는 안되는 애플리케이션이나 시스템 기능을 수행하는 컨테이너에 부여되는 것을 특징으로 하는 임베디드시스템에서 동적자원관리장치.
  15. 제 1 항 내지 제 9 항 중 어느 한 항에 따른 임베디드시스템에서 동적자원관리방법을 실행하기 위한 프로그램을 기록한 것을 특징으로 하는 기록매체.


KR1020200075311A 2020-06-19 2020-06-19 임베디드시스템에서 동적자원관리방법 및 장치 KR20210157246A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200075311A KR20210157246A (ko) 2020-06-19 2020-06-19 임베디드시스템에서 동적자원관리방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200075311A KR20210157246A (ko) 2020-06-19 2020-06-19 임베디드시스템에서 동적자원관리방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210157246A true KR20210157246A (ko) 2021-12-28

Family

ID=79178387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200075311A KR20210157246A (ko) 2020-06-19 2020-06-19 임베디드시스템에서 동적자원관리방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210157246A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11778045B2 (en) 2021-07-12 2023-10-03 Red Hat, Inc. Communication system for micro-frontends of a web application

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190140341A (ko) 2018-06-11 2019-12-19 삼성전자주식회사 가상화 환경에서의 자원 할당 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190140341A (ko) 2018-06-11 2019-12-19 삼성전자주식회사 가상화 환경에서의 자원 할당 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11778045B2 (en) 2021-07-12 2023-10-03 Red Hat, Inc. Communication system for micro-frontends of a web application

Similar Documents

Publication Publication Date Title
US10552272B2 (en) Maintaining high availability during N-node failover
US8161260B2 (en) Optimal memory allocation for guested virtual machine(s)
US9529609B2 (en) Tracking guest memory characteristics for memory scheduling
US9836328B2 (en) System and method for improving memory usage in virtual machines at a cost of increasing CPU usage
US8332611B2 (en) Method and system for managing memory
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
JP5417287B2 (ja) 計算機システム、及び、計算機システムの制御方法
JP6219512B2 (ja) 仮想ハドゥープマネジャ
US9152200B2 (en) Resource and power management using nested heterogeneous hypervisors
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US20190042406A1 (en) System and method to manage and share managed runtime memory for java virtual machine
US8661448B2 (en) Logical partition load manager and balancer
US9547510B2 (en) Tracking guest memory characteristics for memory scheduling
US8677374B2 (en) Resource management in a virtualized environment
US9183061B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
US11023128B2 (en) On-demand elastic storage infrastructure
US20120239952A1 (en) Information processing apparatus, power control method, and recording medium
US9910768B1 (en) Method for memory management for virtual machines
US20080244118A1 (en) Method and apparatus for sharing buffers
US11188370B2 (en) Memory scheduler using guest-originated statistics
CN115280285A (zh) 由独立操作的多个调度器在公共资源集上调度工作负载
KR20210157246A (ko) 임베디드시스템에서 동적자원관리방법 및 장치
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
US20210173699A1 (en) Decentralized resource scheduling
CN109086142B (zh) 一种基于Openlava的资源调度方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination