KR20150039377A - Method for device virtualization and apparatus therefor - Google Patents

Method for device virtualization and apparatus therefor Download PDF

Info

Publication number
KR20150039377A
KR20150039377A KR20130117873A KR20130117873A KR20150039377A KR 20150039377 A KR20150039377 A KR 20150039377A KR 20130117873 A KR20130117873 A KR 20130117873A KR 20130117873 A KR20130117873 A KR 20130117873A KR 20150039377 A KR20150039377 A KR 20150039377A
Authority
KR
South Korea
Prior art keywords
address space
application program
access
composite
operating system
Prior art date
Application number
KR20130117873A
Other languages
Korean (ko)
Other versions
KR101564293B1 (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 KR1020130117873A priority Critical patent/KR101564293B1/en
Publication of KR20150039377A publication Critical patent/KR20150039377A/en
Application granted granted Critical
Publication of KR101564293B1 publication Critical patent/KR101564293B1/en

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

Disclosed are a method for effectively executing an application program in an environment without a machine driver and a device thereof. The machine virtualization device includes: a combined address generation unit which generates a combined address space by mapping a machine address space where a machine driver for executing a machine operates and an application program address space where an application run on an operating system, which is an environment for the application program to be run, operates; and a machine access control unit which controls the application program included in the application program address space to access the machine through the machine driver included in the machine address space. Therefore, in an environment without a machine driver, an application program is able to use a machine driver mapped to the memory address, which is composed complexly, safely.

Description

장치 가상화 방법 및 장치{METHOD FOR DEVICE VIRTUALIZATION AND APPARATUS THEREFOR}[0001] METHOD FOR DEVICE VIRTUALIZATION AND APPARATUS THEREFOR [0002]

본 발명은 장치 가상화 기술에 관한 것으로, 더욱 상세하게는 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법 및 장치에 관한 것이다.The present invention relates to a device virtualization technology, and more particularly, to a method and apparatus for effectively executing an application program in an environment without a device driver.

가상화 환경이란 하나의 물리적인 머신 상에서 복수 개의 가상 머신(Virtual Machine, VM)을 구동시키는 환경을 의미한다. 이러한 복수 개의 가상 머신은 호스트(Host) 머신에서 관리가 되는데, 호스트 머신에서 구동되는 호스트 운영 체제는 기존의 장치 구동기를 통하여 직접 장치를 연결해서 사용할 수 있으며 가상 머신들을 제어 및 관리 모듈 등이 포함된다. A virtualized environment is an environment in which a plurality of virtual machines (VMs) are run on a single physical machine. The plurality of virtual machines are managed by a host machine. The host operating system running on the host machine includes a control module for controlling and managing virtual machines, which can directly use the device through a conventional device driver .

가상화 환경은 주어진 물리 머신의 중앙처리장치, 주기억장치 등의 자원에 대한 사용률을 높일 수 있으며, 각 가상 머신들은 논리적으로 완전히 분리가 되어 있어 다양한 운영 체제에서 구동시킬 수 있다는 장점이 있다. 이에, 기업 컴퓨팅 환경에서 개인 사용자 컴퓨팅 환경까지 두루 사용되고 있다. The virtualization environment can increase the utilization rate of resources such as central processing unit and main memory of a given physical machine, and each virtual machine is logically completely separated and can be operated on various operating systems. Therefore, enterprise computing environments and personal user computing environments are widely used.

가상화 기술은 그 구현의 형태에 따라 구분될 수 있는데, 운영 체제 기반 가상화 기술은 운영 체제를 공유한 상태로 가상 머신을 지원하는 기술로, 각 가상 머신들 간의 수행 문맥(context)을 위한 공간만 각자 유지하며, 운영 체제의 많은 부분은 공유하고 있는 형태를 가진다. 운영 체제 기반의 가상화 기술은 가상화 오버헤드가 시스템 가상화 기술보다 낮아 고성능으로 구동될 수 있지만, 각 가상 머신들 간에 공유되고 있는 부분이 많아 보안성에 대해서는 취약한 문제점이 있다.Virtualization technology can be classified according to the type of implementation. Operating system-based virtualization technology is a technology that supports virtual machines while sharing an operating system. Only virtualization space for each execution context between virtual machines And much of the operating system has a form that it shares. The virtualization technology based on the operating system can be run with high performance because the virtualization overhead is lower than the system virtualization technology. However, since there are many parts shared between the virtual machines, security is poor.

시스템 가상화 기술은 운영 체제 보다 하위 단계에서 가상화를 지원하는 기술로, 운영 체제 보다 하위 단계에서 하이퍼바이져(또는 Virtual Machine Monitor: VMM)라는 시스템이 구동되어 가상화를 지원하게 된다. 여기서, 하이퍼바이져 위에서 구동되는 가상 머신들은 완벽히 고립되어 서로 간에 영향을 미치지 않는다.System virtualization technology supports virtualization at a lower level than the operating system. At the lower level of the operating system, a system called a hypervisor (or VMM) is activated to support virtualization. Here, the virtual machines running on the hypervisor are completely isolated and do not affect each other.

그러나 시스템 가상화 환경에서 주변 I/O 장치에 대한 가상화 기술은 여전히 부족한 실정이다. 일반적으로 I/O 장치들은 하나의 물리 머신에서 구동되는 것을 가정하고 제작되기 때문에, 장치 구동기(Device Driver) 역시 하나의 운영 체제에서 구동되는 것을 가정하고 제작된다. 따라서 호스트 운영 체제에서 주변 I/O 장치를 독점적으로 사용하고 있으면, 가상 머신에서 구동되는 게스트 운영 체제에서는 이러한 I/O 장치를 사용할 수 없게 된다.However, in a system virtualization environment, virtualization technology for peripheral I / O devices is still lacking. Generally, since the I / O devices are manufactured assuming that they are driven by one physical machine, a device driver is also manufactured assuming that the device driver is also driven by one operating system. Therefore, if the host operating system is using the peripheral I / O device exclusively, the guest operating system running in the virtual machine will not be able to use these I / O devices.

이를 해결하기 위해서 일반적으로, 실제 장치의 기능을 소프트웨어적으로 흉내내는 장치 에뮬레이션(Device Emulation) 방식이 많이 사용되며, 호스트 운영 체제에서 해당 장치 에뮬레이션을 처리시키는 구조로 구현이 된다. 그러나 이러한 방식은 장치의 모든 기능들이 소프트웨어적으로 구현되기 때문에 성능이 느려진다는 단점을 가진다. In order to solve this problem, a device emulation method in which a function of an actual device is simulated in software is often used, and the host operating system implements the device emulation processing. However, this method has a disadvantage that performance is slowed because all the functions of the device are implemented in software.

또 다른 방법으로는, 게스트 운영 체제의 장치 구동기를 수정하여, 호스트 운영 체제의 장치 구동기와 게스트 운영 체제의 장치 구동기를 연동시키는 방법이 있다. 이 방식은 매번 I/O 가 발생할 때마다 호스트-게스트 운영 체제의 장치 구동기 간의 인터페이싱에 오버헤드가 발생하고, 장치 구동기가 수정되어야 하는 문제점을 가지며, 대부분의 장치 구동기는 장치 제작사에서 소스코드를 배포하지 않기 때문에 장치 구동기의 수정이 쉽지 않다는 문제점이 있다.Another method is to modify the device driver of the guest operating system so that the device driver of the host operating system and the device driver of the guest operating system are interlocked. This method has the problem that every time I / O occurs, there is an overhead in interfacing between the device drivers of the host-guest operating system, the device driver needs to be modified, and most device drivers distribute the source code from the device manufacturer There is a problem in that it is not easy to modify the device driver.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법을 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for effectively executing an application program in an environment without a device driver.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 장치를 제공하는데 있다.It is another object of the present invention to provide an apparatus for effectively executing an application program in an environment without a device driver.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 가상화 장치는, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성하는 합성 주소 생성부와, 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기를 통하여 장치에 접근하도록 관리하는 장치 접근 관리부를 포함한다.According to an aspect of the present invention, there is provided a device virtualization apparatus including a device address space in which a device driver for operating a device operates, an application program address in which an application program operating in an operating system, And a device access management unit for managing the application program included in the application program address space to access the device through the device driver included in the device address space.

여기에서, 상기 합성 주소 생성부는, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다. Here, the composite address generator may generate a composite address space by mapping a kernel area including a device address space in which a device driver for driving the device operates, and an application program address space.

여기에서, 상기 합성 주소 생성부는, 응용 프로그램 동작 환경인 운영 체제마다 합성 주소 공간을 생성할 수 있다. Here, the composite address generation unit may generate a composite address space for each operating system, which is an application program operating environment.

여기에서, 상기 장치 접근 관리부는, 응용 프로그램 동작 환경인 운영 체제마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치에 대한 접근을 관리할 수 있다. Here, the device access management unit may manage the access to the device by setting a virtual access area for each of the composite address spaces generated for each operating system, which is an application program operating environment.

여기에서, 상기 장치 접근 관리부는, 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있다. Here, the device access management unit may independently manage a virtual access area for each of the synthetic address spaces.

여기에서, 상기 장치 접근 관리부는, 합성 주소 공간 각각에 포함된 장치 구동기가 생성한 데이터를 상호 공유할 수 있다. Here, the device access management unit may mutually share data generated by the device drivers included in each of the composite address spaces.

상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 가상화 방법은, 장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 획득하는 단계와, 장치 주소 공간을 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간과 매핑하여 합성 주소 공간을 생성하는 단계와, 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기를 통하여 장치에 접근하도록 관리하는 단계를 포함한다.According to another aspect of the present invention, there is provided a device virtualization method comprising: acquiring a device address space in which a device driver for operating a device operates; A step of generating a composite address space by mapping an application program address space in which an application program operates, and a step of managing an application program included in the application program address space to access the device through a device driver included in the device address space .

상기와 같은 본 발명에 따른 장치 가상화 방법 및 장치는, 장치 구동기가 없는 환경에서 복합적으로 구성된 메모리 주소 상에 매핑(Mapping)되어 있는 장치 구동기를 응용 프로그램이 안전하게 사용하도록 한다.The device virtualization method and apparatus according to the present invention as described above allows an application program to safely use a device driver mapped on a memory address configured in a complex manner in an environment without a device driver.

도 1은 본 발명의 실시예에 따른 장치 가상화를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 장치 가상화를 위한 합성 주소 공간의 생성을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 장치 가상화를 통한 장치에 대한 접근을 관리하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시예에 따른 장치 가상화 방법을 설명하기 위한 흐름도이다.
1 is a conceptual diagram illustrating device virtualization according to an embodiment of the present invention.
2 is a conceptual diagram illustrating generation of a composite address space for device virtualization according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a method for managing access to a device through device virtualization according to an embodiment of the present invention.
4 is a flowchart illustrating a method of virtualizing a device according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

먼저, 본 출원에서 사용되는 용어를 정의하면 다음과 같다. First, the terms used in the present application are defined as follows.

가상 머신(VM: Virtual Machine)은 실제 컴퓨터의 효율적이고 고립된 복제물로 정의될 수 있으며, 시스템 가상 머신과 프로세스 가상 머신으로 구별될 수 있다. A virtual machine (VM) can be defined as an efficient and isolated copy of a real computer and can be distinguished as a system virtual machine and a process virtual machine.

시스템 가상 머신은 하드웨어 가상 머신이라고도 하는데, 각 운영 체제를 실행하는 가상 머신 사이의 기초가 되는 물리 컴퓨터를 다중화하여 구현된다. The system virtual machine is also called a hardware virtual machine, and it is implemented by multiplexing the physical computers that are the basis of virtual machines running each operating system.

프로세스 가상 머신은 응용 프로그램 가상 머신이라고도 하는데, 운영 체제 안에서 일반 응용 프로그램과 가상 프로그램을 수행하는 프로세서로 구현될 수 있다. A process virtual machine, also called an application virtual machine, can be implemented as a processor that runs general applications and virtual programs within the operating system.

하이퍼바이져(hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 논리적 플랫폼(platform)을 말하는 것으로, 가상화 머신 모니터(VMML: Virtual Machine Monitor)라고도 부른다.A hypervisor refers to a logical platform for simultaneously executing a plurality of operating systems in a host computer and is also referred to as a virtual machine monitor (VMML).

주소 공간은 일반적으로 운영 체제에서 사용하는 프로세스의 주소 공간을 포함할 수 있고, 해당 공간은 유저 주소 영역과 커널 주소 영역으로 분리될 수 있다.
An address space can generally include an address space of a process used by an operating system, and the space can be divided into a user address area and a kernel address area.

도 1은 본 발명의 실시예에 따른 장치 가상화를 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating device virtualization according to an embodiment of the present invention.

도 1을 참조하면, 운영 체제(210, 220)는 응용 프로그램이 동작하는 환경을 의미할 수 있으며, 응용 프로그램이 동작하는 환경은 단일 컴퓨팅 환경 및 가상화 환경의 게스트 운영 체제 환경을 포함할 수 있다.Referring to FIG. 1, the operating systems 210 and 220 may denote environments in which an application program operates, and an environment in which an application program operates may include a single computing environment and a guest operating system environment in a virtualized environment.

장치 구동기 동작 운영 체제(110)는 장치 구동기(111)가 동작하는 환경을 의미할 수 있으며, 장치 구동기(111)가 동작하는 환경은 단일 컴퓨팅 환경 및 가상화 환경의 호스트 운영 체제 환경을 포함하며, 장치 구동기(111)만 동작하는 제 3의 환경을 포함할 수 있다.Device Driver Operation The operating system 110 may refer to the environment in which the device driver 111 operates and the environment in which the device driver 111 operates comprises a single computing environment and a host operating system environment in a virtualized environment, And a third environment in which only the driver 111 operates.

또한, 합성 주소 공간은 합성 주소 생성부(10)에 의해 생성된 가상화된 주소 공간을 의미할 수 있다. In addition, the composite address space may refer to the virtualized address space generated by the composite address generation unit 10.

본 발명의 실시예에 따르면, 장치 구동기(111)를 구비하고 있지 않은 운영 체제(210, 220)가 가상화된 주소 공간인 합성 주소 공간에 기반하여 장치(40)에 접근하여 응용 프로그램을 실행시킬 수 있다. According to an embodiment of the present invention, an operating system 210, 220, which does not have a device driver 111, can access the device 40 and run an application program based on the composite address space, which is a virtualized address space have.

본 발명의 실시예에 따른 장치 가상화 장치는 합성 주소 생성부(10) 및 장치 접근 관리부(20)를 포함한다. The device virtualization apparatus according to an embodiment of the present invention includes a composite address generation unit 10 and a device access management unit 20. [

합성 주소 생성부(10)는 장치(40)를 구동시키는 장치 구동기(111)가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제(210, 220)에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다. The composite address generation unit 10 generates a composite address using a device address space in which the device driver 111 that drives the device 40 operates and an application program in which an application program running on the operating system 210, Address space can be mapped to create a composite address space.

또한, 장치 접근 관리부(20)는 응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기(111)를 통하여 장치(40)에 접근하도록 관리할 수 있다. In addition, the device access management unit 20 can manage the application program included in the application program address space to access the device 40 through the device driver 111 included in the device address space.

상세하게는, 제1 응용 프로그램(211)과 제2 응용 프로그램(221)이 각각 동작하는 환경인 제1 운영 체제(210) 및 제2 운영 체제(220)가 장치 구동기(111)를 구비하고 있지 않은 경우, 장치 구동기(111)를 가상화하여 장치(40)에 접근함으로써 응용 프로그램을 효과적으로 실행시킬 수 있다. 여기서, 각각의 운영 체제는 하이퍼바이져(30)에서 구동되는 가상 머신에 설치되어 동작할 수 있다. The first operating system 210 and the second operating system 220 which are environments in which the first application program 211 and the second application program 221 respectively operate include the device driver 111 The device driver 111 may be virtualized to access the device 40 to effectively execute the application program. Here, each operating system can be installed and operated in a virtual machine driven by the hypervisor 30.

합성 주소 생성부(10)는 응용 프로그램이 구동되거나 응용 프로그램이 장치(40)에 대한 접근을 요청할 경우 합성 주소 공간을 생성할 수 있다. 예를 들어, 합성 주소 생성부(10)는 응용 프로그램이 동작하는 운영 체제마다 합성 주소 공간을 생성할 수 있다. 즉, 제1 합성 주소 공간(310)은 제1 운영 체제(210)를 위하여 가상화된 주소 공간이고, 제2 합성 주소 공간(320)은 제2 운영 체제(220)를 위하여 가상화된 주소 공간일 수 있다. The composite address generation unit 10 may generate a composite address space when an application program is activated or an application program requests access to the device 40. For example, the composite address generation unit 10 may generate a composite address space for each operating system in which an application program operates. That is, the first synthetic address space 310 is a virtualized address space for the first operating system 210, and the second synthetic address space 320 is a virtualized address space for the second operating system 220 have.

상세하게는, 합성 주소 생성부(10)에 의해 생성되는 각각의 합성 주소 공간은 장치 구동기 동작 운영 체제(110) 내에 있는 장치 구동기(111)가 적재되어 있는 메모리 공간과, 운영 체제(210, 220) 내에 있는 응용 프로그램이 적재되어 있는 메모리 공간을 매핑한 구조를 가질 수 있다. In detail, each of the composite address spaces generated by the composite address generation unit 10 includes a memory space in which the device driver 111 in the device driver operation operating system 110 is loaded, ) Can have a structure that maps the memory space on which the application program is loaded.

한편, 합성 주소 생성부(10)는 장치 구동기(111)가 포함된 장치 주소 공간과 응용 프로그램을 포함하는 응용 프로그램 주소 공간을 합성해주는 주체로써, 가상 머신의 메모리 관리 모듈과 연계하여 메모리의 구성을 변형시킬 수 있다. 합성 주소 생성부(10)는 가상 머신 외부에서 동작될 수 있으며, 외부의 모듈과 연계하여 가상 머신 내부에서도 동작될 수 있다.The composite address generation unit 10 is a main body for synthesizing a device address space including the device driver 111 and an application program address space including an application program. The synthesized address generation unit 10, in association with the memory management module of the virtual machine, Can be deformed. The composite address generation unit 10 may operate outside the virtual machine, and may operate in the virtual machine in conjunction with an external module.

예를 들어, 합성 주소 생성부(10)는 제1 운영 체제(210)에서 동작하는 제1 응용 프로그램(211)의 실행을 위하여 제1 응용 프로그램 주소 공간(311)과 제1 장치 주소 공간(312)을 포함하는 제1 합성 주소 공간(310)을 생성할 수 있다. 여기서, 제1 응용 프로그램 주소 공간(311)은 제1 운영 체제(210)내에 적재되어 있는 제1 응용 프로그램(211)을 포함할 수 있으며, 제1 장치 주소 공간(312)은 장치 구동기 동작 운영 체제(110)에 적재되어 있는 장치 구동기(111)를 포함할 수 있다. For example, the composite address generation unit 10 may include a first application program address space 311 and a first device address space 312 for execution of a first application program 211 operating in a first operating system 210. [ (E.g., a first synthetic address space 310). Herein, the first application program address space 311 may include a first application program 211 loaded in the first operating system 210, and the first device address space 312 may include a device driver operating system And a device driver 111 mounted on the main body 110.

또한, 합성 주소 생성부(10)는 제2 운영 체제(220)에서 동작하는 제2 응용 프로그램(221)의 실행을 위하여 제2 응용 프로그램 주소 공간(321)과 제2 장치 주소 공간(322)을 포함하는 제2 합성 주소 공간(320)을 생성할 수 있다. 여기서, 제2 응용 프로그램 주소 공간(321)은 제2 운영 체제(220)내에 적재되어 있는 제2 응용 프로그램(221)을 포함할 수 있으며, 제2 장치 주소 공간(322)은 장치 구동기 동작 운영 체제(110)에 적재되어 있는 장치 구동기(111)를 포함할 수 있다. The composite address generation unit 10 also generates a second application program address space 321 and a second device address space 322 for execution of the second application program 221 operating in the second operating system 220 To generate a second composite address space 320 that includes the second composite address space. The second application program address space 321 may include a second application program 221 loaded in the second operating system 220 and the second device address space 322 may include a device driver operating system And a device driver 111 mounted on the main body 110.

장치 접근 관리부(20)는 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다. The device access management unit 20 can manage the access to the device 40 by setting a virtual access area for each of the composite address spaces generated for each of the operating systems 210 and 220 that are application program operating environments.

또한, 장치 접근 관리부(20)는 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있으며, 합성 주소 공간 각각에 포함된 장치 구동기(111)가 생성한 데이터를 상호 공유하도록 할 수도 있다. Also, the device access management unit 20 may independently manage the virtual access areas for each of the composite address spaces, and may share the data generated by the device driver 111 included in each of the composite address spaces.

예를 들어, 합성 주소 공간에 존재하는 장치 주소 공간에 포함된 장치 구동기(111)는 개별적인 가상 접근 영역에 기반하여 독립적으로 관리함으로써, 서로 다른 운영 체제들간 발생 가능한 간섭 문제를 해결할 수 있다. 여기서, 장치 접근 관리부(20)는 개별적인 수행 문맥(context)를 관리함으로써 장치(40)에 대한 접근을 관리할 수 있다. For example, the device drivers 111 included in the device address space existing in the composite address space can independently manage the interference problem between different operating systems by independently managing them based on the individual virtual access areas. Here, the device access management unit 20 can manage access to the device 40 by managing individual execution contexts.

다시 말해, 장치(40)에 대한 접근이 시도될 때, 장치 접근 관리부(20)는 복수 개의 가상 머신에서 합성된 합성 주소 공간을 이용하여, 각 가상 머신마다 인스턴스를 생성함으로써 각 가상 머신별로 시점(view)를 제공할 수 있다. 이러한 경우, 각 가상 머신들은 자신의 수행 문맥(context)를 가질 수 있다. 예를 들어, 하드디스크 장치를 두 개의 가상 머신에서 접근하는 상황에서, 제1 가상 머신에서 /a.txt 파일을 생성하여도, 제2 가상 머신에서는 /a.txt가 보이지 않게 된다. In other words, when the access to the device 40 is attempted, the device access management unit 20 creates an instance for each virtual machine using the synthesized address space synthesized by the plurality of virtual machines, view can be provided. In this case, each virtual machine can have its own context. For example, in a situation where a hard disk device is accessed by two virtual machines, even if / a.txt file is generated in the first virtual machine, / a.txt is not shown in the second virtual machine.

보다 상세하게는, 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근과, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근을 분리하여 관리할 수 있다. 이는 시분할 처리 또는 스케줄링 등의 기법을 통하여 가능할 수 있다. More specifically, access to the device 40 of the device driver 111 included in the first device address space 312 of the first composite address space 310 and access to the device 40 of the second composite address space 320 2 device address space 322 of the device driver 111 can be managed separately. This may be possible through techniques such as time division processing or scheduling.

또한, 장치 접근 관리부(20)는 장치(40)의 정책에 따라 공유를 지원할 수 있으며 이러한 경우, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)가 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)가 생성한 데이터에 접근할 수 있다. 즉, 공유 조건에 따라 하나의 인스턴스를 공유하여 사용할 수도 있다. 예를 들어, 제 1 가상 머신에서 /a.txt 파일을 생성하면, 제 2 가상 머신에서도 /a.txt 파일이 생성되어 보이게 될 수 있다. The device access management unit 20 may support sharing according to the policy of the device 40. In this case, the device driver 111 included in the second device address space 322 of the second composite address space 320, Can access data generated by the device driver 111 included in the first device address space 312 of the first composite address space 310. That is, one instance can be shared and used according to sharing conditions. For example, if the /a.txt file is created in the first virtual machine, / a.txt file may be created and displayed in the second virtual machine.

또한, 본 발명의 실시예에 따른 합성 주소 생성부(10)와 장치 접근 관리부(20)는 하이퍼바이져(30)와 가상 머신들 사이의 계층에서 구현되는 것에 한정되는 것은 아니며, 시스템의 디자인 및 효율성에 따라 자유로운 계층에서 구현이 가능하다. 예컨대, 합성 주소 생성부(10)와 장치 접근 관리부(20)는 하이퍼바이져(30) 내부에서도 구현될 수 있다.
The composite address generation unit 10 and the device access management unit 20 according to the embodiment of the present invention are not limited to those implemented in the hierarchy between the hypervisor 30 and the virtual machines, It can be implemented in a free layer. For example, the composite address generation unit 10 and the device access management unit 20 may be implemented in the hypervisor 30 as well.

도 2는 본 발명의 실시예에 따른 장치 가상화를 위한 합성 주소 공간의 생성을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating generation of a composite address space for device virtualization according to an embodiment of the present invention.

도 2을 참조하면, 합성 주소 공간은 응용 프로그램 주소 공간과 장치 주소 공간을 포함하여 구성될 수 있다. Referring to FIG. 2, the composite address space may be configured to include an application address space and a device address space.

장치 구동기 동작 운영 체제(110)의 메모리 영역에 포함된 장치 구동기(111)가 적재된 주소 공간과 응용 프로그램 동작 운영 체제(210, 220)의 메모리 영역에 포함된 응용 프로그램이 적재된 주소 공간이 합성 주소 공간에 매핑될 수 있다. 여기서, 장치 구동기 동작 운영 체제(110)의 메모리 영역은 단일 컴퓨팅 환경의 장치 구동기(111)가 동작되는 운영 체제의 주소 영역 및 가상화 환경에서 장치 구동기(111)가 동작되는 호스트 운영 체제의 주소 영역을 의미할 수 있으며, 응용 프로그램 동작 운영 체제(210, 220)의 메모리 영역은 가상화 환경에서 응용 프로그램이 동작되는 가상 머신 내의 게스트 운영 체제의 유저 주소 영역을 의미할 수 있다. Device Driver Operation An address space in which a device driver 111 included in a memory area of an operating system 110 is loaded and an address space in which application programs loaded in an application program operating system 210 and 220 are loaded Address space. Here, the memory area of the device driver operation operating system 110 is divided into the address area of the operating system in which the device driver 111 of the single computing environment is operated and the address area of the host operating system in which the device driver 111 is operated in the virtualization environment And the memory area of the application operating system 210, 220 may refer to the user address space of the guest operating system in the virtual machine in which the application is running in the virtualized environment.

즉, 합성 주소 공간은 장치 구동기(111)가 동작하는 환경의 메모리 주소 공간과 실제 장치(40)를 사용하는 응용 프로그램이 동작하는 환경의 메모리 주소 공간을 포함할 수 있다. That is, the composite address space may include a memory address space of an environment in which the device driver 111 operates, and a memory address space of an environment in which an application program using the actual device 40 operates.

따라서, 응용 프로그램은 합성 주소 공간에 매핑되어 있는 장치 주소 공간에 포함된 장치 구동기(111)를 통해 장치(40)에 대한 접근이 가능하다. Thus, the application program is accessible to the device 40 via the device driver 111 included in the device address space mapped to the composite address space.

또한, 합성 주소 공간은 장치 구동기(111)가 적재된 주소 공간뿐만 아니라 해당 주소 공간을 포함하는 더 넓은 영역을 매핑할 수 있다. 예를 들어, 장치 구동기(111)가 적재된 주소 공간이 포함된 커널 영역 전체를 합성 주소 공간에 매핑할 수 있다. 여기서, 합성 주소 공간은 페이지 테이블 등의 수정을 통하여 구현될 수 있다.
In addition, the composite address space can map a wider area including the address space in which the device driver 111 is loaded, as well as the address space. For example, the device driver 111 may map the entire kernel area including the loaded address space to the synthetic address space. Here, the composite address space can be implemented through modification of a page table or the like.

도 3은 본 발명의 실시예에 따른 장치 가상화를 통한 장치에 대한 접근을 관리하는 방법을 설명하기 위한 개념도이다. 3 is a conceptual diagram illustrating a method for managing access to a device through device virtualization according to an embodiment of the present invention.

도 3을 참조하면, 장치 접근 관리부(20)는 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다. Referring to FIG. 3, the device access management unit 20 manages access to the device 40 by setting a virtual access area for each of the composite address spaces generated for each of the operating systems 210 and 220, .

예를 들어, 장치 접근 관리부(20)는 제1 합성 주소 공간(310)에 제1 가상 접근 영역을 설정하고, 제2 합성 주소 공간(320)에 제2 가상 접근 영역을 설정할 수 있으며, 제1 가상 접근 영역과 제2 가상 접근 영역을 독립적으로 관리할 수 있다. For example, the device access management unit 20 may set a first virtual access area in the first combined address space 310 and a second virtual access area in the second combined address space 320, The virtual access area and the second virtual access area can be independently managed.

제1 장치 주소 공간(312)에 포함된 장치 구동기(111)와 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)는 자신이 속한 가상 접근 영역에 기반하여 장치에 접근할 수 있다. 즉, 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)는 제1 가상 접근 영역 내에서 모든 동작을 수행할 수 있고, 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)는 제2 가상 접근 영역 내에서 모든 동작을 수행할 수 있다. The device driver 111 included in the first device address space 312 and the device driver 111 included in the second device address space 322 can access the device based on the virtual access area to which the device driver 111 belongs. That is, the device driver 111 included in the first device address space 312 can perform all operations in the first virtual access area, and the device driver 111 included in the second device address space 322, Can perform all operations within the second virtual access area.

