KR101809380B1 - 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치 - Google Patents

가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR101809380B1
KR101809380B1 KR1020160160667A KR20160160667A KR101809380B1 KR 101809380 B1 KR101809380 B1 KR 101809380B1 KR 1020160160667 A KR1020160160667 A KR 1020160160667A KR 20160160667 A KR20160160667 A KR 20160160667A KR 101809380 B1 KR101809380 B1 KR 101809380B1
Authority
KR
South Korea
Prior art keywords
virtual machine
scheduling algorithm
scheduling
navigation system
scheduler
Prior art date
Application number
KR1020160160667A
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 KR1020160160667A priority Critical patent/KR101809380B1/ko
Application granted granted Critical
Publication of KR101809380B1 publication Critical patent/KR101809380B1/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
    • G06F9/45558Hypervisor-specific management and integration aspects

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

가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치가 제공된다. 본 발명의 실시예에 따른 스케줄링 방법은, 가상머신 스케줄링 상태 데이터를 수집하고, 수집한 상태 데이터를 기초로 스케줄링 알고리즘을 관리한다. 이에 의해, 가상머신이 스케줄링되고 있는 동안에 "Deadline Miss"가 최소화되는 최적의 스케줄러로 교환할 수 있게 된다.

Description

가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치{Scheduling Method and Apparatus for a Virtual Machine based Integrated Navigation System}
본 발명은 시스템 스케줄링 기술에 관한 것으로, 더욱 상세하게는 가상머신 기반 통합항해시스템(INS, Integrated Navigation System)을 위한 스케줄링 방법 및 장치에 관한 것이다.
기존 통합항해시스템은 하나의 물리적 장치 또는 PC(Personal Computer)에 독립된 소프트웨어가 설치되어 운영되었다. 즉, INS용 애플리케이션인 ECDIS, Conning RADAR등의 애플리케이션이 각각의 특정 하드웨어에서 실행되도록 설계되었다.
그러나 단일 하드웨어에 단일 소프트웨어가 탑재되어 실행되는 구조의 시스템은 소프트웨어적 결함 또는 하드웨어적인 결함으로 인한 오류가 발생할 경우 복구와 데이터의 저장이 용이하지 않다.
그리고 단일하드웨어 기반으로 운영되는 애플리케이션들은 고장 또는 오류가 발생할 경우 또 다른 시스템으로의 확장성이 낮으며, 소프트웨어를 이식하는 측면에서도 많은 제약이 따른다.
또한 하나의 도메인에서 다수의 가상머신을 관리하는 가상화 플랫폼의 경우 스케줄러가 고정되어 있는 구조이므로 가상머신들이 고정된 하나의 스케줄러에 의해 운영되며, 이는 가상머신을 운영하는데 시스템이 동작하는 동안에 스케줄러를 변경할 수 없기 때문에 성능측면에서 고성능을 유지하기 어렵다.
이에 가상화 플랫폼을 기반으로 통합항해시스템을 운영하여 하드웨어적 또는 소프트웨어적으로 결함이 발생할 경우 신속하게 대처할 수 있으며, 높은 확장성을 가질 수 있고 데이터 및 시스템의 복원이 용이한 가상화 플랫폼 기반의 통합항해시스템이 필요하다.
가상화 플랫폼을 기반으로 통합항해시스템을 운영하는데 있어서 복수개의 가상머신들을 스케줄링 할 때 고정된 하나의 스케줄러로 실행중에 있는 모든 가상머신들에게 하드웨어 자원 및 프로세서를 분배하는 스케줄링 작업을 수행하는 것은 적합하지 않다.
종래의 가상머신 환경에서 프로세서 및 하드웨어 자원을 할당하는 기술을 살펴보면, 가상머신 실행환경에서 현재의 작업(Task)에 따라 최적의 스케줄러를 선정하고 변경하여 가상머신을 효과적으로 스케줄링하려는 목적은 아니었다.
Xen가상화 플랫폼의 Credit스케줄러를 기반으로 각 가상머신에 동등하게 분배되는 자원을 모니터링하여 게스트 도메인이 달성해야하는 목표 응답시간에 맞게 자원의 사용시간 등을 도메인별로 요청량에 비례하게 재분배하는 기능에만 국한돼있다. 따라서 가상머신에서 사용되는 스케줄러가 Credit스케줄러와 같은 형태가 아닌 구조로 변경될 경우 이러한 방법이 적용되기 매우 어렵다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 가상화 플랫폼 기반의 통합항해시스템(INS, Integrated Navigation System)과 가상머신 환경에서 운영되는 통합항해시스템 환경에서 각 가상머신을 보다 효율적이고 안정적으로 운영하기 위한 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 스케줄링 방법은, 가상머신 스케줄링 상태 데이터를 수집하는 단계; 수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 관리하는 단계;를 포함한다.
그리고, 가상머신은, 통합항해시스템의 운용을 위한 가상머신일 수 있다.
또한, 관리단계는, 수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 시뮬레이션 하는 단계; 시뮬레이션 결과를 기반으로, 현재 스케줄링 알고리즘의 최적 여부를 판단하는 단계;를 포함할 수 있다.
그리고, 본 발명의 실시예에 따른 스케줄링 방법은, 판단 결과 현재 스케줄링 알고리즘이 부적합하다고 판단되면, 다른 스케줄링 알고리즘으로 교체하는 단계; 판단 결과 현재 스케줄링 알고리즘이 적합하다고 판단되면, 현재 스케줄링 알고리즘으로 유지하는 단계;를 더 포함할 수 있다.
또한, 현재 스케줄링 알고리즘이 부적합한 경우는, 시뮬레이션 결과, 가상머신에 대한 응답을 처리하는데 있어서 Deadline Miss가 기준 이상으로 발생하는 경우일 수 있다.
그리고, 현재 스케줄링 알고리즘이 부적합한 경우는, 시뮬레이션 결과, 가상머신에 대한 응답을 처리하는데 가장 적합한 다른 스케줄링 알고리즘이 있다고 판단되는 경우일 수 있다.
또한, 수집단계 및 관리단계는, Shadow Domain에 의해 수행될 수 있다.
한편, 본 발명의 다른 실시예에 따른, 컴퓨터로 읽을 수 있는 기록매체에는, 가상머신 스케줄링 상태 데이터를 수집하는 단계; 수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 관리하는 단계;를 포함하는 것을 특징으로 하는 스케줄링 방법을 수행할 수 있는 프로그램이 기록다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 가상화 플랫폼기반의 제안된 방법을 통해, 선박이 항해하는 동안에 시스템에 오류가 발생할 경우 오류가 발생하기 이전 시점으로 시스템의 빠른 복구가 용이하며, 각 가상머신이 운영체제를 포함한 백업이 가능하므로 데이터의 저장측면에서 장점이 있다.
또한, 본 발명의 실시예들에 따르면, 복수 개의 가상머신이 수행되는 동안에 하나의 가상머신에 문제가 발생할 경우, 전체시스템에는 이상이 없기 때문에 소프트웨어적으로 문제해결이 가능하며 데이터의 공유도가 높아진다. 즉, 시스템에 오류가 발생했을 때 또 다른 가상머신에서 애플리케이션만 실행시켜 기존의 데이터를 가지고 올 수 있는 장점이 있다.
그리고, 본 발명의 실시예들에 따르면, 가상화 플랫폼을 사용함으로써 하나의 물리적인 장치에 다수의 운영체제(Operating System)와 애플리케이션 수행이 가능하여 하드웨어의 효율성을 극대화 할 수 있다.
뿐만 아니라, 가상머신 스케줄링 방식에 있어서 종래 기술에 적용된 알고리즘과 비교하여 각 가상머신이 스케줄링되고 있는 동안에도 "Deadline Miss"가 최소화되는 최적의 스케줄러로 교환할 수 있는 장점이 있다.
아울러, 본 발명의 실시예들에 따르면, 위 스케줄링 방식에 의해 가상머신 및 가상머신에서 수행되는 Task의 "Deadline miss"를 줄일 수 있어서 전체 시스템을 Task 손실을 줄여 안정적으로 운영할 수 있다.
도 1은 본 발명이 적용가능한 통합선박항해시스템의 전체 개념도,
도 2는 Type-1 방식의 가상화 구조
도 3은 Type-2 방식의 가상화 구조,
도 4는 가상화 분류별 성능 및 Kernel 수정 필요 여부를 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 가상화 플랫폼 기반 통합항해시스템 전체 구조,
도 6은 가상화 플랫폼 기반 통합항해시스템,
도 7은 스케줄러 특성에 따른 스케줄링 예시,
도 8은, 도 7의 Task의 주기(Period) 및 최장 수행시간(Worst Case Execution Time),
도 9는 시뮬레이션 기반 가상머신 스케줄링,
도 10은 스케줄링(Scheduling) 알고리즘 예시,
도 11은 스케줄링 알고리즘 변경 관련 순서도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용가능한 통합선박항해시스템의 전체 개념도이다. 본 발명의 실시예에서는, 통합선박항해시스템 운영에 있어서 가상화 플랫폼을 이용하고, 각 가상머신들을 효율적으로 스케줄링할 수 있는 방법을 적용하여 하드웨어 효율성을 극대화하고 데이터의 공유 및 저장, 빠른 복구를 통해 보다 강건하고 효율적으로 하는 방안을 제시한다.
또한, 본 발명의 실시예에서는, 항해시스템 결함이 발생할 경우 빠른 대처와 복구를 가능하게 하며, 가상머신 스케줄링에 있어서 소프트웨어적 Task 처리에 가장 효율적인 스케줄러를 적용함으로써 스케줄링 효율성을 극대화한다.
그리고, 본 발명의 실시예에서는, 가상화 플랫폼을 기반으로 적어도 하나 이상의 가상머신과 그 가상머신을 제어하는 도메인(Domain0) 및 Domain0의 상태를 관리하고 현재 상태에 가장 적절한 스케줄링 알고리즘을 적용해 볼 수 있는 도메인(Shadow Domain)을 포함한다.
특히, Domain0가 각 가상머신을 스케줄링하는데 있어서 "Deadline Miss"나 가상머신이 요청하는 최소한의 응답시간을 보장하지 못하는 경우에 Shadow Domain에서 실시간으로 Simulation되고 있는 데이터에 기인하여 Domain0와 Shadow Domain이 Context Switching되는 구조를 포함한다.
Domain0의 이중화를 통해 가상머신에서 현재 Task를 가장 잘 처리할 수 있는 스케줄러를 적용하여 각 가상머신 Task의 "Deadline Miss"를 최소화하고 스케줄링 효율성을 높인다.
본 발명의 실시예에서는, 가상화 플랫폼을 기반으로 통합항해시스템을 운영하고, 복수 개의 통합항해시스템 애플리케이션이 운영되는 가상머신을 보다 효율적으로 스케줄링하기 위한 기술로 물리적인 자원을 추상화한다.
일반적으로 가상화(Virtualizatioin)란 물리적 자원들을 논리적 자원으로 사용할 수 있도록 하는 기술을 말하며, Hypervisor 또는 VMM(Virtual Machine Monitor)라고도 한다. 본 발명의 실시예에서 말하는 가상화 플랫폼은 하나의 물리적 장치에 다수개의 OS(Operating System, 운영체제)가 동시에 실행될 수 있는 환경이다.
가상화 방식에는 Bare-metal(Type-1)방식과 Hosted(Type-2)이 있다. Type-1가상화는 도 2과 같이 하이퍼바이저(Hypervisor)가 하드웨어를 직접적으로 제어 및 시스템을 운영하는 구조를 말하며, Type-2 가상화 방식은 도 3과 같이 하이퍼바이저가 호스트 운영체제(Host OS)상에서 애플리케이션처럼 운영되는 구조를 말한다.
위 구조를 기반으로 Type-1은 반가상화(Para-virtualization), Type-2는 전가상화(Full-virtualization) 로 분류할 수 있다.
반가상화(Para-virtualization)는 게스트 OS의 커널을 하이퍼바이저에 맞게 수정되어야한다. 커널을 수정해야하는 단점이 있지만, 바이너리 전환(Binary Translation)이 발생하지 않아 가상화되지 않은 시스템과 동일한 성능을 낼 수 있는 장점이 있다.
전가상화(Full-virtualization) 호스트 운영체제가 있으므로 게스트 OS를 수정하지 않아도 된다. 그러나 호스트 운영체제가 하이퍼바이저와 하드웨어 사이에서 운영체제 명령어를 하드웨어에 전달하는 Binary Translation과정을 거쳐야 하므로 반가상화에 비해 성능이 저하된다.
전가상화 및 반가상화에서 성능과 커널 수정 및 가상화 목적에 관련된 내용을 정리하면 도 4와 같다.
본 발명의 실시예는, 반가상화 및 전가상화를 지원하는 Xen과 같은 가상화 플랫폼 환경을 상정하며, 각 가상머신에 자원을 할당하고 스케줄링하는 도메인(Domain0)과 최소 1개 이상의 게스트 도메인을 포함한다.
도 5는 본 발명의 일 실시예에 따른 가상화 플랫폼 기반 통합항해시스템 전체 구조와 전체적인 데이터 흐름을 나타낸다. 가상화 플랫폼기반 통합항해시스템 전체 구조의 데이터 흐름(Flow)은 다음과 같이 이루어져있다.
먼저, 가상화 플랫폼기반 통합항해시스템은 선박에서 사용되는 GNSS, AIS, Speed-log, Gyro센서와 같은 다양한 센서로부터 데이터를 수집한다.
수집된 센서 데이터 및 정보는 IEC61162-450 Gateway를 통해서 하드웨어기반의 TSMS(Total Sensor Management System)을 전달되며, 파싱(Parsing)된 데이터는 DR(Data Repository)에 저장된다.
포워더(Forwarder)는 데이터 저장소(DR)에 있는 값을 다시 IEC61162-450 표준을 통해서 가상화 플랫폼이 설치된 물리적 장치에 전달한다.
전달된 데이터는 가상화 플랫폼을 통해 Conning, RADAR 또는 ECDIS 등의 항해시스템 애플리케이션과 통신이 이루어지며 애플리케이션에서 필요한 데이터를 제공한다.
도 5의 가상화 플랫폼 기반 통합항해시스템의 전체구조에서 실제 운영체제와 가상화 플랫폼 그리고 통합항해시스템 관련 애플리케이션이 운영되는 구조를 도식화하면 도 6과 같다.
가상화 플랫폼기반의 통합항해시스템 소프트웨어 운영은 도 6에서 보는 것과 같이 하나의 하드웨어에 다수의 운영체제가 실행되는 환경이며, 각 운영체제에는 항해에 필요한 시스템이 독립적으로 운영된다.
또한 하드웨어 플랫폼에 탑재되는 운영체제는 모두 동일한 것이 아닌 각 가상머신별로 독립적으로 설치 및 운영할 수 있다. 즉, 하나의 하드웨어에 서로 다른 운영체제들이 탑재되어 실행될 수 있기 때문에 통합항해에 필요한 애플리케이션은 하드웨어에 독립적인 구조를 가질 수 있다. 그러므로 통합항해시스템 애플리케이션이 운영되는 운영체제 환경을 갖추기만 하면 어떠한 물리적인 장치에서도 통합항해용 애플리케이션을 운영할 수 있다.
또한 이러한 구조는 하나의 가상머신에 고장이 발생해도 다른 가상머신에서 논리적으로 데이터에 접근 가능하고 가상머신에 대한 백업이 용이하며, 시스템 고장일 발생할 경우 빠른 복구가 가능하다.
다음은 가상화 플랫폼 기반 가상머신 스케줄링에 대해 설명한다. 일반적으로 가상화 플랫폼은 하나의 물리적인 장치에서 다수개의 운영체제를 동작할 수 있도록 한다.
각 가상머신을 스케줄링하기 위해서는 연산에 필요한 프로세서(CPU)와 I/O등 물리적인 자원을 할당해줘야 한다. 이때 각 자원(Resource)를 할당하는 방법은 실제 물리적인 시간을 각 가상머신에 분배하여 제공함으로써, 동시에 다수의 도메인 또는 운영체제가 실행될 수 있도록 하는 것이다.
그러나 가상머신 스케줄에 사용되는 스케줄러는 고정되어 있다. 또한 스케줄러를 변경하기 위해서는 모든 도메인과 가상머신을 중지하고 변경해야한다.
현재 Xen Hypervisor에서 제공하는 스케줄러는 sEDF, Credit, Credit2, RTDS, ARINC653 등이 있으며, 일반적으로 Credit 스케줄러가 기본 스케줄러로 설정되어 있다.
Credit 스케줄러 이외의 다른 스케줄러로 변경하기 위해서는 실행중인 가상머신을 모두 멈추고, Xen Hypervisor상의 부팅엔트리 부분의 코드를 수정해야한다. 가상화 플랫폼 환경에서 가상머신을 운영할 때 운영되는 가상머신들은 운영체제나 애플리케이션에 따라 각각의 스케줄링 특성이 다를 수 있으며, 하나의 스케줄러가 모든 스케줄링 특성을 만족하지 못할 수 있다.
도 7은 이러한 스케줄링 특성에 따른 일(Task) 처리에 관한 예를 보여준다. 그리고, 도 8은 도 7에서의 일(Task)의 주기와 일(Task)의 최장 수행시간(Worst Case Execution Time) 그리고 프로세서(Process)에 관한 것을 나타낸다. 위의 예를 설명하면 다음과 같다.
먼저, 처리해할 할 일(Task)은 2개이다. 각각의 주기는 도 8에서와 같이 5와 7이며, 최장 수행시간은 2와 4이다. 즉 첫 번째 일(Task)는 5주기마다 일(Task)을 처리하는데 있어서 최장 2라는 시간을 필요로 하며, 두 번째 일(Task)은 7주기마다 최장 4라는 처리시간을 필요로 한다.
결과적으로 EDF(Earliest Deadline First Scheduling) 스케줄링 알고리즘으로 일(Task)를 처리하면 Deadline전에 모든 일을 처리할 수 있는데, RMA(Rate Monotonic Scheduling Algorithm)으로 일을 처리하면 도 7에서 보이는 것과 같이 두 번째 주기(Period)에서 Deadline Miss가 발생한다.
가상머신을 운영하는데 있어서 도 7의 RMA에서 발생하는 Deadline Miss가 자주 발생하면, 원하는 값을 얻을 수 없고, 현재 수행중인 애플리케이션을 신뢰할 수 없게 된다.
도 9는 위와 같은 문제를 해결하기 위해 제시한 본 발명의 실시예에 따른 시뮬레이션 기반 가상머신 스케줄링 방법이다. 본 발명의 실시예에서의 스케줄링 은 도 9에서와 같이 현재 가상머신의 상태 및 일(Task)처리 상태를 모니터링하는 모듈을 이용한다.
즉, 도 9의 Shadow Domain에서는 Domain0와 같이 각 가상머신이 Task를 처리하고 있는 상태를 모니터링 한다. 모니터링 중 가상머신에서 Task에 대한 Deadline이 발생하는지 주기적으로 확인한다. 또한 가상화 플랫폼에서 가지고 있는 또 다른 스케줄러를 적용하여 연속적으로 시뮬레이션을 수행한다.
시뮬레이션을 통해 도 7의 RMA 알고리즘과 같이 현재 스케줄링 알고리즘이 각 가상머신에 대한 응답을 처리하는데 있어서 Deadline Miss가 자주 발생하는 등 비효율적으로 판단되거나, 시뮬레이션을 통해서 가장 적합하다고 판단되는 스케줄러가 있으면, 현재 사용되는 스케줄러를 시뮬레이션을 통해 선택된 가장 적절한 스케줄링 알고리즘 또는 스케줄러로 알고리즘 수행 중에 변경하는 것이다.
그러기 위해서는 스케줄러가 있는 도메인(Domain 0)과 동일하게 운영되거나 Domain 0의 일(Task)처리에 대한 정보를 실시간으로 수집하여 시뮬레이션 할 수 있어야 한다.
스케줄러 변경은 많은 오버헤드(Overhead)를 동반할 수 있다. 때문에 스케줄러를 변경하는 것은 Domain0에서 수행하는 것이 아니라 Domain0가 가지고 있는 특권모드(Privileged Mode)를 Domain0에서 Shadow Domain으로 이양하는 방법을 사용하면 오버헤드를 줄일 수 있으며 보다 간편하게 스케줄러를 변경할 수 있다.
또한 자신이 가지는 특권모드를 이양한 Domain0에서는 이전까지 Shadow Domain에서 수행한 시뮬레이션을 수행한다. 반대로 다시 Domain0가 가장 효율적으로 각 가상머신을 스케줄링할 수 있을 때 똑같은 방법(Domain Swap)을 통해 특권모드를 변경한다.
시뮬레이션에 있어서는 실제로 모든 가상머신을 수행하는 것이 아닌 각 Task에 대한 정보를 수집해서 가장 효율적인 알고리즘을 찾아내는 구조이다.
도 10은 가상화 플랫폼에서 가장 효율적인 스케줄러를 선택하는데 있어서 사용될 수 있는 스케줄러들에 대한 예시이다. 크게 EDF(Earliest Deadline First Scheduling), RMA(Rate Monotonic Scheduling Algorithm), LLF(Least Laxity First) 등이 있을 수 있다.
여기서 EDF 스케줄링은 프로세스를 우선순위 큐를 통해 수행한다. 스케줄링 이벤트가 일어날 때마다, 큐에서 마감시간이 가장 가까운 프로세스를 탐색하여 다음에 수행되도록 한다. 주기적인 작업 뿐만 아니라 단일 처리기 환경에서 선점형 프로세스들을 스케줄링할 수 있다. 작업(task)이 N개일 때 복잡도는 O(n^2)이다.
RMA 스케줄링은 수행 주지가 가장 짧은 프로세스에 가장 높은 우선순위를 부여하는 방식의 스케줄링 알고리즘이다. LLF는 최소 여유시간 우선 스케줄링 방식으로 프로세스에 전체적인 여분의 시간이 가장 적은 Task가 가장 높은 우선순위를 갖는 동적 스케줄링 방식이다. 이 알고리즘은 Context Switching이 자주 발생할 수 있다는 단점이 있다.
도 10에 나타난 알고리즘에서 D는 프로세스가 수행하고 있는 Task의 Deadline이며, T는 주기(Period), C는 최장 수행시간(Worst Case Execution Time), i는 Task 그리고 R은 응답시간(Response Time)을 나타낸다. 공식(왼쪽) 열은 각 알고리즘에 대한 사용율(Utilization Factor)를 나타내며, 공식(오른쪽)은 각 알고리즘의 응답시간을 계산하는 수식이다.
스케줄링 알고리즘 변경은 앞서 설명과 것과 같이 수행되고 관련 순서도는 도 11에 제시된 바와 같이, 먼저, 가상화 플랫폼이 실행된 후 사용자에 의해서 각 가상머신 및 가상머신상의 애플리케이션이 실행된다.
Shadow Domain에서는 현재 Domain0에서 수행되고 있는 Task 및 가상머신 스케줄링 상태를 연속적으로 수집한다. 수집된 데이터를 기반으로 Shadow Domain에서는 시뮬레이션을 수행한다.
시뮬레이션 결과를 기반으로 현재 스케줄링 알고리즘의 최적 여부를 판단한다. 각 가상머신에 대한 응답을 처리하는데 있어서 Deadline Miss가 자주 발생하는 등 비효율적으로 판단되거나, 시뮬레이션을 통해서 가장 적합하다고 판단되는 스케줄러가 있으면, 현재 사용되는 스케줄러를 시뮬레이션을 통해 선택된 가장 적절한 스케줄링 알고리즘 또는 스케줄러로 알고리즘 수행 중에 변경한다.
만약 Shadow Domain에서 시뮬레이션 한 결과가 현재 가상머신을 스케줄링하고 있는 알고리즘보다 효율적이지 않으면 현재 상태의 스케줄러를 유지한다.
스케줄러는 한번 병경되고 끝나는 것이 아니라 가상머신이 운영되고 있는 동안에는 계속적으로 데이터를 수집하고 최적의 알고리즘을 제시하며, 최적이 있을 경우 변경하는 과정을 반복한다.
Domain은 Domain 0에서 Shadow Domain으로만 변경되는 것이 아니라, 스케줄러가 변경될 때마다 번갈아가며 Domain이 변경되고 특권모드(Privileged Mode)를 갖게 된다.
지금까지, 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치에 대해 바람직한 실시예를 들어 상세히 설명하였다.
위 실시예에서는, 가상화 플랫폼 기반의 통합항해시스템과 가상머신환경에서 운영되는 통합항해시스템 환경에서 각 가상머신을 보다 효율적이고 안정적으로 운영하기 위한 방법을 제시하였다.
또한, 위 실시예에서는, 가상화 플랫폼에서 별도의 제어 도메인(Domain)을 두어 현재 수행되고 있는 애플리케이션의 운영 상태를 확인하고, 가상머신들을 가장 효율적으로 스케줄링 할 수 있도록 하는 시스템 및 장치를 제시하였다.
위 실시예에서는, 가상화 플랫폼을 이용하여 선박의 운항시스템 및 운항정보를 출력하고 선박운항과 관련된 데이터를 저장할 수 있는 방법을 적용했으며, 가상화 플랫폼 환경에서 가상머신들이 일(Task)을 처리하는데 있어서 가장 적적할 스케줄러로 변경될 수 있는 방법을 적용하였다.
또한, 위 실시예에서는, 가상화 플랫폼을 기반으로 디바이스에서 독립적인 운영체제 및 애플리케이션 운영이 가능하도록 했으며, 하드웨어의 효율성을 극대화 할 수 있도록 하였다.
그리고, 위 실시예에서는, 가상화 플랫폼을 기반으로 시스템에 오류가 발생할 경우 빠른 복구와 데이터 저장이 가능하도록 하였다.
아울러, 위 실시예에서는, 가상머신 스케줄링에 있어서 기 설정한 단일 스케줄러가 시스템이 종료될 때까지 모든 가상머신을 스케줄링하는 것이 아니라, 가상머신 스케줄링을 수행하는 도중 가상머신의 상태를 모니터링하여 각 일(Task)를 가장 효율적으로 처리할 수 있는 스케줄러로 선택적으로 변경할 수 있도록 하였다.
뿐만 아니라, 위 실시예에서는, 가상화 플랫폼에서 생성된 가상머신들을 스케줄링중에 가장 효율적인 스케줄러로 적용함에 따라 종래 스케줄링 방법에 비해 가상머신 또는 가상머신에서 수행되는 소프트웨어 Task의 "Deadline miss"를 줄일 수 있으며, 전체 Task에서 "Deadline miss" 수의 차이가 있다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.
Hardware
Hypervisor
Dom(ain)
Shadow Dom(ain)
Scheduler

