KR101678607B1 - 민감명령어 지연처리 방법 및 이를 수행하는 장치 - Google Patents

민감명령어 지연처리 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR101678607B1
KR101678607B1 KR1020150167213A KR20150167213A KR101678607B1 KR 101678607 B1 KR101678607 B1 KR 101678607B1 KR 1020150167213 A KR1020150167213 A KR 1020150167213A KR 20150167213 A KR20150167213 A KR 20150167213A KR 101678607 B1 KR101678607 B1 KR 101678607B1
Authority
KR
South Korea
Prior art keywords
sensitive
instruction
execution
operating systems
command
Prior art date
Application number
KR1020150167213A
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 KR1020150167213A priority Critical patent/KR101678607B1/ko
Application granted granted Critical
Publication of KR101678607B1 publication Critical patent/KR101678607B1/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/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치에 관한 것으로, 컴퓨터 실행 가능한 민감명령어 지연처리 방법은 가상머신에서 동작되고 적어도 하나의 태스크를 각각 실행시키는 복수의 운영체제들과 연동되며, 컴퓨팅 장치에서 실행되는, 하이퍼바이저에서 수행되는 민감명령어 지연처리 방법에 있어서, (a) 상기 복수의 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하는 단계, (b) 상기 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하는 단계 및 (c) 상기 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 단계를 포함한다.

Description