또한, 가상 접근 영역에 의해 합성 주소 공간들 간의 접근 제어뿐만 아니라 장치 내부에서도 접근 가능한 영역을 제한할 수 있다. 즉, 각각의 합성 주소 공간에 포함된 장치 구동기(111)는 분리된 가상 접근 영역을 통해서 장치(40)에 접근할 수 있다. In addition, it is possible to restrict the access area within the device as well as the access control between the synthetic address spaces by the virtual access area. That is, the device driver 111 included in each composite address space can access the device 40 through a separate virtual access area.

예를 들어, 하드 디스크와 같은 저장 장치에 대해 각각의 장치 구동기(111)가 접근 요청을 하는 경우, 각각의 장치 구동기(111)가 접근할 수 있는 하드디스크의 논리 블록 주소 영역을 제한적으로 구성할 수 있다. For example, when each device driver 111 makes an access request to a storage device such as a hard disk, a logical block address area of a hard disk that each device driver 111 can access is limited .

상술한 본 발명의 실시예에 따른 장치 가상화 장치의 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
Although each component of the apparatus virtualization apparatus according to the above-described embodiment of the present invention has been described as being arranged in each constituent part for convenience of explanation, at least two of the constituent parts may be combined to form one constituent part, It is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

도 4는 본 발명의 실시예에 따른 장치 가상화 방법을 설명하기 위한 흐름도이다. 4 is a flowchart illustrating a method of virtualizing a device according to an embodiment of the present invention.

