KR101564293B1 - 장치 가상화 방법 및 장치 - Google Patents

장치 가상화 방법 및 장치 Download PDF

Info

Publication number
KR101564293B1
KR101564293B1 KR1020130117873A KR20130117873A KR101564293B1 KR 101564293 B1 KR101564293 B1 KR 101564293B1 KR 1020130117873 A KR1020130117873 A KR 1020130117873A KR 20130117873 A KR20130117873 A KR 20130117873A KR 101564293 B1 KR101564293 B1 KR 101564293B1
Authority
KR
South Korea
Prior art keywords
address space
application program
access
device driver
composite
Prior art date
Application number
KR1020130117873A
Other languages
English (en)
Other versions
KR20150039377A (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 KR1020130117873A priority Critical patent/KR101564293B1/ko
Publication of KR20150039377A publication Critical patent/KR20150039377A/ko
Application granted granted Critical
Publication of KR101564293B1 publication Critical patent/KR101564293B1/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/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법 및 장치가 개시된다. 장치 가상화 장치는, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성하는 합성 주소 생성부와, 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기를 통하여 장치에 접근하도록 관리하는 장치 접근 관리부를 포함한다. 따라서, 장치 구동기가 없는 환경에서 복합적으로 구성된 메모리 주소 상에 매핑(Mapping)되어 있는 장치 구동기를 응용 프로그램이 안전하게 사용하도록 한다.

Description

장치 가상화 방법 및 장치{METHOD FOR DEVICE VIRTUALIZATION AND APPARATUS THEREFOR}
본 발명은 장치 가상화 기술에 관한 것으로, 더욱 상세하게는 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법 및 장치에 관한 것이다.
가상화 환경이란 하나의 물리적인 머신 상에서 복수 개의 가상 머신(Virtual Machine, VM)을 구동시키는 환경을 의미한다. 이러한 복수 개의 가상 머신은 호스트(Host) 머신에서 관리가 되는데, 호스트 머신에서 구동되는 호스트 운영 체제는 기존의 장치 구동기를 통하여 직접 장치를 연결해서 사용할 수 있으며 가상 머신들을 제어 및 관리 모듈 등이 포함된다.
가상화 환경은 주어진 물리 머신의 중앙처리장치, 주기억장치 등의 자원에 대한 사용률을 높일 수 있으며, 각 가상 머신들은 논리적으로 완전히 분리가 되어 있어 다양한 운영 체제에서 구동시킬 수 있다는 장점이 있다. 이에, 기업 컴퓨팅 환경에서 개인 사용자 컴퓨팅 환경까지 두루 사용되고 있다.
가상화 기술은 그 구현의 형태에 따라 구분될 수 있는데, 운영 체제 기반 가상화 기술은 운영 체제를 공유한 상태로 가상 머신을 지원하는 기술로, 각 가상 머신들 간의 수행 문맥(context)을 위한 공간만 각자 유지하며, 운영 체제의 많은 부분은 공유하고 있는 형태를 가진다. 운영 체제 기반의 가상화 기술은 가상화 오버헤드가 시스템 가상화 기술보다 낮아 고성능으로 구동될 수 있지만, 각 가상 머신들 간에 공유되고 있는 부분이 많아 보안성에 대해서는 취약한 문제점이 있다.
시스템 가상화 기술은 운영 체제 보다 하위 단계에서 가상화를 지원하는 기술로, 운영 체제 보다 하위 단계에서 하이퍼바이져(또는 Virtual Machine Monitor: VMM)라는 시스템이 구동되어 가상화를 지원하게 된다. 여기서, 하이퍼바이져 위에서 구동되는 가상 머신들은 완벽히 고립되어 서로 간에 영향을 미치지 않는다.
그러나 시스템 가상화 환경에서 주변 I/O 장치에 대한 가상화 기술은 여전히 부족한 실정이다. 일반적으로 I/O 장치들은 하나의 물리 머신에서 구동되는 것을 가정하고 제작되기 때문에, 장치 구동기(Device Driver) 역시 하나의 운영 체제에서 구동되는 것을 가정하고 제작된다. 따라서 호스트 운영 체제에서 주변 I/O 장치를 독점적으로 사용하고 있으면, 가상 머신에서 구동되는 게스트 운영 체제에서는 이러한 I/O 장치를 사용할 수 없게 된다.
이를 해결하기 위해서 일반적으로, 실제 장치의 기능을 소프트웨어적으로 흉내내는 장치 에뮬레이션(Device Emulation) 방식이 많이 사용되며, 호스트 운영 체제에서 해당 장치 에뮬레이션을 처리시키는 구조로 구현이 된다. 그러나 이러한 방식은 장치의 모든 기능들이 소프트웨어적으로 구현되기 때문에 성능이 느려진다는 단점을 가진다.
또 다른 방법으로는, 게스트 운영 체제의 장치 구동기를 수정하여, 호스트 운영 체제의 장치 구동기와 게스트 운영 체제의 장치 구동기를 연동시키는 방법이 있다. 이 방식은 매번 I/O 가 발생할 때마다 호스트-게스트 운영 체제의 장치 구동기 간의 인터페이싱에 오버헤드가 발생하고, 장치 구동기가 수정되어야 하는 문제점을 가지며, 대부분의 장치 구동기는 장치 제작사에서 소스코드를 배포하지 않기 때문에 장치 구동기의 수정이 쉽지 않다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 가상화 장치는, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성하는 합성 주소 생성부와, 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기를 통하여 장치에 접근하도록 관리하는 장치 접근 관리부를 포함한다.
여기에서, 상기 합성 주소 생성부는, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다.
여기에서, 상기 합성 주소 생성부는, 응용 프로그램 동작 환경인 운영 체제마다 합성 주소 공간을 생성할 수 있다.
여기에서, 상기 장치 접근 관리부는, 응용 프로그램 동작 환경인 운영 체제마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치에 대한 접근을 관리할 수 있다.
여기에서, 상기 장치 접근 관리부는, 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있다.
여기에서, 상기 장치 접근 관리부는, 합성 주소 공간 각각에 포함된 장치 구동기가 생성한 데이터를 상호 공유할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 가상화 방법은, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 획득하는 단계와, 장치 주소 공간을 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간과 매핑하여 합성 주소 공간을 생성하는 단계와, 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기를 통하여 장치에 접근하도록 관리하는 단계를 포함한다.
상기와 같은 본 발명에 따른 장치 가상화 방법 및 장치는, 장치 구동기가 없는 환경에서 복합적으로 구성된 메모리 주소 상에 매핑(Mapping)되어 있는 장치 구동기를 응용 프로그램이 안전하게 사용하도록 한다.
도 1은 본 발명의 실시예에 따른 장치 가상화를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 장치 가상화를 위한 합성 주소 공간의 생성을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 장치 가상화를 통한 장치에 대한 접근을 관리하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시예에 따른 장치 가상화 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
먼저, 본 출원에서 사용되는 용어를 정의하면 다음과 같다.
가상 머신(VM: Virtual Machine)은 실제 컴퓨터의 효율적이고 고립된 복제물로 정의될 수 있으며, 시스템 가상 머신과 프로세스 가상 머신으로 구별될 수 있다.
시스템 가상 머신은 하드웨어 가상 머신이라고도 하는데, 각 운영 체제를 실행하는 가상 머신 사이의 기초가 되는 물리 컴퓨터를 다중화하여 구현된다.
프로세스 가상 머신은 응용 프로그램 가상 머신이라고도 하는데, 운영 체제 안에서 일반 응용 프로그램과 가상 프로그램을 수행하는 프로세서로 구현될 수 있다.
하이퍼바이져(hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 논리적 플랫폼(platform)을 말하는 것으로, 가상화 머신 모니터(VMML: Virtual Machine Monitor)라고도 부른다.
주소 공간은 일반적으로 운영 체제에서 사용하는 프로세스의 주소 공간을 포함할 수 있고, 해당 공간은 유저 주소 영역과 커널 주소 영역으로 분리될 수 있다.
도 1은 본 발명의 실시예에 따른 장치 가상화를 설명하기 위한 개념도이다.
도 1을 참조하면, 운영 체제(210, 220)는 응용 프로그램이 동작하는 환경을 의미할 수 있으며, 응용 프로그램이 동작하는 환경은 단일 컴퓨팅 환경 및 가상화 환경의 게스트 운영 체제 환경을 포함할 수 있다.
장치 구동기 동작 운영 체제(110)는 장치 구동기(111)가 동작하는 환경을 의미할 수 있으며, 장치 구동기(111)가 동작하는 환경은 단일 컴퓨팅 환경 및 가상화 환경의 호스트 운영 체제 환경을 포함하며, 장치 구동기(111)만 동작하는 제 3의 환경을 포함할 수 있다.
또한, 합성 주소 공간은 합성 주소 생성부(10)에 의해 생성된 가상화된 주소 공간을 의미할 수 있다.
본 발명의 실시예에 따르면, 장치 구동기(111)를 구비하고 있지 않은 운영 체제(210, 220)가 가상화된 주소 공간인 합성 주소 공간에 기반하여 장치(40)에 접근하여 응용 프로그램을 실행시킬 수 있다.
본 발명의 실시예에 따른 장치 가상화 장치는 합성 주소 생성부(10) 및 장치 접근 관리부(20)를 포함한다.
합성 주소 생성부(10)는 장치(40)를 구동시키는 장치 구동기(111)가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제(210, 220)에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다.
또한, 장치 접근 관리부(20)는 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기(111)를 통하여 장치(40)에 접근하도록 관리할 수 있다.
상세하게는, 제1 응용 프로그램(211)과 제2 응용 프로그램(221)이 각각 동작하는 환경인 제1 운영 체제(210) 및 제2 운영 체제(220)가 장치 구동기(111)를 구비하고 있지 않은 경우, 장치 구동기(111)를 가상화하여 장치(40)에 접근함으로써 응용 프로그램을 효과적으로 실행시킬 수 있다. 여기서, 각각의 운영 체제는 하이퍼바이져(30)에서 구동되는 가상 머신에 설치되어 동작할 수 있다.
합성 주소 생성부(10)는 응용 프로그램이 구동되거나 응용 프로그램이 장치(40)에 대한 접근을 요청할 경우 합성 주소 공간을 생성할 수 있다. 예를 들어, 합성 주소 생성부(10)는 응용 프로그램이 동작하는 운영 체제마다 합성 주소 공간을 생성할 수 있다. 즉, 제1 합성 주소 공간(310)은 제1 운영 체제(210)를 위하여 가상화된 주소 공간이고, 제2 합성 주소 공간(320)은 제2 운영 체제(220)를 위하여 가상화된 주소 공간일 수 있다.
상세하게는, 합성 주소 생성부(10)에 의해 생성되는 각각의 합성 주소 공간은 장치 구동기 동작 운영 체제(110) 내에 있는 장치 구동기(111)가 적재되어 있는 메모리 공간과, 운영 체제(210, 220) 내에 있는 응용 프로그램이 적재되어 있는 메모리 공간을 매핑한 구조를 가질 수 있다.
한편, 합성 주소 생성부(10)는 장치 구동기(111)가 포함된 장치 주소 공간과 응용 프로그램을 포함하는 응용 프로그램 주소 공간을 합성해주는 주체로써, 가상 머신의 메모리 관리 모듈과 연계하여 메모리의 구성을 변형시킬 수 있다. 합성 주소 생성부(10)는 가상 머신 외부에서 동작될 수 있으며, 외부의 모듈과 연계하여 가상 머신 내부에서도 동작될 수 있다.
예를 들어, 합성 주소 생성부(10)는 제1 운영 체제(210)에서 동작하는 제1 응용 프로그램(211)의 실행을 위하여 제1 응용 프로그램 주소 공간(311)과 제1 장치 주소 공간(312)을 포함하는 제1 합성 주소 공간(310)을 생성할 수 있다. 여기서, 제1 응용 프로그램 주소 공간(311)은 제1 운영 체제(210)내에 적재되어 있는 제1 응용 프로그램(211)을 포함할 수 있으며, 제1 장치 주소 공간(312)은 장치 구동기 동작 운영 체제(110)에 적재되어 있는 장치 구동기(111)를 포함할 수 있다.
또한, 합성 주소 생성부(10)는 제2 운영 체제(220)에서 동작하는 제2 응용 프로그램(221)의 실행을 위하여 제2 응용 프로그램 주소 공간(321)과 제2 장치 주소 공간(322)을 포함하는 제2 합성 주소 공간(320)을 생성할 수 있다. 여기서, 제2 응용 프로그램 주소 공간(321)은 제2 운영 체제(220)내에 적재되어 있는 제2 응용 프로그램(221)을 포함할 수 있으며, 제2 장치 주소 공간(322)은 장치 구동기 동작 운영 체제(110)에 적재되어 있는 장치 구동기(111)를 포함할 수 있다.
장치 접근 관리부(20)는 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다.
또한, 장치 접근 관리부(20)는 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있으며, 합성 주소 공간 각각에 포함된 장치 구동기(111)가 생성한 데이터를 상호 공유하도록 할 수도 있다.
예를 들어, 합성 주소 공간에 존재하는 장치 주소 공간에 포함된 장치 구동기(111)는 개별적인 가상 접근 영역에 기반하여 독립적으로 관리함으로써, 서로 다른 운영 체제들간 발생 가능한 간섭 문제를 해결할 수 있다. 여기서, 장치 접근 관리부(20)는 개별적인 수행 문맥(context)를 관리함으로써 장치(40)에 대한 접근을 관리할 수 있다.
다시 말해, 장치(40)에 대한 접근이 시도될 때, 장치 접근 관리부(20)는 복수 개의 가상 머신에서 합성된 합성 주소 공간을 이용하여, 각 가상 머신마다 인스턴스를 생성함으로써 각 가상 머신별로 시점(view)를 제공할 수 있다. 이러한 경우, 각 가상 머신들은 자신의 수행 문맥(context)를 가질 수 있다. 예를 들어, 하드디스크 장치를 두 개의 가상 머신에서 접근하는 상황에서, 제1 가상 머신에서 /a.txt 파일을 생성하여도, 제2 가상 머신에서는 /a.txt가 보이지 않게 된다.
보다 상세하게는, 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근과, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근을 분리하여 관리할 수 있다. 이는 시분할 처리 또는 스케줄링 등의 기법을 통하여 가능할 수 있다.
또한, 장치 접근 관리부(20)는 장치(40)의 정책에 따라 공유를 지원할 수 있으며 이러한 경우, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)가 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)가 생성한 데이터에 접근할 수 있다. 즉, 공유 조건에 따라 하나의 인스턴스를 공유하여 사용할 수도 있다. 예를 들어, 제 1 가상 머신에서 /a.txt 파일을 생성하면, 제 2 가상 머신에서도 /a.txt 파일이 생성되어 보이게 될 수 있다.
또한, 본 발명의 실시예에 따른 합성 주소 생성부(10)와 장치 접근 관리부(20)는 하이퍼바이져(30)와 가상 머신들 사이의 계층에서 구현되는 것에 한정되는 것은 아니며, 시스템의 디자인 및 효율성에 따라 자유로운 계층에서 구현이 가능하다. 예컨대, 합성 주소 생성부(10)와 장치 접근 관리부(20)는 하이퍼바이져(30) 내부에서도 구현될 수 있다.
도 2는 본 발명의 실시예에 따른 장치 가상화를 위한 합성 주소 공간의 생성을 설명하기 위한 개념도이다.
도 2을 참조하면, 합성 주소 공간은 응용 프로그램 주소 공간과 장치 주소 공간을 포함하여 구성될 수 있다.
장치 구동기 동작 운영 체제(110)의 메모리 영역에 포함된 장치 구동기(111)가 적재된 주소 공간과 응용 프로그램 동작 운영 체제(210, 220)의 메모리 영역에 포함된 응용 프로그램이 적재된 주소 공간이 합성 주소 공간에 매핑될 수 있다. 여기서, 장치 구동기 동작 운영 체제(110)의 메모리 영역은 단일 컴퓨팅 환경의 장치 구동기(111)가 동작되는 운영 체제의 주소 영역 및 가상화 환경에서 장치 구동기(111)가 동작되는 호스트 운영 체제의 주소 영역을 의미할 수 있으며, 응용 프로그램 동작 운영 체제(210, 220)의 메모리 영역은 가상화 환경에서 응용 프로그램이 동작되는 가상 머신 내의 게스트 운영 체제의 유저 주소 영역을 의미할 수 있다.
즉, 합성 주소 공간은 장치 구동기(111)가 동작하는 환경의 메모리 주소 공간과 실제 장치(40)를 사용하는 응용 프로그램이 동작하는 환경의 메모리 주소 공간을 포함할 수 있다.
따라서, 응용 프로그램은 합성 주소 공간에 매핑되어 있는 장치 주소 공간에 포함된 장치 구동기(111)를 통해 장치(40)에 대한 접근이 가능하다.
또한, 합성 주소 공간은 장치 구동기(111)가 적재된 주소 공간뿐만 아니라 해당 주소 공간을 포함하는 더 넓은 영역을 매핑할 수 있다. 예를 들어, 장치 구동기(111)가 적재된 주소 공간이 포함된 커널 영역 전체를 합성 주소 공간에 매핑할 수 있다. 여기서, 합성 주소 공간은 페이지 테이블 등의 수정을 통하여 구현될 수 있다.
도 3은 본 발명의 실시예에 따른 장치 가상화를 통한 장치에 대한 접근을 관리하는 방법을 설명하기 위한 개념도이다.
도 3을 참조하면, 장치 접근 관리부(20)는 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다.
예를 들어, 장치 접근 관리부(20)는 제1 합성 주소 공간(310)에 제1 가상 접근 영역을 설정하고, 제2 합성 주소 공간(320)에 제2 가상 접근 영역을 설정할 수 있으며, 제1 가상 접근 영역과 제2 가상 접근 영역을 독립적으로 관리할 수 있다.
제1 장치 주소 공간(312)에 포함된 장치 구동기(111)와 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)는 자신이 속한 가상 접근 영역에 기반하여 장치에 접근할 수 있다. 즉, 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)는 제1 가상 접근 영역 내에서 모든 동작을 수행할 수 있고, 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)는 제2 가상 접근 영역 내에서 모든 동작을 수행할 수 있다.
또한, 가상 접근 영역에 의해 합성 주소 공간들 간의 접근 제어뿐만 아니라 장치 내부에서도 접근 가능한 영역을 제한할 수 있다. 즉, 각각의 합성 주소 공간에 포함된 장치 구동기(111)는 분리된 가상 접근 영역을 통해서 장치(40)에 접근할 수 있다.
예를 들어, 하드 디스크와 같은 저장 장치에 대해 각각의 장치 구동기(111)가 접근 요청을 하는 경우, 각각의 장치 구동기(111)가 접근할 수 있는 하드디스크의 논리 블록 주소 영역을 제한적으로 구성할 수 있다.
상술한 본 발명의 실시예에 따른 장치 가상화 장치의 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
도 4는 본 발명의 실시예에 따른 장치 가상화 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 장치 가상화 방법은 장치 주소 공간을 획득하는 단계(S410), 합성 주소 공간을 생성하는 단계(S420) 및 응용 프로그램이 장치 구동기를 통하여 장치에 접근하도록 관리하는 단계(S430)를 포함한다.
본 발명의 실시예에 따른 장치 가상화 방법은 상술한 장치 가상화 장치에 의해 구현될 수 있다.
먼저, 장치 구동기 동작 운영 체제(110)내에 적재된 장치 구동기(111)의 주소 공간을 획득할 수 있다(S410). 여기서, 장치 구동기 동작 운영 체제(110)는 장치 구동기(111)가 동작하는 환경을 의미할 수 있다.
그리고, 장치(40)를 구동시키는 장치 구동기(111)가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제(210, 220)에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다(S420).
즉, 응용 프로그램이 구동되거나 응용 프로그램이 장치에 대한 접근을 요청할 경우 합성 주소 공간을 생성할 수 있다. 특히, 응용 프로그램이 동작하는 운영 체제(210, 220)마다 합성 주소 공간을 생성할 수 있다. 예를 들어, 제1 합성 주소 공간(310)은 제1 운영 체제(210)를 위하여 가상화된 주소 공간이고, 제2 합성 주소 공간(320)은 제2 운영 체제(220)를 위하여 가상화된 주소 공간일 수 있다. 여기서, 합성 주소 공간은 장치 구동기 동작 운영 체제(110) 내에 있는 장치 구동기(111)가 적재되어 있는 메모리 공간과, 운영 체제(210, 220) 내에 있는 응용 프로그램이 적재되어 있는 메모리 공간을 매핑한 구조를 가질 수 있다.
응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기(111)를 통하여 장치(40)에 접근하도록 관리할 수 있다(S430).
특히, 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다.
또한, 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있으며, 합성 주소 공간 각각에 포함된 장치 구동기(111)가 생성한 데이터를 상호 공유하도록 할 수도 있다.
예를 들어, 합성 주소 공간에 존재하는 장치 주소 공간에 포함된 장치 구동기(111)는 개별적인 가상 접근 영역에 기반하여 독립적으로 관리함으로써, 서로 다른 운영 체제들간 발생 가능한 간섭 문제를 해결할 수 있다.
상세하게는, 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근과, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근을 분리하여 관리할 수 있다. 이는 시분할 처리 또는 스케줄링 등의 기법을 통하여 가능할 수 있다.
더 나아가, 장치(40)의 정책에 따라 공유를 지원할 수 있으며 이러한 경우, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)가 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)가 생성한 데이터에 접근할 수 있다.
상술한 본 발명의 실시예에 따른 장치 가상화 방법 및 장치는 장치 구동기(111)가 탑재된 환경의 메모리 주소 공간과 응용 프로그램이 탑재된 게스트 가상 머신의 메모리 주소 공간을 복합적으로 구성하여, 장치 구동기(111)가 없는 환경에서 복합적으로 구성된 메모리 주소 상에 매핑(Mapping)되어 있는 장치 구동기(111)를 응용 프로그램이 안전하게 사용하도록 한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 합성 주소 생성부 20: 장치 접근 관리부
30: 하이퍼바이져 40: 장치
110: 장치 구동기 동작 운영 체제 111: 장치 구동기
210: 제1 운영 체제 211: 제1 응용 프로그램
220: 제2 운영 체제 221: 제2 응용 프로그램
310: 제1 합성 주소 공간 311: 제1 응용 프로그램 주소 공간
312: 제1 장치 주소 공간 320: 제2 합성 주소 공간
321: 제2 응용 프로그램 주소 공간 322: 제2 장치 주소 공간