민감명령어 지연처리 방법 및 이를 수행하는 장치{METHOD OF PROCESSING A SENSITIVE INSTRUCTION BY DELAYING A PROCESSING TIME AND APPARATUS PERFORMING THE SAME}
본 발명은 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치에 관한 것으로, 보다 상세하게는, 복수의 운영체제들이 동시에 구동되는 가상화 시스템에서 민감명령어의 처리 시점을 변경하여 각 운영체제의 충돌로 인해 발생할 수 있는 시스템 실패(failure)를 방지하고 가상화 시스템의 전체적인 실시간 실행 성능을 향상시킬 수 있는 민감명령어 지연처리 방법 및 이를 수행하는 장치에 관한 것이다.
시스템 가상화 기술은 컴퓨팅 시스템의 물리적 하부구조를 가상화하여 제공하는 기술을 의미하고, 가상화 시스템은 이를 통해 가상화된 컴퓨팅 시스템을 의미한다. 컴퓨팅 시스템의 가상화는 컴퓨팅 시스템이 받아들일 수 있는 기계어 수준의 인터페이스인 명령어-셋-구조(ISA, Instruction Set Architecture)를 가상화하는 작업에서부터 시작된다.
컴퓨팅 시스템의 가상화 기법은 에뮬레이션 기법과 유사하지만, 일부 명령어들은 직접 하드웨어에서 동작한다는 점에서 에뮬레이션 기법과 다르다. 에뮬레이션은 하드웨어의 모든 동작을 소프트웨어로 구현하는 반면, 가상화는 일부 명령어에 대해서만 에뮬레이션을 적용하고, 이외의 명령어들은 에뮬레이션 없이 하드웨어를 통해 직접 실행을 허용함으로써 성능 저하를 막는다.
즉, 에뮬레이션과 달리 가상화 기법은 일부 명령어에 대해서만 에뮬레이션을 함으로써, 각 가상머신의 상태를 독립적으로 유지하면서도 성능 저하를 최소화 할 수 있다.
한국공개특허 제10-2011-0050230호는 가상화 시스템 및 그것의 명령어 실행 방법에 관한 것으로, 하드웨어, 상기 하드웨어를 가상화시키는 가상 머신 모니터, 상기 가상화된 하드웨어를 이용하여 운영되는 사용자 도메인 및 상기 가상화된 하드웨어를 이용하여 운영되고 상기 사용자 도메인을 관리하는 루트 도메인을 포함한다. 상기 가상 머신 모니터는 상기 사용자 도메인의 실행 동작을 실시간으로 분석하고 상기 분석된 실행 정보를 상기 루트 도메인에 저장하여 실시간으로 운영체제 및 응용 프로그램의 실행 동작을 분석할 수 있다.
한국공개특허 제10-2011-0050230호(2011.05.13)
본 발명의 일 실시예는 복수의 운영체제들이 동시에 구동되는 가상화 시스템에서 민감명령어의 처리 시점을 변경할 수 있는 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치를 제공하고자 한다.
본 발명의 일 실시예는 가상화 시스템에서 민감명령어를 처리해야 하는 시점을 결정할 수 있는 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치를 제공하고자 한다.
본 발명의 일 실시예는 가상화 시스템에서 각 운영체제의 충돌로 인해 발생할 수 있는 시스템 실패(failure)를 방지하고 가상화 시스템의 전체적인 실시간 실행 성능을 향상시킬 수 있는 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치를 제공하고자 한다.
실시예들 중에서, 컴퓨터 실행 가능한 민감명령어 지연처리 방법은 가상머신에서 동작되고 적어도 하나의 태스크를 각각 실행시키는 복수의 운영체제들과 연동되며, 컴퓨팅 장치에서 실행되는, 하이퍼바이저에서 수행되는 민감명령어 지연처리 방법에 있어서, (a) 상기 복수의 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하는 단계, (b) 상기 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하는 단계 및 (c) 상기 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 단계를 포함한다.
일 실시예에서, 상기 (a) 단계는 상기 적어도 하나의 태스크의 실행코드로부터 배타적인 리소스 사용과 연관된 민감명령어를 검색하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (a) 단계는 상기 검색된 민감명령어의 실행환경을 분석하여 상기 검색된 민감명령어의 실행시점 및 실행시간을 결정하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는 상기 민감명령어 처리정보에 있는 민감명령어의 종류, 실행시점 및 실행시간을 기초로 상기 성능지연구간을 추정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 결정된 성능지연구간에 있는 민감명령어들 중 지연대상 민감명령어(들)에 관한 민감명령어 예약수행리스트를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 민감명령어 예약수행리스트에 해당 지연대상 민감명령어의 예약 실행시점을 저장하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 예약 실행시점을 기초로 타이머를 생성하여 해당 타이머 인터럽트를 수신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 결정된 성능지연구간에 있는 민감명령어들에 관한 우선순위를 결정하고 상기 우선순위 순서대로 상기 민감명령어들이 실행될 수 있도록 해당 태스크의 실행코드에서 현재 명령어와 해당 민감명령어 사이에 실행지연 명령어를 삽입하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 삽입 후 새로운 성능지연구간이 발생하지 않을 때까지 상기 (a) 단계 내지 상기 (c) 단계를 반복하는 단계를 더 포함할 수 있다.
실시예들 중에서, 민감명령어 지연처리 장치는 가상머신에서 동작되고 적어도 하나의 태스크를 각각 실행시키는 복수의 운영체제들과 연동되는 하이퍼바이저를 실행하는 하이퍼바이저 실행부를 포함하고, 상기 하이퍼바이저 실행부는 (i) 상기 복수의 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하고, 상기 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하는 민감명령어처리시점 분석모듈 및 (ii) 상기 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 민감명령어 처리시점 결정모듈을 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치는 복수의 운영체제들이 동시에 구동되는 가상화 시스템에서 민감명령어의 처리 시점을 변경할 수 있는 기능을 제공할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치는 운영체제들이 가지는 우선 순위와 해당 미감명령어의 시간 제약 등을 고려하여 민감명령어를 처리해야 하는 시점을 결정할 수 있는 기능을 제공할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 민감명령어 지연처리 방법 및 이를 수행하는 장치는 가상화 시스템에서 각 운영체제의 충돌로 인해 발생할 수 있는 시스템 실패(failure)를 방지하고 가상화 시스템의 전체적인 실시간 실행 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 개념적 구조를 설명하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 민감명령어 지연처리 장치의 구조를 설명하는 블록도이다.
도 3은 도 2에 있는 하이퍼바이저 실행부의 구성을 설명하는 블록도이다.
도 4는 민감명령어 예약수행리스트의 일 예를 나타내는 도면이다.
도 5는 도 2에 있는 민감명령어 지연처리 장치의 전체 동작을 설명하는 흐름도이다.
도 6은 도 5의 S510 단계를 설명하는 도면이다.
도 7은 도 5에 S530 단계를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 개념적 구조를 설명하는 블록도이다.
도 1을 참조하면, 가상화 시스템은 하드웨어(110), 하이퍼바이저(Hypervisor)(120) 및 게스트 운영체제(Operating System)(130)를 포함한다.
하드웨어(110)는 컴퓨팅 시스템의 물리적 하부구조에 해당한다. 하이퍼바이저(120)는 하드웨어(110)를 가상화하여 복수의 게스트 운영체제를 동시에 실행하기 위한 논리적 플랫폼(platform)이다. 하이퍼바이저(120)는 가상화 머신 모니터(VMM, Virtual Machine Monitor)라고도 불린다. 하이퍼바이저(120)는 가상 머신(VM, Virtual Machine)에서 동작되고 태스크(task)를 실행시키는 복수의 게스트 운영체제들과 연동된다.
하이퍼바이저(120) 상에는 적어도 하나 이상의 게스트 운영체제(130)가 실행될 수 있다. 게스트 운영체제(130)들은 하이퍼바이저(120)가 제공하는 명령어-셋-구조(ISA)를 이용하여 구동되며, 각각 적어도 하나의 태스크(task)를 실행시킨다. 하이퍼바이저(120)가 제공하는 명령어-셋-구조(ISA)를 이용하여 각 게스트 운영체제(130)들은 완벽히 분리되며, 게스트 운영체제(130)들 각각이 상이한 운영체제에 해당하더라도 동작에 서로 영향을 주지 않는다.
여기에서, 하이퍼바이저(120)는 네이티브(native) 하이퍼바이저 또는 호스티드(hosted) 하이퍼바이저에 해당할 수 있다. 네이티브 하이퍼바이저는 호스트 운영체제를 사용하지 않고 하드웨어(110)에서 직접 실행되며, 복수의 게스트 운영체제(130)들은 하드웨어(110)에서 2번째 수준으로 실행된다. 네이티브 하이퍼바이저를 통해 구현되는 가상화 시스템의 경우, 게스트 운영체제(130)의 커널이 하이퍼바이저(120)에 맞게 수정되는 지 여부에 따라 전가상화(Full-Virtualization) 시스템 또는 반가상화(Para-Virtualization) 시스템으로 구분될 수 있다.
호스티드 하이퍼바이저는 하드웨어(110) 상의 호스트 운영체제에서 실행되며 가상 머신(VM) 내부에서 동작되는 게스트 운영체제(130)들은 하드웨어(110)에서 3번째 수준으로 실행된다.
도 2는 본 발명의 일 실시예에 따른 민감명령어 지연처리 장치의 구조를 설명하는 블록도이다.
도 2를 참조하면, 민감명령어 지연처리 장치는 하드웨어(110) 및 하이퍼바이저(120)를 포함하며, 하이퍼바이저(120)는 하이퍼바이저 실행부(122)를 포함한다.
하이퍼바이저(120) 상에는 태스크(task)를 실행시키는 적어도 하나 이상의 게스트 운영체제가 실행될 수 있다. 각 게스트 운영체제는 하드웨어(110)를 통해 실행시킬 워크로드(workload)(210)를 가지며, 각 워크로드(210)는 적어도 하나의 태스크로 구성된다. 예를 들어, 도 2에서 제1 게스트 운영체제는 태스크 1, 태스크 2 및 태스크 3으로 구성된 워크로드 1(210a)을 가질 수 있다.
하이퍼바이저 실행부(122)는 복수의 게스트 운영체제들 각각에 있는 워크로드에 포함된 적어도 하나의 태스크를 분석하여 민감명령어(Sensitive Instruction) 처리정보를 생성한다. 일 실시예에서, 민감명령어는 제어-민감명령어(Control-Sensitive Instruction)와 동작-민감명령어(Behavior-Sensitive Instruction)를 포함할 수 있다.
제어-민감명령어는 가상메모리의 기저 주소 등을 변경하는 명령어 등 중앙처리장치(CPU)의 주요한 상태(또는, 레지스터 값)를 변경하는 명령어를 포함한다. 예를 들어, 특권 레벨을 변경하거나 가상메모리의 기저 주소를 변경하는 명령어는 CPU의 상태를 변경하는 명령어이므로 제어-민감 명령어에 해당한다.
동작-민감명령어는 중앙처리장치(CPU) 상태에 따라 다른 동작을 하는 명령어를 포함한다. 예를 들어, 메모리 읽기/쓰기는 가상 주소 공간이 변경되면, 물리 메모리의 서로 다른 주소에 접근하게 되므로 동작-민감 명령어에 해당한다.
하이퍼바이저 실행부(122)는 생성된 민감명령어 처리정보를 기초로 복수의 게스트 운영체제들 간의 성능지연구간을 결정하고 성능지연구간과 연관된 해당 게스트 운영체제에서 수행되는 민감명령어의 실행시점을 변경한다. 예를 들어, 하이퍼바이저 실행부(122)는 성능지연구간과 연관된 해당 게스트 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시킬 수 있다.
하이퍼바이저 실행부(122)는 게스트 운영체제들의 우선 순위와 해당 민감명령어의 시간 제약을 고려하여 게스트 운영체제가 호출하는 민감명령어의 실행시점을 변경하고, 하이퍼바이저(120)는 변경된 실행시점에 따라 해당 민감명령어를 실행한다. 따라서, 하이퍼바이저(120)는 각 게스트 운영체제의 충돌로 인해 발생할 수 있는 시스템 실패를 방지하고 가상화 시스템의 전체적인 실시간 실행 성능을 향상시킬 수 있다.
도 3은 도 2에 있는 하이퍼바이저 실행부의 구성을 설명하는 블록도이다.
도 3을 참조하면, 하이퍼바이저 실행부(122)는 민감명령어 처리시점 분석모듈(310), 민감명령어 처리시점 결정모듈(320), 민감명령어 예약수행 리스트 저장모듈(330) 및 타이머 모듈(340)을 포함하고, 민감명령어 처리시점 분석모듈(310)은 민감명령어 정보 수집모듈(312) 및 성능 분석모듈(314)을 포함한다.
민감명령어 처리시점 분석모듈(310)은 복수의 게스트 운영체제들 각각에 있는 워크로드에 포함된 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하고, 생성된 민감명령어 처리정보를 기초로 복수의 게스트 운영체제들 간의 성능지연구간을 결정한다. 일 실시예에서, 민감명령어 처리정보는 민감명령어의 종류, 실행시점(또는, 호출시점) 및 실행시간을 포함할 수 있다.
민감명령어 정보 수집모듈(312)은 적어도 하나의 태스크를 실행코드 수준에서 분석하여 각 태스크들에 포함된 민감명령어를 검색하고, 검색된 민감명령어를 기초로 해당 민감명령어의 종류, 실행시점(또는, 호출시점) 및 실행시간을 추출한다. 일 실시예에서, 민감명령어 정보 수집모듈(312)은 각 태스크의 실행코드로부터 제어-민감명령어(Control-Sensitive Instruction) 및 동작-민감명령어(Behavior-Sensitive Instruction)를 검색할 수 있다. 또는, 민감명령어 정보 수집모듈(312)은 각 태스크의 실행코드로부터 배타적인 리소스 사용과 연관된 민감명령어를 검색할 수 있다.
민감명령어 정보 수집모듈(312)은 검색된 민감명령어의 실행환경을 분석하여 해당 민감명령어의 실행시점 및 실행시간을 결정한다. 예를 들어, 민감명령어 정보 수집모듈(312)은 실행코드 내 민감명령어의 위치, 게스트 운영체제의 부하상태 등을 기초로 실행시점 및 실행시간을 결정할 수 있다.
성능 분석모듈(314)은 생성된 민감명령어 처리정보를 기초로 가상화 시스템의 실시간 실행 성능을 분석하고, 복수의 게스트 운영체제들 간의 성능지연구간을 결정한다. 예를 들어, 성능 분석모듈(314)은 민감명령어 처리정보에 있는 민감명령어의 종류, 실행시점 및 실행시간을 기초로 민감명령어의 처리로 인해 워크로드 내 태스크들 사이 또는 워크로드들 사이의 충돌로 인해 실시간 실행이 이루어지지 않는 성능지연구간을 결정할 수 있다.
민감명령어 처리시점 결정모듈(320)은 민감명령어의 실행시점을 결정한다. 일 실시예에서, 민감명령어 처리시점 결정모듈(320)은 성능지연구간과 연관되어 있는지 여부와 해당 민감명령어를 호출하는 게스트 운영체제 또는 태스크의 우선순위를 기초로 민감명령어의 실행시점을 결정할 수 있다.
일 실시예에서, 민감명령어가 성능지연구간과 연관되어 있지 않은 경우, 민감명령어 처리시점 결정모듈(320)은 해당 민감명령어는 즉시 실행될 수 있도록 결정할 수 있다.
민감명령어가 성능지연구간과 연관되어 있는 경우, 예를 들어, 성능지연구간과 연관된 해당 게스트 운영체제들 중 적어도 일부에서 수행되는 민감명령어인 경우, 민감명령어 처리시점 결정모듈(320)은 해당 민감명령어의 실행시점을 변경시킨다. 일 실시예에서, 민감명령어 처리시점 결정모듈(320)은 해당 민감명령어를 호출하는 게스트 운영체제 또는 태스크의 우선순위, 또는 해당 미감명령어 자체의 우선순위 등을 기초로 해당 민감명령어의 우선순위를 결정하고 실행시점을 변경할 수 있다. 예를 들어, 민감명령어 처리시점 결정모듈(320)은 해당 민감명령어의 우선순위를 기초로 성능지연이 일어나지 않는 구간으로 변경하여 실행시점을 지연시킬 수 있다.
일 실시예에서, 민감명령어 처리시점 결정모듈(320)은 성능지연구간에 있는 민감명령어들에 관한 우선순위를 결정하고 결정된 우선순위 순서대로 민감명령어들이 실행될 수 있도록 해당 태스크의 실행코드에서 현재 명령어와 해당 민감명령어 사이에 실행지연 명령어를 삽입할 수도 있다.
일 실시예에서, 하이퍼바이저 실행부(122)는 해당 태스크의 실행코드에 실행지연 명령어를 삽입한 후, 새로운 성능지연구간이 발생하지 않을 때까지 태스크를 분석하여 민감명령어 처리정보를 생성하고, 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하며, 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 단계를 반복할 수 있다.
다시 도 3을 참조하면, 민감명령어 처리시점 결정모듈(320)은 결정된 성능지연구간에 있는 민감명령어들 중 지연대상 민감명령어(또는, 실행시점 변경대상 민감명령어)(들)에 관한 민감명령어 예약수행리스트를 생성하고, 민감명령어 예약수행 리스트 저장모듈(330)은 생성된 민감명령어 예약수행리스트를 저장한다. 일 실시예에서, 지연대상 민감명령어는 성능지연구간에 있는 미감명령어들 중 우선순위가 낮은 민감명령어에 해당할 수 있다.
도 4는 민감명령어 예약수행리스트의 일 예를 나타내는 도면이다.
민감명령어 예약수행리스트는 해당 지연대상 민감명령어의 종류, 예약 실행시점 및 실행시간을 포함한다. 일 실시예에서, 민감명령어 예약수행리스트는 연관된 게스트 운영체제의 식별자, 연관된 태스크의 식별자 및 연관된 가상머신의 식별자 가운데 적어도 하나를 더 포함할 수 있다.
다시 도 3을 참조하면, 타이머 모듈(340)은 각 지연대상 민감명령어에 대해 예약 실행시점에 도달했음을 알리는 타이머 인터럽트를 발생시킨다. 타이머 모듈(340)은 민감명령어 예약수행리스트에 포함된 각 지연대상 민감명령어에 대해 예약 실행시점을 기초로 타이머를 생성할 수 있다.
특정 지연대상 민감명령어에 대한 타이머가 종료된 경우, 타이머 모듈(340)은 타이머 인터럽트를 발생시킨다. 타이머 인터럽트가 발생한 경우, 하이퍼바이저(120)는 민감명령어 예약수행리스트를 참조하여 예약 실행시점에 도달한 지연대상 민감명령어를 확인하고, 해당 지연대상 민감명령어를 실행한다.
도 5는 도 2에 있는 민감명령어 지연처리 장치의 전체 동작을 설명하는 흐름도이다.
도 5를 참조하면, 하이퍼바이저실행부(122)는 복수의 게스트 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성한다(단계 S510). 민감명령어 처리정보는 민감명령어의 종류, 실행시점 및 실행시간을 포함할 수 있다.
도 6은 도 5의 S510 단계를 설명하는 도면이다.
도 6을 참조하면, 하이퍼바이저실행부(122)는 복수의 게스트 운영체제들 각각에 있는 적어도 하나의 태스크를 실행코드 수준으로 분석하여 민감명령어를 검색한다(단계 S612). 예를 들어, 하이퍼바이저실행부(122)의 민감명령어 정보 수집모듈(312)은 각 태스크의 실행코드로부터 제어-민감명령어 및 동작-민감명령어를 검색할 수 있다. 또는, 민감명령어 정보 수집모듈(312)은 각 태스크의 실행코드로부터 배타적인 리소스 사용과 연관된 민감명령어를 검색할 수 있다.
검색된 명령어가 민감명령어가 아닌 경우(단계 S614), 하이퍼바이저실행부(122)는 태스크를 다시 분석하여 민감명령어를 검색한다. 검색된 명령어가 민감명령어인 경우(단계 S614), 하이퍼바이저실행부(122)는 검색된 민감명령어를 기초로 해당 민감명령어의 종류, 실행시점(또는, 호출시점) 및 실행시간을 추출한다(단계 S616, S618, S620).
일 실시예에서, 하이퍼바이저실행부(122)의 민감명령어 처리시점 분석 모듈(310)은 검색된 민감명령어의 실행환경을 분석하여 해당 민감명령어의 실행시점 및 실행시간을 결정한다. 예를 들어, 민감명령어 처리시점 분석 모듈(310)은 실행코드 내 민감명령어의 위치, 게스트 운영체제의 부하상태 등을 기초로 실행시점 및 실행시간을 결정할 수 있다.
분석할 실행코드가 잔존해 있는 경우에는(단계 S622) 하이퍼바이저실행부(122)는 태스크를 다시 분석하고, 분석할 실행코드가 없는 경우에는 해당 태스크에 대한 분석을 종료한다.
다시 도 5를 참조하면, 하이퍼바이저실행부(122)는 생성된 민감명령어 처리정보를 기초로 복수의 게스트 운영체제들 간의 성능지연구간을 결정한다(단계 S520).
일 실시예에서, 하이퍼바이저실행부(122)의 민감명령어 처리시점 분석 모듈(310)은 생성된 민감명령어 처리정보를 기초로 가상화 시스템의 실시간 실행 성능을 분석하고, 복수의 게스트 운영체제들 간의 성능지연구간을 결정할 수 있다. 예를 들어, 민감명령어 처리시점 분석 모듈(310)은 민감명령어 처리정보에 있는 민감명령어의 종류, 실행시점 및 실행시간을 기초로 민감명령어의 처리로 인해 워크로드 내 태스크들 사이 또는 워크로드들 사이의 충돌로 인해 실시간 실행이 이루어지지 않는 성능지연구간을 결정할 수 있다.
하이퍼바이저실행부(122)는 민감명령어의 실행시점을 결정한다. 하이퍼바이저실행부(122)는 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 변경(또는, 지연)시킬 수 있다(단계 S530).
도 7은 도 5에 S530 단계를 설명하는 도면이다.
도 7을 참조하면, 하이퍼바이저실행부(122)의 민감명령어 처리시점 결정모듈(320)은 호출된 민감명령어가 현재 실행할 명령어인지 확인하여(단계 S712), 현재 실행할 명령어인 경우 하이퍼바이저(120)가 해당 민감명령어를 실행하도록 한다(단계 S718).
일 실시예에서, 하이퍼바이저실행부(122)의 민감명령어 처리시점 결정모듈(320)은 호출된 민감명령어가 성능지연구간과 연관되어 있지 않은 경우, 해당 민감명령어를 현재 실행할 명령어로 확인하고 해당 민감명령어를 실행할 수 있다.
성능지연구간에 있는 민감명령어들 중 지연대상 민감명령어에 해당하는 경우, 하이퍼바이저실행부(122)의 민감명령어 처리시점 결정모듈(320)은 해당 민감명령어를 민감명령어 예약수행리스트에 등록하고(단계 S714), 해당 민감명령어의 예약 실행시점을 저장한다(단계 S716).
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: 하드웨어
120: 하이퍼바이저(Hypervisor)
122: 하이퍼바이저 실행부
130: 게스트 운영체제(Operating System)
310: 민감명령어 처리시점 분석모듈
312: 민감명령어 정보 수집 모듈
314: 성능분석 모듈
320: 민감명령어 처리시점 결정모듈
330: 민감명령어 예약수행 리스트 저장모듈
340: 타이머 모듈