도 4를 참조하면, 장치 가상화 방법은 장치 주소 공간을 획득하는 단계(S410), 합성 주소 공간을 생성하는 단계(S420) 및 응용 프로그램이 장치 구동기를 통하여 장치에 접근하도록 관리하는 단계(S430)를 포함한다. Referring to FIG. 4, a device virtualization method includes obtaining a device address space (S410), creating a composite address space (S420), and managing an application program to access the device through a device driver (S430) .

본 발명의 실시예에 따른 장치 가상화 방법은 상술한 장치 가상화 장치에 의해 구현될 수 있다. The device virtualization method according to an embodiment of the present invention can be implemented by the device virtualization apparatus described above.

먼저, 장치 구동기 동작 운영 체제(110)내에 적재된 장치 구동기(111)의 주소 공간을 획득할 수 있다(S410). 여기서, 장치 구동기 동작 운영 체제(110)는 장치 구동기(111)가 동작하는 환경을 의미할 수 있다.First, the address space of the device driver 111 loaded in the device driver operation operating system 110 may be obtained (S410). Here, the device driver operation operating system 110 may mean an environment in which the device driver 111 operates.

그리고, 장치(40)를 구동시키는 장치 구동기(111)가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제(210, 220)에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성할 수 있다(S420). The device address space in which the device driver 111 for driving the device 40 operates and the application program address space in which the application programs operating in the operating systems 210 and 220, An address space can be created (S420).