Claims (12)

  1. 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성하는 합성 주소 생성부; 및
    상기 응용 프로그램 주소 공간에 포함된 상기 응용 프로그램이 상기 장치 주소 공간에 포함된 상기 장치 구동기를 통하여 상기 장치에 접근하도록 관리하는 장치 접근 관리부를 포함하되,
    상기 장치 접근 관리부는,
    상기 응용 프로그램 동작 환경인 운영 체제마다 생성된 상기 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리하여 상기 장치에 대한 접근을 관리하는 것을 특징으로 하는 장치 가상화 장치.
  2. 청구항 1에 있어서,
    상기 합성 주소 생성부는
    장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 상기 응용 프로그램 주소 공간을 매핑하여 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 장치.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 청구항 1에 있어서,
    상기 장치 접근 관리부는
    상기 합성 주소 공간 각각에 포함된 상기 장치 구동기가 생성한 데이터를 상호 공유할 수 있도록 하는 것을 특징으로 하는 장치 가상화 장치.
  7. 디지털 신호 처리가 가능한 장치 가상화 장치에 의해 수행되는 방법에 있어서,
    장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 획득하는 단계;
    상기 장치 주소 공간을 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간과 매핑하여 합성 주소 공간을 생성하는 단계;
    상기 응용 프로그램 주소 공간에 포함된 상기 응용 프로그램이 상기 장치 주소 공간에 포함된 상기 장치 구동기를 통하여 상기 장치에 접근하도록 관리하는 단계를 포함하되,
    상기 장치에 접근하도록 관리하는 단계는,
    상기 응용 프로그램 동작 환경인 운영 체제마다 생성된 상기 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리하여 상기 장치에 대한 접근을 관리하는 것을 특징으로 하는 장치 가상화 방법.
  8. 청구항 7에 있어서,
    상기 합성 주소 공간을 생성하는 단계는
    장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 상기 응용 프로그램 주소 공간을 매핑하여 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 청구항 7에 있어서,
    상기 장치에 접근하도록 관리하는 단계는
    상기 합성 주소 공간 각각에 포함된 상기 장치 구동기가 생성한 데이터를 상호 공유할 수 있도록 하는 것을 특징으로 하는 장치 가상화 방법.