Claims (10)

  1. 가상머신에서 동작되고 적어도 하나의 태스크를 각각 실행시키는 복수의 운영체제들과 연동되며, 컴퓨팅 장치에서 실행되는, 하이퍼바이저에서 수행되는 민감명령어지연처리 방법에 있어서,
    (a) 상기 복수의 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하는 단계;
    (b) 상기 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하는 단계; 및
    (c) 상기 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 단계를 포함하는 민감명령어 지연처리 방법.
  2. 제1항에 있어서, 상기 (a) 단계는
    상기 적어도 하나의 태스크의 실행코드로부터 배타적인 리소스 사용과 연관된 민감명령어를 검색하는 단계를 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  3. 제2항에 있어서, 상기 (a) 단계는
    상기 검색된 민감명령어의 실행환경을 분석하여 상기 검색된 민감명령어의 실행시점 및 실행시간을 결정하는 단계를 더 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  4. 제1항에 있어서, 상기 (b) 단계는
    상기 민감명령어 처리정보에 있는 민감명령어의 종류, 실행시점 및 실행시간을 기초로 상기 성능지연구간을 추정하는 단계를 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  5. 제1항에 있어서, 상기 (c) 단계는
    상기 결정된 성능지연구간에 있는 민감명령어들 중 지연대상 민감명령어(들)에 관한 민감명령어 예약수행리스트를 생성하는 단계를 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  6. 제5항에 있어서, 상기 (c) 단계는
    상기 민감명령어 예약수행리스트에 해당 지연대상 민감명령어의 예약 실행시점을 저장하는 단계를 더 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  7. 제6항에 있어서, 상기 (c) 단계는
    상기 예약 실행시점을 기초로 타이머를 생성하여 해당 타이머 인터럽트를 수신하는 단계를 더 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  8. 제1항에 있어서, 상기 (c) 단계는
    상기 결정된 성능지연구간에 있는 민감명령어들에 관한 우선순위를 결정하고 상기 우선순위 순서대로 상기 민감명령어들이 실행될 수 있도록 해당 태스크의 실행코드에서 현재 명령어와 해당 민감명령어 사이에 실행지연 명령어를 삽입하는 단계를 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  9. 제8항에 있어서, 상기 (c) 단계는
    상기 삽입 후 새로운 성능지연구간이 발생하지 않을 때까지 상기 (a) 단계 내지 상기 (c) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 민감명령어 지연처리 방법.
  10. 가상머신에서 동작되고 적어도 하나의 태스크를 각각 실행시키는 복수의 운영체제들과 연동되는 하이퍼바이저를 실행하는 하이퍼바이저실행부를 포함하고,
    상기 하이퍼바이저실행부는 (i) 상기 복수의 운영체제들 각각에 있는 적어도 하나의 태스크를 분석하여 민감명령어 처리정보를 생성하고, 상기 민감명령어 처리정보를 기초로 상기 복수의 운영체제들 간의 성능지연구간을 결정하는 민감명령어처리시점 분석모듈 및 (ii) 상기 성능지연구간과 연관된 해당 운영체제들 중 적어도 일부에서 수행되는 민감명령어의 실행시점을 지연시키는 민감명령어 처리시점 결정모듈을 포함하는 민감명령어 지연처리 장치.