즉, 응용 프로그램이 구동되거나 응용 프로그램이 장치에 대한 접근을 요청할 경우 합성 주소 공간을 생성할 수 있다. 특히, 응용 프로그램이 동작하는 운영 체제(210, 220)마다 합성 주소 공간을 생성할 수 있다. 예를 들어, 제1 합성 주소 공간(310)은 제1 운영 체제(210)를 위하여 가상화된 주소 공간이고, 제2 합성 주소 공간(320)은 제2 운영 체제(220)를 위하여 가상화된 주소 공간일 수 있다. 여기서, 합성 주소 공간은 장치 구동기 동작 운영 체제(110) 내에 있는 장치 구동기(111)가 적재되어 있는 메모리 공간과, 운영 체제(210, 220) 내에 있는 응용 프로그램이 적재되어 있는 메모리 공간을 매핑한 구조를 가질 수 있다.That is, a composite address space can be created when an application program is started or when an application requests access to the device. In particular, a composite address space may be created for each operating system 210, 220 on which the application program operates. For example, the first synthetic address space 310 is a virtualized address space for the first operating system 210 and the second synthetic address space 320 is a virtualized address space for the second operating system 220. [ Lt; / RTI > The composite address space is a structure in which a memory space in which the device driver 111 in the device driver operation operating system 110 is loaded and a memory space in which application programs in the operating systems 210 and 220 are loaded are mapped Lt; / RTI >

응용 프로그램 주소 공간에 포함된 응용 프로그램이 장치 주소 공간에 포함된 장치 구동기(111)를 통하여 장치(40)에 접근하도록 관리할 수 있다(S430). The application program included in the application address space may be managed to access the device 40 through the device driver 111 included in the device address space at step S430.

특히, 응용 프로그램 동작 환경인 운영 체제(210, 220)마다 생성된 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 장치(40)에 대한 접근을 관리할 수 있다.Particularly, it is possible to manage the access to the device 40 by setting a virtual access area for each of the generated address spaces for each of the operating systems 210 and 220, which are application operating environments.

또한, 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리할 수 있으며, 합성 주소 공간 각각에 포함된 장치 구동기(111)가 생성한 데이터를 상호 공유하도록 할 수도 있다. In addition, the virtual access area for each of the composite address spaces can be managed independently, and the data generated by the device driver 111 included in each of the composite address spaces can be mutually shared.

예를 들어, 합성 주소 공간에 존재하는 장치 주소 공간에 포함된 장치 구동기(111)는 개별적인 가상 접근 영역에 기반하여 독립적으로 관리함으로써, 서로 다른 운영 체제들간 발생 가능한 간섭 문제를 해결할 수 있다.For example, the device drivers 111 included in the device address space existing in the composite address space can independently manage the interference problem between different operating systems by independently managing them based on the individual virtual access areas.

상세하게는, 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근과, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)의 장치(40)에 대한 접근을 분리하여 관리할 수 있다. 이는 시분할 처리 또는 스케줄링 등의 기법을 통하여 가능할 수 있다.In detail, access to the device 40 of the device driver 111 included in the first device address space 312 of the first composite address space 310 and access to the device 40 of the second composite address space 320, The access to the device 40 of the device driver 111 included in the device address space 322 can be managed separately. This may be possible through techniques such as time division processing or scheduling.