KR1020130117873A 2013-10-02 2013-10-02 장치 가상화 방법 및 장치 KR101564293B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130117873A KR101564293B1 (ko) 2013-10-02 2013-10-02 장치 가상화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130117873A KR101564293B1 (ko) 2013-10-02 2013-10-02 장치 가상화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150039377A KR20150039377A (ko) 2015-04-10
KR101564293B1 true KR101564293B1 (ko) 2015-10-29

Family

ID=53029694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130117873A KR101564293B1 (ko) 2013-10-02 2013-10-02 장치 가상화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101564293B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102473665B1 (ko) 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
KR102389028B1 (ko) 2016-01-04 2022-04-22 한국전자통신연구원 가상 데스크탑 간의 데이터 고속 전송 장치 및 방법
KR102199509B1 (ko) * 2019-10-16 2021-01-06 숭실대학교산학협력단 가상화 시스템에서 메모리를 공유하기 위한 메모리 공유 시스템, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101220072B1 (ko) * 2004-12-30 2013-01-08 마이크로소프트 코포레이션 그래픽 서브 시스템들을 가상화하기 위한 시스템들 및방법들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101220072B1 (ko) * 2004-12-30 2013-01-08 마이크로소프트 코포레이션 그래픽 서브 시스템들을 가상화하기 위한 시스템들 및방법들