Claims (8)

  1. 항해시스템이, 가상머신 스케줄링 상태 데이터를 수집하는 단계;
    항해시스템이, 수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 관리하는 단계;를 포함하고,
    관리단계는,
    항해시스템이, 수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 시뮬레이션 하는 단계;
    항해시스템이, 시뮬레이션 결과를 기반으로, 현재 스케줄링 알고리즘의 최적 여부를 판단하는 단계;
    항해시스템이, 판단 결과 현재 스케줄링 알고리즘이 부적합하다고 판단되면, 다른 스케줄링 알고리즘으로 교체하는 단계;
    항해시스템이, 판단 결과 현재 스케줄링 알고리즘이 적합하다고 판단되면, 현재 스케줄링 알고리즘으로 유지하는 단계;를 포함하며,
    수집단계 및 관리단계는,
    Shadow Domain에서 수행되는 것을 특징으로 하는 스케줄링 방법.
  2. 청구항 1에 있어서,
    가상머신은,
    항해시스템의 운용을 위한 가상머신인 것을 특징으로 하는 스케줄링 방법.
  3. 삭제
  4. 삭제
  5. 청구항 1에 있어서,
    현재 스케줄링 알고리즘이 부적합한 경우는,
    시뮬레이션 결과, 가상머신에 대한 응답을 처리하는데 있어서 Deadline Miss가 기준 이상으로 발생하는 경우인 것을 특징으로 하는 스케줄링 방법.
  6. 청구항 1에 있어서,
    현재 스케줄링 알고리즘이 부적합한 경우는,
    시뮬레이션 결과, 가상머신에 대한 응답을 처리하는데 가장 적합한 다른 스케줄링 알고리즘이 있다고 판단되는 경우인 것을 특징으로 하는 스케줄링 방법.
  7. 삭제
  8. 가상머신 스케줄링 상태 데이터를 수집하는 단계;
    수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 관리하는 단계;를 포함하고,
    관리단계는,
    수집한 상태 데이터를 기초로, 스케줄링 알고리즘을 시뮬레이션 하는 단계;
    시뮬레이션 결과를 기반으로, 현재 스케줄링 알고리즘의 최적 여부를 판단하는 단계;
    판단 결과 현재 스케줄링 알고리즘이 부적합하다고 판단되면, 다른 스케줄링 알고리즘으로 교체하는 단계;
    판단 결과 현재 스케줄링 알고리즘이 적합하다고 판단되면, 현재 스케줄링 알고리즘으로 유지하는 단계;를 포함하며,
    수집단계 및 관리단계는,
    Shadow Domain에서 수행되는 것을 특징으로 하는 스케줄링 방법을 수행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020160160667A 2016-11-29 2016-11-29 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치 KR101809380B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160667A KR101809380B1 (ko) 2016-11-29 2016-11-29 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160667A KR101809380B1 (ko) 2016-11-29 2016-11-29 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101809380B1 true KR101809380B1 (ko) 2017-12-14