더 나아가, 장치(40)의 정책에 따라 공유를 지원할 수 있으며 이러한 경우, 제2 합성 주소 공간(320)의 제2 장치 주소 공간(322)에 포함된 장치 구동기(111)가 제1 합성 주소 공간(310)의 제1 장치 주소 공간(312)에 포함된 장치 구동기(111)가 생성한 데이터에 접근할 수 있다.
The device driver 111 included in the second device address space 322 of the second composite address space 320 may support the sharing of the first composite address space 322. [ It is possible to access data generated by the device driver 111 included in the first device address space 312 of the device driver 310.

상술한 본 발명의 실시예에 따른 장치 가상화 방법 및 장치는 장치 구동기(111)가 탑재된 환경의 메모리 주소 공간과 응용 프로그램이 탑재된 게스트 가상 머신의 메모리 주소 공간을 복합적으로 구성하여, 장치 구동기(111)가 없는 환경에서 복합적으로 구성된 메모리 주소 상에 매핑(Mapping)되어 있는 장치 구동기(111)를 응용 프로그램이 안전하게 사용하도록 한다. The apparatus virtualization method and apparatus according to the embodiment of the present invention may be configured to include a memory address space of an environment in which the device driver 111 is mounted and a memory address space of a guest virtual machine on which an application program is installed, 111), the application program can safely use the device driver 111 that is mapped on the memory address configured in a complex manner.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

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 장치 주소 공간
10: Composite address generation unit 20: Device access management unit
30: hypervisor 40: device
110: Device driver operation Operating system 111: Device driver
210: first operating system 211: first application program
220: second operating system 221: second application program
310: first synthesis address space 311: first application program address space
312: first device address space 320: second synthetic address space
321: Second application program address space 322: Second device address space