Also Published As

Publication number Publication date
KR20150039377A (ko) 2015-04-10

Similar Documents

Publication Publication Date Title
US11868792B2 (en) Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
KR101081907B1 (ko) 가상화 장치
US20060184938A1 (en) Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US9207939B2 (en) Performing shadowing function by virtual machine manager in two-level virtual machine environment
US8775715B2 (en) Protection of data from virtual machine clones via paravirtualization
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
NO340567B1 (no) Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US20170277632A1 (en) Virtual computer system control method and virtual computer system
KR101564293B1 (ko) 장치 가상화 방법 및 장치
KR101077908B1 (ko) 서버 가상화 장치
US8161477B2 (en) Pluggable extensions to virtual machine monitors
WO2018164889A1 (en) Managing guest partition access to physical devices
Kulkarni et al. Virtualization technology: A leading edge
US8402191B2 (en) Computing element virtualization
US10241821B2 (en) Interrupt generated random number generator states
US8291415B2 (en) Paging instruction for a virtualization engine to local storage
JP4548514B2 (ja) 仮想計算機システムの制御方法
JP4292220B2 (ja) 仮想計算機システム
Danisevskis Accelerated secure GUI for virtualized mobile handsets
Zabaljauregui Grid operating systems/middlewares and new virtualization techniques
Sultan et al. Managing IT resources the smart way: The case for virtualization

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: 20181113

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 5