KR1020150167213A 2015-11-27 2015-11-27 민감명령어 지연처리 방법 및 이를 수행하는 장치 KR101678607B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150167213A KR101678607B1 (ko) 2015-11-27 2015-11-27 민감명령어 지연처리 방법 및 이를 수행하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150167213A KR101678607B1 (ko) 2015-11-27 2015-11-27 민감명령어 지연처리 방법 및 이를 수행하는 장치

Publications (1)

Publication Number Publication Date
KR101678607B1 true KR101678607B1 (ko) 2016-11-22

Family

ID=57540192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150167213A KR101678607B1 (ko) 2015-11-27 2015-11-27 민감명령어 지연처리 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (1) KR101678607B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846117B1 (en) * 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US11200080B1 (en) 2015-12-11 2021-12-14 Fireeye Security Holdings Us Llc Late load technique for deploying a virtualization layer underneath a running operating system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179359A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd タスク制御方法およびタスク入力制御装置
KR20110050230A (ko) 2009-11-06 2011-05-13 삼성전자주식회사 가상화 시스템 및 그것의 명령어 실행 방법
KR20130101693A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179359A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd タスク制御方法およびタスク入力制御装置
KR20110050230A (ko) 2009-11-06 2011-05-13 삼성전자주식회사 가상화 시스템 및 그것의 명령어 실행 방법
KR20130101693A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Joao 외 3명. 'Bottleneck identification and scheduling in multithreaded applications.' ASPLOS'12, Mar. 3-7, 2012, pp.223-234. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846117B1 (en) * 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US11200080B1 (en) 2015-12-11 2021-12-14 Fireeye Security Holdings Us Llc Late load technique for deploying a virtualization layer underneath a running operating system

Similar Documents

Publication Publication Date Title
US10162655B2 (en) Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
US8181176B2 (en) Uniform storage device access using partial virtual machine executing within a secure enclave session
CN107273199B (zh) 用于管理虚拟化环境中的中断的体系结构和方法
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US7209994B1 (en) Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
JP5706036B2 (ja) 複合仮想グラフィクスデバイス
US10102373B2 (en) Method and apparatus for capturing operation in a container-based virtualization system
US9158562B2 (en) Method and apparatus for supporting virtualization of loadable module
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US20160085568A1 (en) Hybrid virtualization method for interrupt controller in nested virtualization environment
US9201823B2 (en) Pessimistic interrupt affinity for devices
KR20080020639A (ko) 가상화 플랫폼, 콘텍스트 스위칭의 최적화 방법 및 머신판독 가능한 매체
US9465617B1 (en) Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode
US20060294518A1 (en) Method, apparatus and system for a lightweight virtual machine monitor
US8887139B2 (en) Virtual system and method of analyzing operation of virtual system
US9003094B2 (en) Optimistic interrupt affinity for devices
Toumassian et al. Performance measurements for hypervisors on embedded arm processors
JP2017515202A (ja) コンピュータ内の複数のスレッドをエグジットするための方法、システム、およびコンピュータ・プログラム
US10067784B2 (en) Hypervisor backdoor interface
US8291436B2 (en) Synchronization of event handlers
KR101678607B1 (ko) 민감명령어 지연처리 방법 및 이를 수행하는 장치
US11249777B2 (en) Virtual machine context management
US20110107328A1 (en) Virtual machine device and methods thereof
US20120323552A1 (en) Apparatus and Method for Hardware Initiation of Emulated Instructions
US20170364365A1 (en) Multiprocessor initialization via firmware configuration

Legal Events

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

Payment date: 20190923

Year of fee payment: 4