Claims (12)

장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간과, 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간을 매핑하여 합성 주소 공간을 생성하는 합성 주소 생성부; 및
상기 응용 프로그램 주소 공간에 포함된 상기 응용 프로그램이 상기 장치 주소 공간에 포함된 상기 장치 구동기를 통하여 상기 장치에 접근하도록 관리하는 장치 접근 관리부를 포함하는 장치 가상화 장치.
A composite address generation unit for generating a composite address space by mapping a device address space in which a device driver for driving the device operates and an application program address space in which an application program operating in an operating system that is an application program environment operates; And
And a device access management unit that manages the application program included in the application program address space to access the device through the device driver included in the device address space.
청구항 1에 있어서,
상기 합성 주소 생성부는
장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 상기 응용 프로그램 주소 공간을 매핑하여 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 장치.
The method according to claim 1,
The composite address generation unit
A kernel area including a device address space in which a device driver for operating a device operates; and a device address space in which the application program address space is generated.
청구항 1에 있어서,
상기 합성 주소 생성부는
상기 응용 프로그램 동작 환경인 운영 체제마다 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 장치.
The method according to claim 1,
The composite address generation unit
And the composite address space is generated for each operating system that is the operating environment of the application program.
청구항 3에 있어서,
상기 장치 접근 관리부는
상기 응용 프로그램 동작 환경인 운영 체제마다 생성된 상기 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 상기 장치에 대한 접근을 관리하는 것을 특징으로 하는 장치 가상화 장치.
The method of claim 3,
The device access management unit
Wherein the access control unit manages access to the device by setting a virtual access area for each of the composite address spaces generated for each operating system that is the application program operating environment.
청구항 4에 있어서,
상기 장치 접근 관리부는
상기 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리하는 것을 특징으로 하는 장치 가상화 장치.
The method of claim 4,
The device access management unit
And the virtual access area for each of the synthetic address spaces is managed independently.
청구항 5에 있어서,
상기 장치 접근 관리부는
상기 합성 주소 공간 각각에 포함된 상기 장치 구동기가 생성한 데이터를 상호 공유할 수 있도록 하는 것을 특징으로 하는 장치 가상화 장치.
The method of claim 5,
The device access management unit
And the data generated by the device driver included in each of the composite address spaces can be mutually shared.
장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 획득하는 단계;
상기 장치 주소 공간을 응용 프로그램 동작 환경인 운영 체제에서 동작하는 응용 프로그램이 동작하는 응용 프로그램 주소 공간과 매핑하여 합성 주소 공간을 생성하는 단계;
상기 응용 프로그램 주소 공간에 포함된 상기 응용 프로그램이 상기 장치 주소 공간에 포함된 상기 장치 구동기를 통하여 상기 장치에 접근하도록 관리하는 단계를 포함하는 장치 가상화 방법.
Obtaining a device address space in which a device driver that drives the device operates;
Generating a composite address space by mapping the device address space to an application program address space in which an application program operating in an operating system is operating;
And managing the application program included in the application program address space to access the device through the device driver included in the device address space.
청구항 7에 있어서,
상기 합성 주소 공간을 생성하는 단계는
장치를 구동시키는 장치 구동기가 동작하는 장치 주소 공간을 포함하는 커널 영역과, 상기 응용 프로그램 주소 공간을 매핑하여 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 방법.
The method of claim 7,
The step of generating the composite address space
A kernel area including a device address space in which a device driver for operating a device operates, and the application address space to generate the composite address space.
청구항 7에 있어서,
상기 합성 주소 공간을 생성하는 단계는
상기 응용 프로그램 동작 환경인 운영 체제마다 상기 합성 주소 공간을 생성하는 것을 특징으로 하는 장치 가상화 방법.
The method of claim 7,
The step of generating the composite address space
And the composite address space is generated for each operating system that is the operating environment of the application program.
청구항 9에 있어서,
상기 장치에 접근하도록 관리하는 단계는
상기 응용 프로그램 동작 환경인 운영 체제마다 생성된 상기 합성 주소 공간 각각에 대한 가상 접근 영역을 설정하여 상기 장치에 대한 접근을 관리하는 것을 특징으로 하는 장치 가상화 방법.
The method of claim 9,
The step of managing to access the device
Wherein a virtual access area for each of the synthetic address spaces generated for each operating system, which is an application program operating environment, is set and access to the device is managed.
청구항 10에 있어서,
상기 장치에 접근하도록 관리하는 단계는
상기 합성 주소 공간 각각에 대한 가상 접근 영역을 독립적으로 관리하는 것을 특징으로 하는 장치 가상화 방법.
The method of claim 10,
The step of managing to access the device
Wherein the virtual access area for each of the synthetic address spaces is managed independently.
청구항 11에 있어서,
상기 장치에 접근하도록 관리하는 단계는
상기 합성 주소 공간 각각에 포함된 상기 장치 구동기가 생성한 데이터를 상호 공유할 수 있도록 하는 것을 특징으로 하는 장치 가상화 방법.
The method of claim 11,
The step of managing to access the device
And the data generated by the device driver included in each of the composite address spaces can be mutually shared.
KR1020130117873A 2013-10-02 2013-10-02 Method for device virtualization and apparatus therefor KR101564293B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130117873A KR101564293B1 (en) 2013-10-02 2013-10-02 Method for device virtualization and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130117873A KR101564293B1 (en) 2013-10-02 2013-10-02 Method for device virtualization and apparatus therefor