Family

ID=60954042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160667A KR101809380B1 (ko) 2016-11-29 2016-11-29 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101809380B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073457A (ko) * 2018-12-14 2020-06-24 전자부품연구원 통합선박항해지원시스템에서 가상화 기반 다중 디스플레이 전환 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100790304B1 (ko) 2006-11-10 2008-01-02 주식회사 대우일렉트로닉스 자바 가상 머신과 운영 체제의 스케줄링 실행방법
JP2012160045A (ja) * 2011-02-01 2012-08-23 Hitachi Systems Ltd 仮想化環境リソース管理構成変更システム、及びプログラム
JP2016184274A (ja) 2015-03-26 2016-10-20 日本電気株式会社 管理装置、管理装置の制御方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100790304B1 (ko) 2006-11-10 2008-01-02 주식회사 대우일렉트로닉스 자바 가상 머신과 운영 체제의 스케줄링 실행방법
JP2012160045A (ja) * 2011-02-01 2012-08-23 Hitachi Systems Ltd 仮想化環境リソース管理構成変更システム、及びプログラム
JP2016184274A (ja) 2015-03-26 2016-10-20 日本電気株式会社 管理装置、管理装置の制御方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073457A (ko) * 2018-12-14 2020-06-24 전자부품연구원 통합선박항해지원시스템에서 가상화 기반 다중 디스플레이 전환 방법
KR102349584B1 (ko) * 2018-12-14 2022-01-11 한국전자기술연구원 통합선박항해지원시스템에서 가상화 기반 다중 디스플레이 전환 방법

