KR101699770B1 - 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법 - Google Patents

가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법 Download PDF

Info

Publication number
KR101699770B1
KR101699770B1 KR1020100086968A KR20100086968A KR101699770B1 KR 101699770 B1 KR101699770 B1 KR 101699770B1 KR 1020100086968 A KR1020100086968 A KR 1020100086968A KR 20100086968 A KR20100086968 A KR 20100086968A KR 101699770 B1 KR101699770 B1 KR 101699770B1
Authority
KR
South Korea
Prior art keywords
operating system
resource
workload
allocated
time
Prior art date
Application number
KR1020100086968A
Other languages
English (en)
Other versions
KR20120024204A (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 KR1020100086968A priority Critical patent/KR101699770B1/ko
Priority to US13/225,727 priority patent/US9146761B2/en
Publication of KR20120024204A publication Critical patent/KR20120024204A/ko
Application granted granted Critical
Publication of KR101699770B1 publication Critical patent/KR101699770B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법{VIRTUALIZATION SYSTEM AND METHOD FOR ALLOCATING RESOURCE THEREOF}
본 발명은 두 개 이상의 운영체제가 동작할 수 있는 가상화 시스템 및 그 가상화 시스템에서 자원을 할당하는 방법에 관한 것이다. 보다 구체적으로, 본 발명은 두 개 이상의 운영체제가 동작할 수 있는 가상화 시스템에서 멀티코어 상에서 효율적으로 하드웨어 자원이 할당되도록 하는 방법 및 그를 수행하는 시스템에 관한 것이다.
도 1은 종래 기술에 따른 가상화 시스템의 구조를 도시한 도면이다.
도 1을 참조하면, 두 개 이상의 운영체제를 동작할 수 있는 가상화 시스템은 멀티코어 상에서 효율적인 자원 활용이 가능하다. 그래서 가상화 레이어(Virtualization Layer)에서 동작하는 운영체제는 해당 하드웨어 자원을 단독으로 점유하는 것으로 인식한다.
가상화 소프트웨어는 운영체제의 스케줄러와 유사하게 동작한다. 이에 가상화 소프트웨어는 가상화 레이어 위에서 동작하는 각 운영체제를 태스크(task)처럼 스케줄링한다. 그리고 각 운영체제는 일정한 비율로 시간을 할당받아 동작한다. 다시 말해 두 개 이상의 운영체제가 하나의 하드웨어 자원을 공유할 수 있도록, 각 운영체제는 이미 정의된 time slot(t)만큼 시간 자원(time resource)을 사용한다. 각 운영체제별로 시간이 할당되는 방법에 대하여 도 2를 참조하여 설명한다.
도 2는 종래 기술에 따른 다수 개의 운영체제가 자원을 공유하는 방법을 도시한 도면이다.
도 2를 참조하면, 첫번째 운영체제(OS1; Operating System1)(210)는 자신에게 할당된 tos1만큼의 시간 자원을 소비(consume)하면, 하이퍼바이저(hypervisor)인 가상 머신 모니터(VMM; Virtual Machine Monitor)에게 그 제어권을 넘겨 하드웨어 구동에 필요한 작업들을 진행하도록 한다. 가상 머신 모니터(VMM; Virtual Machine Monitor)는 하드웨어 구동에 필요한 작업들이 완료되면, 두번째 운영체제(OS2; Operating System2)(220)에게 제어권을 넘긴다. 그러면 두번째 운영체제(220)는 첫번째 운영체제(210)과 마찬가지로 자신에게 할당된 tos2만큼의 시간 자원을 소비한다. 그리고 두 번째 운영체제(220)는 VMM에게 제어권을 넘긴다. 이와 같이 각 운영체제가 할당되는 시간 자원에 따라 동작하는 방법 대하여 도 3을 참조하여 설명한다.
도 3은 종래 기술에 따른 시간 자원 할당에 따른 운영체제 동작 방법을 도시한 도면이다.
도 3을 참조하면, 적어도 두 개의 운영체제를 운영하기 위한 VMM이 310단계에서 동작한다. 여기서 VMM(Virtual Machine Monitor)은 하이퍼바이저라고도 칭해지며, 호스트 단말기에서 다수 개의 운영체제가 수행될 수 있도록 통제한다.
다음으로 첫번째 운영체제인 guest OS1이 320단계에서 생성되고, OS1에 할당되는 자원의 가중치(weight)가 고정된다. 또한 두번째 운영체제인 guest OS2가 330단계에서 생성되고, OS2에 할당되는 자원의 가중치가 고정된다.
이후 VMM은 340단계에서 각 운영체제별로 시간 할당량(Time Quantum)을 조정한다. 다음으로 VMM은 350단계에서 OS1 또는 OS2가 스케줄링되었는지 판단한다. 만약 OS1이 스케줄링되었으면, 360단계에서 OS1이 동작한다. 반면에 OS2가 스케줄링되었으면, 370단계에서 OS2가 동작한다.
이와 같은 방식을 통해 가상화 시스템에서 각 운영체제 내부에서 실행되는 태스크(task)들의 작업 부하(work load)에 따라 할당된 시간 자원을 모두 소비할 수도 있고, 그렇지 않은 경우도 발생될 수 있다. 따라서 한쪽의 운영체제에서는 시간 자원이 남아도, 다른 한쪽의 운영체제에서는 자원이 부족해 동작이 느려질 수 있다는 문제점이 발생한다. 이 경우에 대하여 도 4를 참조하여 설명한다.
도 4는 종래 기술에 따라 작업 부하에 따른 운영체제 동작을 도시한 도면이다.
도 4를 참조하면, 첫번째 운영체제(GPOS; General Purpose Operating System)와 두번째 운영체제(RTOS; Real Time Operating System)에서 소비되는 시간 자원이 수행되는 태스크별로 변화한다. 그러나 각 운영체제별로 할당되는 시간 자원은 일정 양으로 고정되어 있다. 따라서 도 4에서 도시된 바와 같이 첫번째 운영체제에서 시간 자원이 많이 소비되고, 두번째 운영체제에 소비되는 시간 자원이 적다하더라도, 두번째 운영체제에 할당된 시간 자원을 첫번째 운영체제에 넘겨주는 방안이 없다. 또한 첫번째 운영체제에서 시간 자원이 적게 소비되고, 두번째 운영체제에서 소비되는 시간 자원이 많더라도 첫번째 운영체제에 할당된 시간 자원을 두번째 운영체제에 넘겨주는 방안이 없다.
이에 본 발명은 각 운영체제별로 시간 자원을 유기적으로 할당하는 방법 및 그를 수행하는 시스템을 제안한다.
상기와 같은 문제점을 해결하기 위해 본 발명의 자원 할당 방법은 적어도 두 개의 운영체제에 자원을 할당하는 과정과, 상기 적어도 두 개의 운영체제 중 어느 하나가 동작하면, 각 운영체제별로 작업 부하를 산출하는 과정과, 상기 산출된 작업 부하에 따라 상기 적어도 두 개의 운영체제별 할당된 자원을 조절하는 과정을 포함한다.
상기와 같은 문제점을 해결하기 위해 본 발명의 자원 할당 시스템은 적어도 두 개의 운영체제에 자원을 할당하는 스케줄러와 상기 적어도 두 개의 운영체제가 동작 시, 각 운영체제별로 작업 부하를 산출하고, 상기 스케줄러를 제어하여 상기 산출된 작업 부하에 따라 상기 할당된 자원을 조절하는 가중치 제어부를 포함한다.
본 발명에 따르면, 가상화 시스템에서 동작하는 다수 개의 운영체제별 작업 부하를 실시간으로 확인하여 시간 자원을 유기적으로 할당할 수 있다. 따라서 작업 부하가 많은 운영체제에 시간 자원을 동적으로 할당함으로써, 시간 자원의 낭비나 비효율을 방지할 수 있다. 그리고 가상화 시스템에서 동작하는 다수 개의 운영체제들의 원활한 동작과 전력 소비를 줄일 수 있다.
도 1은 종래 기술에 따른 가상화 시스템의 구조를 도시한 도면.
도 2는 종래 기술에 따른 다수 개의 운영체제가 자원을 공유하는 방법을 도시한 도면.
도 3은 종래 기술에 따른 시간 자원 할당에 따른 운영체제 동작 방법을 도시한 도면.
도 4는 종래 기술에 따라 작업 부하에 따른 운영체제 동작을 도시한 도면.
도 5는 본 발명의 실시예에 따라 할당되는 시간 자원을 도시한 도면.
도 6은 본 발명의 실시예에 따른 가상화 시스템의 구조를 도시한 도면.
도 7은 본 발명의 제1 실시예에 따른 운영체제의 작업 부하를 측정하는 방법을 도시한 도면.
도 8은 본 발명의 제1 실시예에 따른 운영체제의 작업 부하를 정의한 도면.
도 9는 본 발명의 제2 실시예에 따라 운영체제의 작업 부하를 측정하는 방법을 도시한 도면.
도 10은 본 발명의 실시예에 따른 운영체제의 작업 부하에 따른 시간 자원을 조절하는 방법을 예시한 도면.
도 11은 본 발명의 실시예에 따른 시간 자원을 할당하는 방법에 대하여 도시한 도면.
도 12는 본 발명의 실시예에 따른 작업 부하에 따른 시간 자원을 조절하는 방법에 대하여 도시한 도면.
도 13은 본 발명의 실시예에 따라 시간 자원이 조절되는 방법을 도시한 도면.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
도 5는 본 발명의 실시예에 따라 할당된 시간 자원을 도시한 도면이다.
도 5를 참조하면, 첫번째 운영체제(OS1; Operating System1)(510)에 tos1가 할당되고, 두번째 운영체제(OS2;Operating System2)(520)에 tos2가 할당된다. 그리고 각 운영체제별 작업 부하(work load)(530)가 측정되면, 측정된 결과에 따라 시간 자원을 동적으로 할당한다. 도 5는 OS1의 작업 부하가 적은 경우를 가정하여 도시한 것으로, 측정된 작업 부하에 따라 결정된 t'os1이 초기에 할당되었던 tos1보다 작은 것을 확인할 수 있다. 그리고 도면에 도시되지 않았지만, OS1의 작업 부하가 높은 경우에는 측정된 작업 부하에 따라 결정된 t'os1이 초기에 할당되었던 tos1보다 클 수 있다.
다음으로 작업 부하를 산출하여 운영체제별로 자원을 할당하는 가상화 시스템에 대하여 도 6을 참조로 설명한다.
도 6은 본 발명의 실시예에 따른 가상화 시스템의 구조를 도시한 도면이다.
도 6을 참조하면, 적어도 두 개의 운영체제를 함께 운영할 수 있는 가상화 시스템은 하드웨어(610), 가상화 소프트웨어(620), 운영체제(630)로 구성된다.
하드웨어(610)는 코어(core)(613), 메모리(Memory)(615), 주변장치(peripheral)(617)로 구성된다. 코어(613)는 가상화 시스템에서 수행할 수 있는 기능을 처리하는 주요 처리 회로이다. 그리고 코어(613)는 운영체제(630)의 작업 부하를 측정하기 위한 동작 모니터링 유닛(PMU; Performance Monitoring Unit)(619)을 포함한다. 동작 모니터링 유닛(619)은 시스템에서 소비되는 전력을 추정하는 유닛이다. 동작 모니터링 유닛(619)은 운영체제(630)의 동작으로 인해 코어(613)에서 하드웨어(610)를 구성하는 각 구성에게 전송하는 신호의 횟수 및 메모리 사용량에 따라 소비되는 전력을 추정할 수 있다.
메모리(615)는 가상화 시스템에서 기능 수행시 발생되는 데이터를 저장하고, 기능을 수행하기 위한 프로그램들을 저장할 수 있다. 주변장치(617)는 가상화 시스템과 연결되는 장치들이다.
가상화 소프트웨어(620)는 적어도 두 개의 운영체제(630)가 하나의 하드웨어(610) 상에서 동시에 수행될 수 있도록 한다. 가상화 소프트웨어(620)는 가상 코어(virtual-core)(623), 스케줄러(scheduler)(625), 가중치 제어부(weight controller)(627)로 구성된다.
가상 코어(623)는 가상화 레이어에서 사용되는 가상 코어(623)를 의미한다. 가상화 시스템에서 운영체제(630)는 가상 코어(623)를 하드웨어(610)의 코어처럼 감지하여 동작한다. 그리고 스케줄러(625)는 운영체제(630)별로 자원을 할당하고, 해당 운영체제(630)가 동작할 수 있도록 가상 코어(623)들을 스케줄링한다. 이때 스케줄러(625)는 가상 코어(623)에서 동작하는 운영체제(630)의 작업 부하에 따라 가상 코어(623)별로 시간 자원을 다르게 할당할 수 있다. 여기서 운영체제(630)의 작업 부하는 가중치 제어부(627)에서 산출된다. 가중치 제어부(627)는 운영체제(630)의 동작 상태를 통해 작업 부하를 측정할 수 있다. 다시 말해 가중치 제어부(627)는 운영체제(630)에서 수행되는 태스크(task)의 여부에 따라 발생되는 작업 부하를 측정할 수 있다. 가중치 제어부(627)에서 작업 부하를 측정하는 방법에 대하여 도 7 내지 도 9를 참조로 후술하도록 한다.
운영체제(630)는 시스템 하드웨어(610)를 관리하고, 응용 소프트웨어를 실행하기 위한 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공할 수 있다. 여기서 운영체제(630)는 가상화 소프트웨어(620)에 포함된 가상 코어(623)에서 동작한다.
이와 같은 구성을 구비한 가상화 시스템에서 적어도 두 개의 운영체제가 동작하면, 각 운영체제별로 작업 부하를 측정하고, 측정된 작업 부하에 따라 각 운영체제에 할당되는 시간 자원의 가중치를 조절할 수 있다. 예를 들어 가상화 시스템에서 제1 운영체제와 제2 운영체제가 동작한다고 가정한다. 그리고 제1 운영체제의 작업 부하가 제2 운영체제의 작업 부하보다 높다면, 가상화 시스템은 제2 운영체제에 할당되는 시간 자원의 가중치를 조절하여 제1 운영체제에 할당되는 시간 자원의 가중치를 높일 수 있다. 또는 제1 운영체제의 작업 부하가 제2 운영체제의 작업 부하보다 낮은 경우, 가상화 시스템은 제1 운영체제에 할당되는 시간 자원의 가중치를 조절하여, 제2 운영체제에 할당되는 시간 자원의 가중치를 높일 수 있다. 각 운영체제의 작업 부하를 측정하는 방법에 대하여 도 7 내지 도 9를 참조하여 설명한다.
각 운영체제의 동작 상태에 따라 작업 부하를 측정하는 방법은 크게 두 가지가 있을 수 있다. 첫번째 방법은 운영체제의 대기 상태 구간을 가중치 제어부로 전달하여 측정하는 방법이다. 그리고 두번째 방법은 코어의 동작 모니터링 유닛(PMU; Performance Monitoring Unit)을 이용하는 방법이다.
첫번째 방법인 운영체제의 대기 상태 구간에 따라 작업 부하를 측정하는 방법에 대하여 도 7 내지 도 8을 참조하여 설명한다. 도 7은 본 발명의 제1 실시예에 따른 운영체제의 작업 부하를 측정하는 방법을 도시한 도면이다.
도 7을 참조하면, 운용체제가 대기 상태(idle)로 진입하는 시점이나, 대기 상태를 종료되는 시점을 가중치 제어부로 알리는 방식이다. 좀 더 상세히 설명하면, 스케줄러의 스케줄링에 따라 운영체제가 태스크를 수행하면, 스케줄러는 스케줄링 순서에 따라 해당 운영체제의 대기 상태가 종료되고 태스크를 수행한다는 것을 메시지로 가중치 제어부에 전달한다. 그리고 스케줄러의 스케줄링에 따라 운영체제가 대기 상태로 진입하면, 스케줄러는 운영체제의 상태가 대기 상태임을 메시지로 가중치 제어부에 전달한다. 그리고 가중치 제어부는 도 8에서 도시된 바와 같이 운영체제의 작업 부하를 정의한다.
도 8은 본 발명의 제1 실시예에 따른 운영체제의 작업 부하를 정의한 도면이다.
도 8을 참조하면, 가중치 제어부는 스케줄러로부터 전달되는 메시지를 통해 각 운영체제에서 태스크가 동작하지 않는 대기 상태의 시작 시점과 종료 시점을 확인할 수 있다. 그러면 가중치 제어부는 대기 상태의 시작 시점과 종료 시점을 통해 대기 상태 구간(tidle)(810)을 확인할 수 있다.
가중치 제어부는 확인된 대기 상태 구간(tidle)(810) 및 운영체제에 할당되었던 시간 자원(tos)을 이용하여 운영체제의 작업 부하를 산출한다. 좀 더 상세히 설명하면, 가중치 제어부는 수학식 1을 통해 운영체제의 작업 부하를 산출한다.
Figure 112010057758119-pat00001
수학식 1에 의해 산출되는 작업 부하를 통해 가중치 제어부는 스케줄러를 제어하여 각 운영체제에 할당되는 시간 자원을 조절할 수 있다.
두번째 방법인 코어의 동작 모니터링 유닛(PMU; Performance Monitoring Unit)을 이용하는 방법에 대하여 도 9를 참조하여 설명한다.
도 9는 본 발명의 제2 실시예에 따라 운영체제의 작업 부하를 측정하는 방법을 도시한 도면이다.
도 9를 참조하면, 가중치 제어부는 910단계에서 스케줄링에 따라 운영체제의 동작이 처음 수행될 때 추정되는 PMU 값을 저장한다. 여기서 PMU 값은 운영체제 동작에 따라 코어에서 메모리로 신호를 전송하는 횟수, 메모리 사용량 등을 포함한다.
다음으로 가중치 제어부는 920단계에서 스케줄링에 따라 운영체제의 동작을 확인한다. 즉 가중치 제어부는 스케줄링에 따라 해당 운영체제의 태스크가 수행되는지 판단한다. 그리고 운영체제의 동작이 완료되면, 가중치 제어부는 930단계에서 운영체제 동작의 완료에 따라 변화하는 PMU 값을 갱신한다. 그리고 가중치 제어부는 940단계에서 초기에 저장된 PMU 값과 갱신된 PMU 값을 이용하여 작업 부하(work load)를 계산한다. 작업 부하를 계산하는 방식은 PMU 값 중 여러 가지 값의 조합을 이용할 수 있으며, 각 시스템 상황에 따라 추정되는 PMU 값이 변경될 수 있다. 여기서 PMU 값으로 메모리 전송 횟수 및 메모리 사용량으로 가정하여 작업 부하를 산출하는 방식을 설명한다.
예를 들어 PMU 값으로 메모리 전송 횟수와 메모리 사용량이 추정되었다면, 가중치 제어부는 수학식 2를 통해 운영체제의 작업 부하를 산출할 수 있다.
Figure 112010057758119-pat00002
여기서
Figure 112010057758119-pat00003
는 작업 부하를 의미하며, C(t)는 시스템 클락 사이클(system clock cycle)을, M(t)는 메모리 전송(Memory transaction) 횟수를, 그리고 N(t)는 메모리 사용량(Memory usage)를 의미한다. 그리고
Figure 112010057758119-pat00004
는 임계값으로 각 시스템별로 맞는 값을 설정하면 된다.
이러한 방식들을 통해 각 운영체제의 작업 부하가 산출되면, 가중치 제어부는 스케줄러를 제어하여 각 운영체제에 할당되는 시간 자원의 가중치를 조절한다. 간단히 시간 자원의 가중치를 조절하는 방법에 대하여 도 10을 참조하여 설명한다.
도 10은 본 발명의 실시예에 따른 운영체제의 작업 부하에 따른 시간 자원을 조절하는 방법을 예시한 도면이다.
도 10을 참조하면, Tos1_min은 제1 운영체제에 할당되는 최소 시간 자원을 의미하며, Tos2_min은 제2 운영체제에 할당되는 최소 시간 자원을 의미한다. Tos1_max는 제1 운영체제에 할당되는 최대 시간 자원을 의미하며, Tos2_max는 제2 운영체제에 할당되는 최대 시간 자원을 의미한다. Tos_m은 제1 운영체제와 제2 운영체제에 할당되는 총 시간 자원 가중치의 중간을 의미한다.
Tos1은 제1 운영체제가 태스크를 수행하면서 소비하는 시간 자원을 의미하며, Tos2는 제2 운영체제가 태스크를 수행하면서 소비하는 시간 자원을 의미한다. 여기서 각 운영체제가 소비하는 시간의 자원은 각 운영체제의 작업 부하에 따라 조절될 수 있다. 이에 따라 Tos1은 제1 운영체제의 작업 부하에 따라 Tos1-△t 또는 Tos1+△t만큼 조절될 수 있다. 그리고 Tos2는 제2 운영체제의 작업 부하에 따라 Tos2-△t 또는 Tos2+△t만큼 조절될 수 있다. 여기서 △t는 각 운영체제의 작업 부하에 따라 최소로 조절할 수 있는 조절 임계값이다. 조절 임계값은 가상화 시스템 제조시 설정되거나, 가상화 시스템의 작업 환경에 따라 설정될 수 있다. 그리고 -△t는 각 운영체제별 초기에 할당된 시간 자원의 가중치보다 △t만큼 감소한 것을 의미하며, +△t는 각 운영체제별 초기에 할당된 시간 자원의 가중치보다 △t만큼 증가한 것을 의미한다.
운영체제별 작업 부하에 따라 시간 자원의 가중치를 조절하는 방법에 대하여 도 11을 참조하여 상세히 설명한다.
도 11은 본 발명의 실시예에 따른 시간 자원을 할당하는 방법에 대하여 도시한 도면이다.
도 11을 참조하면, 가상화 시스템은 1110단계에서 적어도 두 개의 운영체제를 운영하기 위한 VMM을 동작시킨다. 그리고 가상화 시스템은 1120단계에서 제1 운영체제(OS1)를 생성한다. 또한 가상화 시스템은 1130단계에서 제2 운영체제(OS2)를 생성한다. 다음으로 가상화 시스템은 1140단계에서 OS1와 OS2에 각각 할당되는 시간 자원에 대한 시간 할당량을 조정한다.
다음으로 가상화 시스템은 1150단계에서 OS1 동작이 스케줄링되었는지, OS2 동작이 스케줄링되었는지 판단한다. 만약 OS1 동작이 스케줄링되었다면, 가상화 시스템은 1160단계에서 OS1 동작을 수행한다. 반면에 OS2 동작이 스케줄링되었다면, 가상화 시스템은 1170단계에서 OS2 동작을 수행한다. 그리고 OS 동작이 완료되면, 가상화 시스템은 1180단계에서 가중치 제어부의 동작을 제어하여 각 OS에 할당되는 시간 자원을 조절한다. 여기서 1180단계는 도 12를 참조하여 후술한다. 다음으로 각 OS별 할당되는 시간 자원을 조절한 가상화 시스템은 1150단계부터 재수행한다.
도 12는 본 발명의 실시예에 따른 작업 부하에 따른 시간 자원을 조절하는 방법에 대하여 도시한 도면이다.
도 12를 참조하면, 가상화 시스템은 1205단계에서 각 운영체제(OS)별 작업 부하(W)를 산출한다. 여기서 각 OS에 초기 시간 자원으로 최소 할당 시간 자원인 Tos1_min과 Tos2_min이 할당되었다고 가정한다. 가상화 시스템은 1210단계에서 OS1의 작업 부하인 Wos1이 이전 작업 부하보다 감소하였는지 판단한다. 만약 Wos1이 감소하였다면, 가상화 시스템은 1213단계에서 OS1에 할당된 시간 자원의 가중치인 Tos1을 -△t만큼 이동시킨다. 그리고 가상화 시스템은 1215단계에서 이동된 Tos1가 Tos1_min보다 작은지 판단한다. 만약 Tos1가 Tos1_min보다 작으면, 가상화 시스템은 1217단계에서 Tos1를 Tos1_min와 동일하게 유지시킨다. 여기서 Tos1를 Tos1_min와 동일하게 유지시키는 이유는 OS1의 최소 동작을 보장함으로써 OS1의 반응성을 보장하기 위함이다.
다시 1210단계로 돌아가, 만약 Wos1이 감소하지 않았다면, 가상화 시스템은 1220단계에서 Wos1이 증가했는지 판단한다. 만약 만약 Wos1이 증가하였다면, 가상화 시스템은 1223단계에서 Tos1+△t가 Tos2_max보다 크거나 같은지 판단한다.
만약 Tos1+△t가 Tos2_max보다 작으면, 가상화 시스템은 1225단계에서 Tos1을 +△t만큼 증가시킨다. 반면에 Tos1+△t가 Tos2_max보다 크거나 같으면, 가중화 시스템은 1227단계에서 OS2에 할당되는 최대 할당 시간 자원 Tos2_max에서 OS2가 현재 소비하고 있는 Tos2를 뺀 값이 △t보다 크거나 같은지 판단한다. 만약 Tos2_max-Tos2값이 △t보다 크거나 같으면, 가상화 시스템은 1229단계에서 Tos1을 +△t만큼 증가시킨다. 그리고 가상화 시스템은 1230단계에서 Tos1_max을 +△t만큼 증가한 Tos1와 동일하게 하고, Tos2_max는 -△t만큼 감소시킨다.
다시 1227단계로 돌아가, Tos2_max-Tos2값이 △t보다 작으면, 가상화 시스템은 1233단계에서 Tos1_max가 Tos_m보다 작은지 판단한다. 만약 Tos1_max가 Tos_m보다 작으면, 가상화 시스템은 1235단계에서 Tos1을 +△t만큼, Tos2를 -△t만큼 감소시킨다. 다음으로 가상화 시스템은 1237단계에서 Tos1_max을 +△t만큼 증가한 Tos1와 동일하게 하고, Tos2_max는 -△t만큼 감소시킨다. 도 12에 도시된 도면 부호 ①, ②, ③, ④, ⑤, ⑥은 도 13을 설명하기 위한 것으로 상세한 설명은 도 13을 참조하여 후술하도록 한다.
도 12에서 설명한 시간 자원 할당 방법에 따라 조절되는 시간 자원의 가중치에 대하여 도 13을 참조하여 설명한다.
도 13은 본 발명의 실시예에 따라 시간 자원이 조절되는 방법을 도시한 도면이다.
도 12 및 도 13을 참조하면, 각 OS의 초기 할당 시간은 Tos1-min와 Tos2-min이라고 가정한다. 그리고 OS1 동작 중 작업 부하가 변경되면, Tos1을 △t만큼 조절한다.
도면 부호 ①은 OS1의 작업 부하가 감소하여 Tos1를 -△t만큼 감소시켰을 때, 감소된 Tos1이 Tos1-min보다 작으면, Tos1을 Tos1-min으로 유지시키는 경우를 예시한다. 그리고 도면 부호 ②는 OS1의 작업 부하가 감소하여, -△t만큼 Tos1을 감소시킨 경우를 예시한다. 또한 도면 부호 ③은 OS1의 작업 부하가 증가하여, +△t만큼 Tos1을 증가시킨 경우를 예시한다. 다음으로 도면 부호 ④는 OS1의 작업 부하가 증가하여, +△t만큼 증가된 Tos1가 Tos1_max보다 큰 경우를 예시한다. 이때, Tos1은 OS2의 작업 부하에 따라 추가적으로 시간 자원을 할당받거나, 그대로 유지될 수 있다. 다시 말해 Tos1가 Tos1_max에 다다른 상황에서 Tos2가 Tos2_max보다 Δt이상 차이가 난다면 Tos1_max을 Δt만큼 줄이고, Tos2와 Tos2_max값은 Δt만큼 늘려줄 수 있다.
도면 부호 ⑤는 Tos1_max가 Tos1쪽으로 이동한 상황에서 Tos1의 workload가 증가한다면 Tos2_max은 줄이고, Tos1_max는 증가시키는 경우를 예시한다. 그리고 도면부호 ⑥는 Tos2_max를 줄일 수 없는 상황이면 Tos1_max와 Tos1을 그대로 유지하는 경우를 예시한다.
지금까지 제1 운영체제인 OS1의 작업 부하에 따라 할당된 시간 자원을 조절하는 방법에 대하여 설명했으나 반대의 경우에도 성립될 수 있다. 즉 OS2의 작업 부하에 따라 OS2에 할당된 시간 자원을 조절할 수 있다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (14)

  1. 적어도 두 개의 운영체제가 동작하는 가상화 시스템의 자원 할당 방법에 있어서,
    상기 적어도 두 개의 운영체제 각각에 대하여 최소 할당 자원 및 최대 할당 자원을 설정하는 과정과,
    각 운영체제에 시간 자원을 할당하는 과정과,
    상기 운영체제 중 어느 하나가 동작하면, 각 운영체제 별로 작업 부하를 산출하는 과정과,
    상기 산출된 작업 부하에 따라 각 운영체제에 할당된 시간 자원을 기 설정된 시간 조절 단위에 기반하여 조절하는 과정과,
    상기 조절된 시간 자원이 상기 운영체제에 할당된 최소 할당 자원 미만이면, 상기 최소 할당 자원을 해당 운영체제의 시간 자원으로 할당하는 과정과,
    상기 조절된 시간 자원이 상기 운영체제에 할당된 최대 할당 자원을 초과하면, 상기 최대 할당 자원을 해당 운영체제의 시간 자원으로 할당하는 과정을 포함하는 것을 특징으로 하는 자원 할당 방법.
  2. 제1항에 있어서, 상기 작업 부하를 산출하는 과정은
    상기 각 운영체제별 동작 상태에 따라 상기 작업 부하를 산출하는 과정임을 특징으로 하는 자원 할당 방법.
  3. 제2항에 있어서, 상기 작업 부하를 산출하는 과정은
    상기 각 운영체제의 대기 상태 구간을 확인하는 과정과,
    상기 확인된 대기 상태 구간에 따라 상기 작업 부하를 산출하는 과정을 포함하는 것을 특징으로 하는 자원 할당 방법.
  4. 제2항에 있어서, 상기 작업 부하를 산출하는 과정은
    상기 각 운영체제별 태스크 수행 시, 동작 모니터링 유닛을 이용하여 상기 작업 부하를 산출하는 과정을 포함하는 것을 특징으로 하는 자원 할당 방법.
  5. 제1항에 있어서, 상기 시간 자원을 조절하는 과정은
    상기 작업 부하가 증가하면, 상기 할당된 시간 자원을 상기 기 설정된 시간 조절 단위만큼 증가시키는 과정과,
    상기 작업 부하가 감소하면, 상기 할당된 시간 자원을 상기 기 설정된 시간 조절 단위만큼 감소시키는 과정을 포함하는 것을 특징으로 하는 자원 할당 방법.
  6. 삭제
  7. 삭제
  8. 적어도 두 개의 운영체제에 시간 자원을 할당하는 스케줄러와
    상기 적어도 두 개의 운영체제 각각에 대하여 최소 할당 자원 및 최대 할당 자원을 설정하고, 각 운영체제에 시간 자원을 할당하며, 상기 운영체제 중 어느 하나가 동작하면, 각 운영체제 별로 작업 부하를 산출하고, 상기 산출된 작업 부하에 따라 각 운영체제에 할당된 시간 자원을 기 설정된 시간 조절 단위에 기반하여 조절하고, 상기 조절된 시간 자원이 상기 운영체제에 할당된 최소 할당 자원 미만이면, 상기 최소 할당 자원을 해당 운영체제의 시간 자원으로 할당하며, 상기 조절된 시간 자원이 상기 운영체제에 할당된 최대 할당 자원을 초과하면, 상기 최대 할당 자원을 해당 운영체제의 시간 자원으로 할당하도록 제어하는 제어부를 포함하는 자원 할당 시스템.
  9. 제8항에 있어서, 상기 제어부는
    각 운영체제별 동작 상태에 따라 작업 부하를 산출하는 것을 특징으로 하는 자원 할당 시스템.
  10. 제9항에 있어서, 상기 제어부는
    각 운영체제의 대기 상태 구간을 확인하고, 상기 확인된 대기 상태 구간에 따라 상기 작업 부하를 산출하는 것을 특징으로 하는 자원 할당 시스템.
  11. 제9항에 있어서, 상기 제어부는
    각 운영체제별 동작 모니터링 유닛을 이용하여 상기 작업 부하를 산출하는 것을 특징으로 하는 자원 할당 시스템.
  12. 제8항에 있어서, 상기 제어부는
    상기 작업 부하가 증가하면, 상기 할당된 시간 자원을 기 설정된 시간 조절 단위만큼 증가시키고, 상기 작업 부하가 감소하면, 상기 스케줄러를 제어하여 상기 할당된 시간 자원을 상기 기 설정된 시간 조절 단위만큼 감소시키는 것을 특징으로 하는 자원 할당 시스템.
  13. 삭제
  14. 삭제
KR1020100086968A 2010-09-06 2010-09-06 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법 KR101699770B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100086968A KR101699770B1 (ko) 2010-09-06 2010-09-06 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US13/225,727 US9146761B2 (en) 2010-09-06 2011-09-06 Virtualization system and resource allocation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100086968A KR101699770B1 (ko) 2010-09-06 2010-09-06 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법

Publications (2)

Publication Number Publication Date
KR20120024204A KR20120024204A (ko) 2012-03-14
KR101699770B1 true KR101699770B1 (ko) 2017-02-13

Family

ID=45771603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100086968A KR101699770B1 (ko) 2010-09-06 2010-09-06 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법

Country Status (2)

Country Link
US (1) US9146761B2 (ko)
KR (1) KR101699770B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114495A1 (ja) * 2010-03-18 2011-09-22 富士通株式会社 マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
KR101694310B1 (ko) * 2013-06-14 2017-01-10 한국전자통신연구원 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법
US9323576B2 (en) * 2014-02-04 2016-04-26 The Boeing Company Removal of idle time in virtual machine operation
US9755987B2 (en) * 2014-02-05 2017-09-05 Futurewei Technologies, Inc. Virtual resource mapping mechanisms
KR101709121B1 (ko) * 2014-04-09 2017-02-22 한국전자통신연구원 가상 머신 구동 방법 및 가상 머신 구동 시스템
US10394606B2 (en) 2014-09-30 2019-08-27 Hewlett Packard Enterprise Development Lp Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US10534542B2 (en) 2014-09-30 2020-01-14 Hewlett Packard Enterprise Development Lp Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
US9600337B2 (en) * 2014-09-30 2017-03-21 Nimble Storage, Inc. Congestion avoidance in network storage device using dynamic weights
US9483187B2 (en) 2014-09-30 2016-11-01 Nimble Storage, Inc. Quality of service implementation in a networked storage system with hierarchical schedulers
US10545791B2 (en) 2014-09-30 2020-01-28 Hewlett Packard Enterprise Development Lp Methods to apply IOPS and MBPS limits independently using cross charging and global cost synchronization
EP3086254A1 (en) * 2015-04-22 2016-10-26 Gemalto Sa Method of managing applications in a secure element when updating the operating system
US10819607B2 (en) * 2015-12-09 2020-10-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reducing power consumption of a compute node experiencing a bottleneck
US10176082B2 (en) * 2016-06-30 2019-01-08 International Business Machines Corporation Z/OS SMF/RMF workload data playback with web dashboard visualization
US11023025B2 (en) * 2016-11-16 2021-06-01 Cypress Semiconductor Corporation Microcontroller energy profiler
US10387051B2 (en) 2017-08-24 2019-08-20 Hewlett Packard Enterprise Development Lp Acquisition of IOPS and MBPS limits independently at a scheduler in a scheduler hierarchy
EP3809262B1 (en) * 2019-10-15 2023-11-29 Omron Corporation Method for configuring a hypervisor and industrial pc
US11169855B2 (en) * 2019-12-03 2021-11-09 Sap Se Resource allocation using application-generated notifications
US11580060B2 (en) * 2021-02-13 2023-02-14 Drako Motors, Inc. Policy driven latency control applied to a vehicular real time network apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437730B2 (en) 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0225936A (ja) * 1988-07-14 1990-01-29 Nec Corp 仮想計算機システム
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US7290260B2 (en) * 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US20040267548A1 (en) * 2003-06-25 2004-12-30 Jones James O. Workload profiling in computers
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US8104039B2 (en) * 2006-08-07 2012-01-24 International Business Machines Corporation Method for balancing resource sharing and application latency within a data processing system
US20080155092A1 (en) * 2006-12-22 2008-06-26 Arvind Kumar Method, apparatus and system for securely metering resource usage on a computing platform
US8301742B2 (en) * 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
JP5157717B2 (ja) * 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
KR101557995B1 (ko) * 2008-10-08 2015-10-19 엘지전자 주식회사 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
KR101437122B1 (ko) 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US9390130B2 (en) * 2008-12-12 2016-07-12 Hewlett Packard Enterprise Development Lp Workload management in a parallel database system
US8799895B2 (en) * 2008-12-22 2014-08-05 Electronics And Telecommunications Research Institute Virtualization-based resource management apparatus and method and computing system for virtualization-based resource management
US9740517B2 (en) * 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
US8234236B2 (en) * 2009-06-01 2012-07-31 International Business Machines Corporation System and method for efficient allocation of resources in virtualized desktop environments
US8458324B2 (en) * 2009-08-25 2013-06-04 International Business Machines Corporation Dynamically balancing resources in a server farm
US8387060B2 (en) * 2009-10-01 2013-02-26 Dell Products L.P. Virtual machine resource allocation group policy based on workload profile, application utilization and resource utilization
US8464255B2 (en) * 2010-03-12 2013-06-11 Microsoft Corporation Managing performance interference effects on cloud computing servers
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437730B2 (en) 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system

Also Published As

Publication number Publication date
KR20120024204A (ko) 2012-03-14
US9146761B2 (en) 2015-09-29
US20120060168A1 (en) 2012-03-08

Similar Documents

Publication Publication Date Title
KR101699770B1 (ko) 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
JP5075274B2 (ja) 電力認識スレッドスケジューリングおよびプロセッサーの動的使用
KR102207050B1 (ko) 분산 컴퓨터 시스템에 전력 할당의 변화가 있을 때 중단될 수 있고 중단될 수 없는 작업들을 관리하는 방법들 및 장치
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
WO2021233261A1 (zh) 一种多任务动态资源调度方法
EP2430538B1 (en) Allocating computing system power levels responsive to service level agreements
US8392898B2 (en) Running time of short running applications by effectively interleaving compilation with computation in a just-in-time environment
US20200019230A1 (en) Managing power consumptions of multiple computing nodes in a hyper-converged computing system
US20090150896A1 (en) Power control method for virtual machine and virtual computer system
EP2430541A1 (en) Power management in a multi-processor computer system
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US8892819B2 (en) Multi-core system and external input/output bus control method
US20140006666A1 (en) Task scheduling method and multi-core system
US10613606B2 (en) Wireless component state based power management
WO2012120664A1 (ja) 仮想計算機のマイグレーション評価方法及び仮想計算機システム
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
CN116627237B (zh) 一种基于芯粒Chiplet的电源管理芯片架构系统
US20090077290A1 (en) Controller for processing apparatus
CN115794390A (zh) 一种任务控制装置、电子设备及存储介质
EP3982258A1 (en) Method and apparatus for reducing power consumption of virtual machine cluster
KR20160112749A (ko) 멀티 코어 시스템 및 그 스케줄링 방법
US20240211297A1 (en) Method for a primary virtual machine to schedule a task of sibling virtual machines
US20140373024A1 (en) Real time processor
Jerabek et al. Energy-Efficient Real-Time Operating Systems: An Approach using Dynamic Frequency Scaling and Worst-Case Execution Time Aware Scheduling
GB2601509A (en) Computer orchestration

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
FPAY Annual fee payment

Payment date: 20191224

Year of fee payment: 4