Publications (2)

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

Family

ID=53029694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130117873A KR101564293B1 (en) 2013-10-02 2013-10-02 Method for device virtualization and apparatus therefor

Country Status (1)

Country Link
KR (1) KR101564293B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097459B2 (en) 2016-01-04 2018-10-09 Electronics And Telecommunications Research Institute Apparatus and method for high-speed data transmission between virtual desktops
KR102199509B1 (en) * 2019-10-16 2021-01-06 숭실대학교산학협력단 Memory sharing system, method, and program for performing for sharing memory in virtualization system
US11397607B2 (en) 2015-07-28 2022-07-26 Samsung Electronics Co., Ltd. Storage device and storage virtualization system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397607B2 (en) 2015-07-28 2022-07-26 Samsung Electronics Co., Ltd. Storage device and storage virtualization system
US10097459B2 (en) 2016-01-04 2018-10-09 Electronics And Telecommunications Research Institute Apparatus and method for high-speed data transmission between virtual desktops
KR102199509B1 (en) * 2019-10-16 2021-01-06 숭실대학교산학협력단 Memory sharing system, method, and program for performing for sharing memory in virtualization system

Also Published As

Publication number Publication date
KR101564293B1 (en) 2015-10-29

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
US7434003B2 (en) Efficient operating system operation on a hypervisor
KR101081907B1 (en) Apparatus for virtualization
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
NO340567B1 (en) Hierarchical virtualization with a multi-level virtualization mechanism
JP2007183952A (en) Method by which guest is accessing memory converted device and apparatus
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
JP2022511670A (en) Secure memory access in a virtualized computing environment
KR101564293B1 (en) Method for device virtualization and apparatus therefor
Baldin et al. Proteus, a hybrid virtualization platform for embedded systems
Bamiah et al. Using virtual machine monitors to overcome the challenges of monitoring and managing virtualized cloud infrastructures
Grinberg et al. Architectural virtualization extensions: A systems perspective
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
US20120173788A1 (en) Computing Element Virtualization
CN113626148B (en) Terminal virtual machine generation system and method based on hybrid virtualization
JP4548514B2 (en) Control method of virtual computer system
JP4292220B2 (en) Virtual computer system
Danisevskis Accelerated secure GUI for virtualized mobile handsets
Tavangarian Virtual Computing: The Emperor’s New Clothes?
Zabaljauregui Grid operating systems/middlewares and new virtualization techniques
Zhou et al. AVMM: Virtualize network client with a bare-metal and asymmetric partitioning approach
Roach 2017 NDIA GROUND VEHICLE SYSTEMS ENGINEERING and TECHNOLOGY SYMPOSIUM

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