Similar Documents

Publication Publication Date Title
US8019861B2 (en) Speculative virtual machine resource scheduling
US7313793B2 (en) Method for forking or migrating a virtual machine
US9239765B2 (en) Application triggered state migration via hypervisor
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US8230204B2 (en) Migration of system images
US20180139100A1 (en) Storage-aware dynamic placement of virtual machines
US20140373010A1 (en) Intelligent resource management for virtual machines
EP2446357A1 (en) High-throughput computing in a hybrid computing environment
KR20040028805A (ko) 프로세서로 산출하기 위한 시스템
Soni et al. Comparative study of live virtual machine migration techniques in cloud
Sharma et al. A three phase optimization method for precopy based VM live migration
US20200341789A1 (en) Containerized workload scheduling
US9141441B2 (en) Managing computing resources through aggregated core management
US20210303327A1 (en) Gpu-remoting latency aware virtual machine migration
US8429218B2 (en) Process restart on a compute node
KR101809380B1 (ko) 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치
Kaur et al. A survey of virtual machine migration techniques in cloud computing
Blagodurov et al. Towards the contention aware scheduling in hpc cluster environment
KR20190109638A (ko) 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
Ally Analysis of Wasted Computing Resources in Data Centers in terms of CPU, RAM and HDD
Butrico et al. Specialized execution environments
Lin et al. Improving GPOS real-time responsiveness using vCPU migration in an embedded multicore virtualization platform
Elder et al. vSphere High Performance Cookbook
Lee et al. A dynamic block device reconfiguration algorithm in virtual MapReduce cluster
Roseline et al. An approach for efficient capacity management in a cloud

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant