WO2020159055A1 - 전자 장치 및 전자 장치의 제어 방법 - Google Patents

전자 장치 및 전자 장치의 제어 방법 Download PDF

Info

Publication number
WO2020159055A1
WO2020159055A1 PCT/KR2019/016311 KR2019016311W WO2020159055A1 WO 2020159055 A1 WO2020159055 A1 WO 2020159055A1 KR 2019016311 W KR2019016311 W KR 2019016311W WO 2020159055 A1 WO2020159055 A1 WO 2020159055A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
area
application program
electronic device
application
Prior art date
Application number
PCT/KR2019/016311
Other languages
English (en)
French (fr)
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 EP19912674.9A priority Critical patent/EP3916548B1/en
Priority to US17/426,439 priority patent/US20220107841A1/en
Publication of WO2020159055A1 publication Critical patent/WO2020159055A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Definitions

  • the present disclosure relates to an electronic device and a control method of the electronic device, and more particularly, to an electronic device in which a virtualization system including a plurality of virtual machines is implemented, which can efficiently manage memory.
  • Virtualization is one of the technologies that have attracted attention as cloud computing through the Internet and smart phones has recently spread, and refers to a technology capable of providing various computing environments under limited physical systems.
  • the present disclosure has been devised in accordance with the need as described above, and an object of the present disclosure is to provide a method for efficiently managing memory in an electronic device in which a virtualization system including a plurality of virtual machines is implemented. .
  • the electronic device includes a memory including at least one command and a processor connected to the memory and controlling the electronic device.
  • the processor allocates a plurality of program areas corresponding to each of the main operating system and the plurality of virtual machines, and a shared area corresponding to the main operating system and the plurality of virtual machines to the memory, and the plurality of program areas
  • a user command for installing a second application program corresponding to the first application program stored in the first region is installed in a second region of the plurality of program regions, at least a portion of data related to the first application program is recalled. Move from the first area to the shared area.
  • the shared area includes a first shared area corresponding to the main operating system and a second shared area corresponding to the plurality of virtual machines
  • the processor corresponds to a first virtual machine among the plurality of program areas
  • data related to the first application program At least some of them may be moved from the program area corresponding to the first virtual machine to the second shared area.
  • the shared area includes a first shared area corresponding to the main operating system and a second shared area corresponding to the plurality of virtual machines
  • the processor is a program corresponding to the main operating system among the plurality of program areas
  • the processor receives the first application.
  • User data related to a user among data related to an application program may be maintained in the first area, and data other than the user data among data related to the first application program may be moved from the first area to the shared area.
  • the processor may include the number of times data related to the first application program is moved from the plurality of program areas to the shared area and the first A reference count related to the number of times the user data is deleted from the plurality of program areas among data related to an application program may be increased.
  • the processor deletes the user data from the first area when a user command for deleting the first application program is deleted from the first area, and decreases the reference value when the user data is deleted. Can.
  • the processor may determine whether to delete the first application program based on the reference value.
  • the processor maintains data related to a first application in the shared area, and when the reference value is 0, data related to the first application can be deleted from the shared area. have.
  • control method of the electronic device for achieving the object of the present disclosure as described above corresponds to a plurality of program areas corresponding to each of the main operating system and the plurality of virtual machines, and the main operating system and the plurality of virtual machines Allocating a shared area to a memory included in the electronic device, and installing a second application program corresponding to a first application program stored in a first area of the plurality of program areas in a second area of the plurality of program areas And when a user command to do so is input, moving at least some of the data related to the first application from the first area to the shared area.
  • the shared area includes a first shared area corresponding to the primary operating system and a second shared area corresponding to the plurality of virtual machines
  • the step of moving the first shared virtual machine comprises: When a user command for installing a second application program corresponding to the first application program stored in a corresponding program region in a program region corresponding to a second virtual machine among the plurality of program regions is input, the first application program It may be to move at least some of the related data from the program area corresponding to the first virtual machine to the second shared area.
  • the shared area includes a first shared area corresponding to the main operating system and a second shared area corresponding to the plurality of virtual machines
  • the moving step corresponds to a main operating system among the plurality of program areas
  • the moving step may include: It is to maintain user data related to a user among data related to a first application in the first area, and to move data other than the user data among data related to the first application from the first area to the shared area.
  • control method of the electronic device includes: when at least some of the data related to the first application program is moved to the shared area, the number of times data related to the first application program is moved from the plurality of program areas to the shared area; The method may further include increasing a reference count associated with the number of times the user data has been deleted from the plurality of program areas among the data related to the first application program.
  • the control method of the electronic device when a user command for deleting the first application is input in the first area, deleting the user data in the first area and when the user data is deleted, refer to the The method may further include reducing the value.
  • control method of the electronic device may further include determining whether to delete the first application based on the reference value when a user command for deleting the first application is deleted from the first area. Can.
  • the control method of the electronic device if the reference value is greater than 0, data related to the first application is maintained in the shared area, and when the reference value is 0, data related to the first application is shared in the shared area. It may further include the step of deleting from.
  • the control method is corresponding to each of the main operating system and a plurality of virtual machines Allocating a plurality of program areas, a shared area corresponding to the main operating system and the plurality of virtual machines, to a memory included in the electronic device, and to a first application program stored in a first area of the plurality of program areas
  • a user command for installing a corresponding second application program in a second area of the plurality of program areas is input, moving at least a portion of data related to the first application program from the first area to the shared area. It includes.
  • FIG. 1 is a view for briefly showing a control process of an electronic device according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure
  • FIG. 3A is a diagram showing the configuration of a virtualization system according to the present disclosure in detail
  • FIG. 3B is a view showing a state in which a plurality of application programs are installed in a plurality of areas included in the virtualization system according to the present disclosure.
  • FIGS. 5A to 6B are diagrams for specifically showing a process in which at least some of data related to an application program is moved from a program area to a shared area according to an embodiment of the present disclosure
  • FIG. 7 is a flowchart illustrating a process in which at least a part of data related to an application program moved from a program area to a shared area is deleted in a shared area, according to an embodiment of the present disclosure.
  • 8A and 8B are diagrams for specifically showing a process in which at least a part of data related to an application moved from a program area to a shared area is deleted from the shared area,
  • FIG. 9 is a block diagram showing in detail the configuration of an electronic device according to an embodiment of the present disclosure.
  • FIG. 10 is a flowchart illustrating a control method of an electronic device according to an embodiment of the present disclosure.
  • FIG. 11 is a diagram for describing an embodiment of a case in which an electronic device according to the present disclosure establishes a communication connection with a display device and executes an auxiliary operating system accordingly.
  • expressions such as “have,” “can have,” “includes,” or “can include,” include the presence of a corresponding feature (eg, a component such as a numerical value, function, operation, or part). And does not exclude the presence of additional features.
  • expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B”, etc. may include all possible combinations of the items listed together.
  • first component is "(functionally or communicatively) coupled with/to" another component (eg, second component), or " When referred to as “connected to”, it should be understood that any of the above components may be directly connected to the other component or may be connected through another component (eg, a third component).
  • a component eg, the first component
  • another component eg, the second component
  • the component and the component It can be understood that other components (eg, the third component) do not exist between the other components.
  • FIG. 1 is a view for briefly showing a control process of an electronic device according to an embodiment of the present disclosure.
  • the electronic device may include a personal computer (PC), a smart phone, a tablet PC, and a server.
  • PC personal computer
  • smart phone a smart phone
  • tablet PC a server
  • server a server
  • the virtualization system including a plurality of virtual machines described below is implemented to achieve the object of the present disclosure, there is no particular limitation on the type of electronic device.
  • the electronic device may implement a virtualization system including a plurality of virtual machines.
  • the virtualization system according to the present disclosure includes physical hardware, a primary operating system, a virtualization program, a plurality of virtual machines, and a guest operating system. It can contain.
  • the primary operating system can provide a platform for running various applications as well as managing the physical hardware constituting the electronic device.
  • the virtualization program may provide a hypervisor that is a logical platform for simultaneously executing a plurality of operating systems on one hardware constituting an electronic device.
  • each of the plurality of virtual machines may be allocated some resources of physical hardware constituting the electronic device. Then, when a plurality of auxiliary operating systems corresponding to each of the plurality of virtual machines is installed, the electronic device may execute various application programs on the plurality of virtual machines through the plurality of auxiliary operating systems.
  • a plurality of virtual machines may be implemented such that different users can utilize the same auxiliary operating system by installing the same auxiliary operating system, and different auxiliary operating systems may be installed so that the same user can utilize various auxiliary operating systems. Can be implemented.
  • the virtualization system includes a plurality of program areas 10, 11 and 12 and a shared area 20.
  • the plurality of program areas 10, 11, and 12 includes a plurality of areas corresponding to each of the main operating system and the plurality of virtual machines
  • the shared area 20 corresponds to the main operating system and the plurality of virtual machines.
  • the electronic device corresponds to a plurality of program areas 10, 11, and 12 corresponding to each of the main operating system and the plurality of virtual machines, and the main operating system and the plurality of virtual machines
  • the shared area 20 is allocated to the physical hardware constituting the electronic device.
  • the electronic device is configured to physically configure an electronic device in the program area 10 corresponding to the main operating system, the program area 11 corresponding to the first virtual machine, and the program area 12 corresponding to the second virtual machine. Can be assigned to hardware. Also, the electronic device may allocate the shared area 20 corresponding to both the main operating system and the plurality of virtual machines to the physical hardware constituting the electronic device.
  • the physical hardware may mean a set of all physical hardware constituting the electronic device, but in particular, the plurality of program areas 10, 11, 12 and the shared area 20 according to the present disclosure are physical devices constituting the electronic device. Among hardware, it may mean an area allocated to memory.
  • the second application program corresponding to the first application program stored in the first region 11 of the plurality of program regions 10, 11, and 12 is a plurality of program regions 10 , 11, 12)
  • the electronic device moves at least some of the data related to the first application from the first area 11 to the shared area 20 I can do it.
  • the electronic device may receive a user command for installing the second application program in the second region 12 of the plurality of program regions 10, 11, and 12 through the second virtual machine among the plurality of virtual machines. have.
  • the electronic device can move at least some of the data related to the first application from the first area 11 to the shared area 20.
  • the fact that the first application program corresponds to the second application program includes not only the case where the first application program is the same as the second application program, but also at least a portion of the data related to the first application program is the same as the data related to the second application program. It may include a case.
  • the electronic device When at least some of the data related to the first application is moved from the first area 11 to the shared area 20, the electronic device relates to the first application program moved to the shared area 20 through the second virtual machine. Data is available. Specifically, the electronic device may execute the first application program through the second virtual machine based on data related to the first application program moved to the shared area 20.
  • FIG. 2 is a block diagram briefly illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 100 includes a memory 110 and a processor 120.
  • At least one command related to the electronic device 100 may be stored in the memory 110.
  • an operating system (O/S) for driving the electronic device 100 may be stored in the memory 110.
  • various software programs or applications for operating the electronic device 100 may be stored in the memory 110 according to various embodiments of the present disclosure.
  • the memory 110 may include a semiconductor memory such as a flash memory or a magnetic storage medium such as a hard disk.
  • various software modules for operating the electronic device 100 may be stored in the memory 110 according to various embodiments of the present disclosure, and the processor 120 executes various software modules stored in the memory 110. By doing so, the operation of the electronic device 100 can be controlled.
  • the memory 110 may store software related to a primary operating system, a virtualization program, and an auxiliary operating system, and the processor 120 executes software stored in the memory 110
  • a virtualization system including a plurality of virtual machines can be implemented.
  • an application program may be stored in the memory 110, and the processor 120 may execute an application program stored in the memory 110.
  • the memory 110 may be assigned a plurality of program areas corresponding to each of the main operating system and a plurality of virtual machines, and a shared area corresponding to the main operating system and a plurality of virtual machines.
  • the processor 120 controls the overall operation of the electronic device 100. Specifically, the processor 120 is connected to the configuration of the electronic device 100 including the memory 110, and executes at least one command stored in the memory 110 as described above to operate the electronic device 100 Overall control.
  • the processor 120 can be implemented in various ways.
  • the processor 120 may include an application specific integrated circuit (ASIC), embedded processor, microprocessor, hardware control logic, hardware finite state machine (FSM), digital signal processor (Digital Signal) Processor, DSP).
  • ASIC application specific integrated circuit
  • FSM hardware finite state machine
  • DSP digital signal processor
  • the processor 120 may include a ROM, RAM, a Graphic Processing Unit (GPU), a CPU, and a bus, and the ROM, RAM, a Graphic Processing Unit (GPU), a CPU, etc. may be connected to each other through a bus.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • GPU Graphic Processing Unit
  • CPU Central Processing Unit
  • a software stored in the memory 110 may be executed to implement a virtualization system including a plurality of virtual machines.
  • the virtualization system according to the present disclosure includes physical hardware, a primary operating system, a virtualization program, a plurality of virtual machines, and a guest operating system. It can contain.
  • the main operating system may provide a platform for executing various application programs as well as managing physical hardware constituting the electronic device 100.
  • the virtualization program may provide a hypervisor that is a logical platform for simultaneously executing a plurality of operating systems on one hardware constituting the electronic device 100.
  • each of the plurality of virtual machines may be allocated some resources of physical hardware constituting the electronic device 100.
  • the electronic device 100 may execute various application programs on the plurality of virtual machines through the plurality of auxiliary operating systems.
  • a plurality of virtual machines may be implemented such that different users can utilize the same auxiliary operating system by installing the same auxiliary operating system, and different auxiliary operating systems may be installed so that the same user can utilize various auxiliary operating systems. Can be implemented.
  • the main operating system and the auxiliary operating system according to the present disclosure are not limited to a specific operating system.
  • the primary operating system and the secondary operating system may be at least one of Windows, Mac OS, and Linux, respectively.
  • the main operating system and the auxiliary operating system may be at least one of Android, iOS, and Windows Mobile.
  • the primary operating system and the secondary operating system may be at least one of Linux, Unix, and Windows Server.
  • the virtualization system includes a plurality of program areas and shared areas.
  • the plurality of program areas includes a plurality of areas corresponding to each of the main operating system and the plurality of virtual machines, and the shared area corresponds to the main operating system and the plurality of virtual machines.
  • the processor 120 electronically transmits a plurality of program areas corresponding to each of the main operating system and the plurality of virtual machines, and a shared area corresponding to the main operating system and the plurality of virtual machines.
  • the physical hardware constituting the device 100 may be allocated to the memory 110, among others.
  • the processor 120 may allocate a program area corresponding to the main operating system, a program area corresponding to the first virtual machine, and a program area corresponding to the second virtual machine to the memory 110. In addition, the processor 120 may allocate a shared area corresponding to both the main operating system and a plurality of virtual machines to the memory 110.
  • the processor 120 on the premise of the virtualization system implemented as described above, at least a part of the data related to the application is moved from the program area to the shared area, and to the application program moved from the program area to the shared area It is possible to control the overall process in which at least a part of the related data is deleted from the shared area.
  • the processor 120 may transmit the second application program to the first application program. At least some of the data relating to the data is moved from the first area to the shared area.
  • the processor 120 may receive a user command for installing the second application program in the second area of the plurality of program areas through the second virtual machine among the plurality of virtual machines. Since the second area 12 is a program area corresponding to the second virtual machine, a user command for installing an application program in the second area 12 may be input through the second virtual machine.
  • the processor 120 may include at least some of data related to the first application program. Can be moved from the first area to the shared area.
  • the fact that the first application program corresponds to the second application program includes not only the case where the first application program is the same as the second application program, but also at least a portion of the data related to the first application program is the same as the data related to the second application program. It may include a case.
  • the first application and the second application can be obtained by using data related to the first application that has been moved to the shared area, thereby obtaining the same result as installing and executing the second application in the second area. Can be determined to correspond to each other.
  • the first application supports the first secondary operating system.
  • the second application program supports the second auxiliary operating system, the first application program stored in the first region corresponding to the first virtual machine and the second application that the user wants to install in the second region through the second virtual machine It can be determined that the programs do not correspond to each other.
  • the first application is the first secondary operating system and the second If it is a cross-platform type that supports all auxiliary operating systems, the first application program stored in the first area corresponding to the first virtual machine and the user wants to install it in the second area through the second virtual machine. 2
  • the application programs may be determined to correspond to each other.
  • first and second auxiliary operating systems which are different types of auxiliary operating systems, are installed on the first virtual machine and the second virtual machine, respectively, and the first application supports and supports the first auxiliary operating system.
  • the program and the second application program to be installed in the second area corresponding to the second virtual machine may be determined to correspond to each other.
  • Android and Linux are installed on the first virtual machine and the second virtual machine as the first secondary operating system and the second secondary operating system, respectively, the first application supports Android, and the second application runs Linux. Even if supported, Android and Linux have a common kernel, so the second application program to be installed in the second area may be determined to correspond to the first application program stored in the first area. That is, it may be determined that the first application program of the Android version for executing the game A corresponds to the second application program for executing the game A of the Linux version having a common Android and kernel.
  • the first application and the second application are different versions of the application for the same application, the first application and the user stored in the first area corresponding to the first virtual machine and the user can use the second virtual machine. Through this, it may be determined that the second application programs to be installed in the second area do not correspond to each other.
  • the first application and the second application are different versions of the application for the same application, the difference is only in the sub-versions in which different versions only cause a change in the minor part of the application. If it is, the first application program stored in the first area corresponding to the first virtual machine and the second application program that the user intends to install in the second area through the second virtual machine may be determined to correspond to each other.
  • the first application can be upgraded in the form of a plugin or add-on to become an application of the same version as the second application, in the first area corresponding to the first virtual machine
  • the stored first application program and the second application program that the user intends to install in the second area through the second virtual machine may be determined to correspond to each other.
  • the shared area as described above may include a first shared area corresponding to the main operating system and a second shared area corresponding to a plurality of virtual machines.
  • the processor 120 may move at least some of the data related to the first application program from the program area corresponding to the first virtual machine to the second shared area.
  • a user command for installing a second application program corresponding to a first application program stored in a program region corresponding to a main operating system among a plurality of program regions in a program region corresponding to a second virtual machine among the plurality of program regions is provided.
  • the processor 120 may move at least some of the data related to the first application program from the program area corresponding to the main operating system to the first shared area.
  • the processor 120 may first User data related to a user among data related to an application program may be maintained in a first area, and data excluding user data among data related to the first application program may be moved from the first area to the shared area.
  • the user data means data related to a user among data related to an application program.
  • user data may be used as a generic term for data that does not need to be shared between the main operating system and a plurality of virtual machines. That is, in the present disclosure, data related to an application program moved to a shared area is shared between a main operating system and a plurality of virtual machines. However, data related to a user need not or should not be shared between a main operating system and a plurality of virtual machines.
  • data about the user preferences of an application and data generated by the user using the application are generally not required to be shared between the main operating system and multiple virtual machines, and the user's account. In the case of informational data, it should not be shared.
  • user data may be used as a generic term for data that does not need to be shared between the main operating system and a plurality of virtual machines, including the examples described above.
  • specific user data may vary depending on the type of application and the user's activity through the application.
  • the processor 120 may increase the reference count of the first application program.
  • the processor 120 may delete the user data from the first area.
  • the processor 120 may decrease the reference value for the first application program.
  • the reference value is for applying a reference counting method among the management methods of the memory 110 and refers to a number for grasping the number of virtual machines referring to the corresponding application program. That is, the reference value is related to the number of times data related to the first application program is moved from the plurality of program areas to the shared area, and the number of times user data is deleted from the plurality of program areas among the data related to the first application program.
  • a reference value of the first application program is 1. Then, when data related to the first application program is moved from a plurality of program areas to a shared area, the reference value of the first application program may be increased to 2. Further, when the reference value of the first application program is increased to 2, when user data among data related to the first application program is deleted from a plurality of program areas, the reference value of the first application program may be reduced to 1. .
  • the processor 120 may determine whether to delete the first application based on the reference value. Specifically, when the reference value is greater than 0, the processor 120 may maintain data related to the first application program in the shared area. On the other hand, if the reference value is 0, the processor 120 may delete data related to the first application from the shared area.
  • the reference reference value of the first application is greater than 0, it means that there is a virtual machine referencing the first application among the plurality of virtual machines, and thus, the electronic device 100 relates to the first application. Data can be kept in a shared area.
  • the reference reference value of the first application is 0, it means that there is no virtual machine referencing the first application among the plurality of virtual machines, and thus the electronic device 100 has data related to the first application. Can be deleted from the shared area.
  • the processor 120 may execute at least one instruction stored in the memory 110 to perform a control process according to the present disclosure.
  • instructions related to the control process according to the present disclosure may be implemented in software and stored in the memory 110, and the processor 120 executes software stored in the memory 110 to perform a control process according to the present disclosure.
  • various embodiments according to the present disclosure may be implemented through at least one of codes included in the primary operating system, codes included in the secondary operating system, programs installed in the primary operating system, and programs installed in the secondary operating system.
  • the processor 120 sequentially identifies whether a control process according to the present disclosure can be performed through a primary operating system, a secondary operating system, a program installed in the primary operating system, or a program installed in the secondary operating system, and according to the identification result. The control process can be performed.
  • the processor 120 may control the control process according to the present disclosure through code included in the auxiliary operating system, or code included in the main operating system if it cannot be performed by code included in the auxiliary operating system It is possible to identify whether it can be performed through, and the control process according to the present disclosure may be performed based on the code included in the auxiliary operating system or the code included in the main operating system according to the identification result.
  • the processor 120 may be performed through a program installed in the auxiliary operating system. And whether it can be performed through a program installed in the secondary operating system, and whether it can be performed through a program installed in the primary operating system, based on the program installed in the secondary operating system or the program installed in the primary operating system according to the identification result.
  • the control process according to the present disclosure can be performed.
  • FIG. 3A is a diagram showing the configuration of a virtualization system according to the present disclosure in detail
  • FIG. 3B is a view showing a state in which a plurality of application programs are installed in a plurality of areas included in the virtualization system according to the present disclosure.
  • a virtualization system includes physical hardware, a host operating system (OS), a virtualization program, a plurality of virtual machines, and auxiliary operations It may include a system (Guest Operation System (OS)).
  • OS host operating system
  • OS virtualization program
  • auxiliary operations It may include a system (Guest Operation System (OS)).
  • OS Guest Operation System
  • the primary operating system can provide a platform for running various applications as well as managing the physical hardware constituting the electronic device.
  • the virtualization program may provide a hypervisor that is a logical platform for simultaneously executing a plurality of operating systems on one hardware constituting an electronic device.
  • each of the plurality of virtual machines may be allocated some resources of physical hardware constituting the electronic device.
  • the electronic device may execute various application programs through the plurality of auxiliary operating systems.
  • a secondary operating system (Guest-VM1), a secondary operating system (Guest-VM2), and a secondary operating system ( Guest -VM3) can be installed.
  • the main operating system and the auxiliary operating system according to the present disclosure are not limited to a specific operating system.
  • the primary operating system and the secondary operating system may be at least one of Windows, Mac OS, and Linux, respectively.
  • the main operating system and the auxiliary operating system may be at least one of Android, iOS, and Windows Mobile.
  • the primary operating system and the secondary operating system may be at least one of Linux, Unix, and Windows Server.
  • the main operating system and the auxiliary operating system according to the present disclosure may be variously selected according to the type of electronic device and the purpose of use by the user.
  • the virtualization system includes a plurality of program areas (10, 11, 12, 13) and the shared area (21, 22). Further, the plurality of program areas 10, 11, 12, and 13 include a plurality of areas corresponding to each of the main operating system and the plurality of virtual machines, and the shared areas 21 and 22 are the main operating system and the plurality of virtual It corresponds to the machine.
  • the virtualization system includes a program area 10 corresponding to a main operating system (Host Program Data Area: HPA), a program area 11 corresponding to a first virtual machine (Gust Program Data Area 1: GPA) 1), including a program area 12 (Gust Program Data Area 2: GPA 2) corresponding to the second virtual machine and a program area 13 (Gust Program Data Area 3: GPA 3) corresponding to the third virtual machine can do.
  • HPA Home Program Data Area
  • GPA Global Program Data Area 1
  • GPA 2 Guard Data Area 2
  • GPA 3 Guard Program Data Area 3
  • the virtualization system according to the present disclosure may include shared regions 21 and 22 corresponding to both the main operating system and a plurality of virtual machines.
  • the virtualization system according to the present disclosure includes a first shared area (HSA) 21 corresponding to a main operating system and a second shared area 22 (GSA) corresponding to a plurality of virtual machines. ).
  • the plurality of program areas 10, 11, 12, and 13 according to the present disclosure and the shared areas 21 and 22 do not mean a plurality of areas in which hardware constituting an electronic device is physically divided. That is, the plurality of program areas 10, 11, 12, 13 and the shared areas 21, 22 are a plurality of areas that are abstractly divided as some resources of physical hardware are allocated to each of the main operating system and the plurality of virtual machines. Means therefore, in the following description, the sharing areas 21 and 22 are divided into the first sharing area 21 and the second sharing area 22 to identify the sharing area 21 corresponding to the main operating system and a plurality of virtual machines. It is only for clarifying and explaining the shared area 22.
  • the plurality of program areas 10, 11, 12, 13 and the shared areas 21, 22 mean areas allocated to memory, among other physical hardware constituting the electronic device. .
  • the program area 10 corresponding to the main operating system is HPA
  • the program area corresponding to each of the plurality of virtual machines (11, 12, 13) is abbreviated as GPA 1, GPA 2 and GPA 3, the shared area 21 corresponding to the main operating system as HAS, and the shared area 22 corresponding to a plurality of virtual machines as GHA. .
  • a plurality of application programs may be installed in the plurality of program areas 10, 11, 12 and 13.
  • programs 1 and 2 may be installed in the program area 10 corresponding to the main operating system.
  • programs 3 and 4 may be installed in the program area 11 corresponding to the first virtual machine
  • programs 5 and 6 may be installed in the program area 12 corresponding to the second virtual machine.
  • programs 7 and 8 may be installed in the program area 13 corresponding to the third virtual machine.
  • the reference value is the number of times data related to the application program is moved from the plurality of program areas 10, 11, 12, 13 to the shared areas 21, 22, and user data among the data related to the application program is the plurality of program areas 10 , 11, 12, 13).
  • a reference value of the first application program is 1. Then, when data related to the first application program is moved from the plurality of program areas 10, 11, 12, and 13 to the shared areas 21, 22, the reference value of the first application program may be increased to 2. In addition, when the reference value of the first application is increased to 2, when user data among data related to the first application is deleted in the plurality of program areas 10, 11, 12, and 13, the first application The reference value can be reduced to 1.
  • FIGS. 5A to 6B are diagrams for specifically showing a process in which at least some of data related to an application program is moved from a program area to a shared area according to an embodiment of the present disclosure.
  • the electronic device may receive a user command for installing the second application program in the second area among the plurality of program areas 10, 11, 12, and 13 (S410).
  • the electronic device may receive a user command for installing the program 5 in the GTA 1 (11) among the plurality of program areas (10, 11, 12, 13 ).
  • the program 5 510 as shown in FIG. 5A is for indicating that a user command for installing the program 5 in the GTA 1 11 of the plurality of program areas 10, 11, 12, and 13 has been received.
  • the electronic device may receive a user command for installing the program 1 in the GTA 3 13 among the plurality of program areas 10, 11, 12, and 13.
  • the program 1 610 as shown in FIG. 5A is for indicating that a user command for installing the program 1 to the GTA 3 13 of the plurality of program areas 10, 11, 12, and 13 has been received.
  • the electronic device may identify whether the second application program corresponds to the first application program stored in the first area (S420).
  • the electronic device when a user command for installing the second application program in the second area is input, the electronic device includes a second application program corresponding to the second application program among applications installed in the remaining program areas except the second area. 1 Can identify the application.
  • the electronic device installs the second application program in the second area (S430). In other words, if the first application program corresponding to the second application does not exist among the application programs installed in the remaining program regions except the second region, the electronic device installs the second application program in the second region.
  • the electronic device When the second application program corresponds to the first application program (S420-Y), the electronic device maintains user data in the first area among data related to the first application program (S440), and among the data related to the first application program. At least a portion of the first area may be moved from the first area to the shared areas 21 and 22 (S450).
  • the electronic device if there is a first application program corresponding to the second application among the applications installed in the program area other than the second region, the electronic device has a first application program among the data related to the first application program. It is maintained in the existing program area, and data other than user data can be moved to the shared areas 21 and 22.
  • User Data 5 520 as shown in FIG. 5B is for indicating that user data is maintained in the program area 12 in which the first application program is present, and Program 5 530 as shown in FIG. 5B. Is for indicating that data other than user data is moved to the second shared area 22.
  • the User Data 1 620 as shown in FIG. 6B is for indicating that the user data is maintained in the program area 10 in which the first application program exists
  • the Program 1 ( 630) is for indicating that data other than user data is moved to the first shared area 21.
  • the electronic device may increase the reference value of the first application (S460).
  • Reference value 2 of Program 5 530 as illustrated in FIG. 5B indicates that at least some of data related to the first application program is the second in GTA 2 (12) among the plurality of program areas (10, 11, 12, 13). To indicate that the reference value of the first application has increased from 1 to 2 as it is moved to the shared area 22.
  • reference value 2 of Program 1 630 as shown in FIG. 6B indicates that at least some of the data related to the first application is removed from the HPA 10 among the plurality of program areas 10, 11, 12, and 13. To indicate that the reference value of the first application has increased from 1 to 2 as it is moved to the 1 shared area 21.
  • FIG. 7 is a flowchart illustrating a process in which at least a part of data related to an application program moved from a program area to a shared area is deleted in a shared area, according to an embodiment of the present disclosure.
  • 8A and 8B are diagrams for specifically showing a process in which at least some of data related to an application program moved from a program area to a shared area is deleted from the shared area.
  • the first application program has not been moved from the first area to the shared areas 21 and 22, the first application is applied to the remaining program areas other than the first area among the plurality of program areas 10, 11, 12 and 13 This means that no command has been received to install the program. Since this means that the first application program has not been referenced in the remaining program areas except the first area, it is not necessary to determine whether to delete it in consideration of the reference value of the first application program.
  • the electronic device may receive a user command for deleting the first application program from the first area among the plurality of program areas 10, 11, 12, and 13 (S710).
  • the electronic device may receive a user command for deleting the program 5 from the GTA 2 12 among the plurality of program areas 10, 11, 12 and 13.
  • the program 5 810 as shown in FIG. 8A is for indicating that a user command for deleting the program 5 from the GTA 3 13 of the plurality of program areas 10, 11, 12, and 13 has been received.
  • the electronic device may delete the user data from the data related to the first application in the first area (S720).
  • data other than user data is moved to the shared areas 21 and 22, and the user data is maintained in the first area, and the first application is located in the first area.
  • the electronic device may delete user data from the first area among data related to the first application.
  • the blank 820 as shown in FIG. 8B is to indicate that user data among data related to the first application program has been deleted from the GTA 2 (12) among the plurality of program areas (10, 11, 12, 13).
  • the electronic device may decrease the reference value of the first application (S730).
  • reference value 1 of Program 5 830 is that user data among the data related to the first application is deleted from GTA 2 (12) among the plurality of program areas 10, 11, 12 and 13. Accordingly, it is intended to indicate that the reference value of the first application program has decreased from 2 to 1.
  • the electronic device may determine whether to delete the first application based on the reference value of the first application (S740).
  • the electronic device first deletes only the user data from the data related to the first application from the first area, and then deletes the user data. Whether to delete the remaining data is determined according to a process as described below.
  • the electronic device may maintain data related to the first application in the shared areas 21 and 22 (S750). ).
  • the reference reference value of the first application is greater than 0, it means that there is a virtual machine referencing the first application among the plurality of virtual machines, and thus the electronic device shares data regarding the first application. It can hold in the regions 21 and 22.
  • the electronic device may delete data related to the first application from the shared areas 21 and 22 (S760).
  • the reference reference value of the first application when the reference reference value of the first application is 0, it means that there is no virtual machine referencing the first application among the plurality of virtual machines, so that the electronic device shares data related to the first application. (21, 22).
  • the efficiency of memory usage may be maximized in an electronic device in which a virtualization system including a plurality of virtual machines is implemented, and accordingly, utilization of the plurality of virtual machines may be significantly increased. And, this effect will be more remarkable as the number of virtual machines included in the virtualization system increases.
  • FIG. 9 is a block diagram illustrating a detailed configuration of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 100 includes a memory 110 and a processor 120. And, as illustrated in FIG. 9, the electronic device 100 according to an embodiment of the present disclosure may further include a communication unit 130, an output unit 140, and a user interface unit 150.
  • a configuration is exemplary, and in the implementation of the present disclosure, a new configuration may be added or some components may be omitted in addition to the configuration.
  • the communication unit 130 may communicate with an external electronic device (not shown) or a server (not shown).
  • the communication unit 130 may include at least one of a WiFi chip, a Bluetooth chip, a wireless communication chip, and an NFC chip.
  • Each of the WiFi chip and the Bluetooth chip can perform communication using a WiFi method or a Bluetooth method.
  • various connection information such as an SSID may be first transmitted and received, and then communication may be performed using this to transmit and receive various information.
  • the wireless communication chip means a chip that performs communication according to various communication standards such as IEEE, Zigbee, 3G (3rd Generation), 3GPP (3rd Generation Partnership Project), and LTE (Long Term Evolution).
  • the NFC chip means a chip that operates in a Near Field Communication (NFC) method using a 13.56 MHz band among various RF-ID frequency bands such as 135 kHz, 13.56 MHz, 433 MHz, 860 to 960 MHz, and 2.45 GHz.
  • NFC Near Field Communication
  • the communication unit 130 may receive a virtualization program, an auxiliary operating system, or an application program through an external electronic device (not shown) or a server (not shown).
  • the processor 120 may store the received virtualization program, auxiliary operating system, or application program in the memory 110.
  • the output unit 140 may output various functions that the electronic device 100 can perform.
  • the output unit 140 may include at least one of a display, a speaker, and an indicator.
  • the display may output image data under the control of the processor 120.
  • the processor 120 may control the display to provide a user interface (UI) for managing the electronic device 100 through the primary operating system and the secondary operating system. have. Then, the processor 120 may control the display to provide a user interface for managing the virtualization system according to the present disclosure. In addition, the processor 120 may control the output unit 140 to output various functions according to the execution of the application program.
  • UI user interface
  • the processor 120 may control the display to provide a user interface for managing the virtualization system according to the present disclosure.
  • the processor 120 may control the output unit 140 to output various functions according to the execution of the application program.
  • the user interface unit 150 receives a user command for controlling the overall operation of the electronic device 100.
  • the user interface unit 150 may be configured with a camera, microphone, remote control signal receiving unit, and the like.
  • the user interface unit 150 may be implemented in a form included in a display as a touch screen.
  • the user interface unit 150 may include a mouse and a keyboard. And, a user command for installing an application program according to the present disclosure and a user command for deleting an application program may be input through a mouse and a keyboard.
  • the user interface 150 may include a touch screen and a microphone. Further, a user command for installing an application program according to the present disclosure and a user command for deleting the application program may be input through a touch screen and a microphone.
  • FIG. 10 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
  • the electronic device includes a plurality of program areas corresponding to each of the main operating system and the plurality of virtual machines, and the main operating system and the plurality of virtual machines
  • the shared area corresponding to is allocated to the memory (S1010).
  • the electronic device may allocate a program area corresponding to the main operating system, a program area corresponding to the first virtual machine, and a program area corresponding to the second virtual machine in memory. have.
  • the electronic device may allocate a shared area corresponding to both the main operating system and a plurality of virtual machines to the memory.
  • the electronic device When a plurality of program areas and a shared area are allocated to the memory, the electronic device receives a user command for installing the second application program corresponding to the first application program stored in the first area in the second area (S1020).
  • the electronic device may receive a user command for installing the second application program in the second region of the plurality of program regions through the second virtual machine among the plurality of virtual machines.
  • the electronic device moves at least some of the data related to the first application program from the first area to the shared area (S1030).
  • the fact that the first application program corresponds to the second application program includes not only the case where the first application program is the same as the second application program, but also at least a portion of the data related to the first application program is the same as the data related to the second application program. It may include a case.
  • the specific meaning of the first application program corresponding to the second application program is described above in the description of FIG. 2, and duplicate description is omitted.
  • various embodiments of the electronic device as described above with reference to FIGS. 1 to 9 may be implemented similarly in the control method of the electronic device according to the present disclosure, but are duplicated. Is omitted.
  • control method of the electronic device may be implemented as a program and provided to the electronic device.
  • a program including a control method of an electronic device may be stored and provided in a non-transitory computer readable medium.
  • the control method of the electronic device includes a plurality of program areas corresponding to each of the main operating system and the plurality of virtual machines, and the main operating system And allocating a shared area corresponding to the plurality of virtual machines to the memory included in the electronic device, and a second application program corresponding to the first application stored in the first area of the plurality of program areas. And when a user command for installation is input to the second area, moving at least some of the data related to the first application from the first area to the shared area.
  • the non-transitory readable medium means a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short time, such as registers, caches, and memory.
  • a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
  • FIG. 11 is a diagram for explaining an embodiment of a case in which the electronic device 100 according to the present disclosure establishes a communication connection with the display device 200 and executes an auxiliary operating system accordingly.
  • the electronic device 100 may establish a communication connection with the display device 200.
  • the electronic device 100 may establish a communication connection with the display device 200 through the HDMI adapter 150 and a cable.
  • the electronic device 100 establishes a communication connection with preset input devices 300-1 and 300-2 including a keyboard and a mouse through short-range wireless communication, and preset input devices 300-1 and 300- 2)
  • preset input devices 300-1 and 300-2 including a keyboard and a mouse through short-range wireless communication, and preset input devices 300-1 and 300- 2
  • a user command may be input through the input devices 300-1 and 300-2.
  • the electronic device 100 may execute a secondary operating system through a virtual machine and provide a user interface according to the secondary operating system through the display device 200.
  • a secondary operating system For example, when Android is installed as the main operating system in the electronic device 100, when a communication connection is established between the electronic device 100 and the display device 200, the electronic device 100 is assisted through a virtual machine.
  • the system, Linux may be executed and a user interface according to Linux may be provided through the display device 200.
  • the electronic device 100 When a user interface according to an auxiliary operating system is provided through the display device 200, the electronic device 100 is based on user commands input through the electronic device 100 or external input devices 300-1 and 300-2. You can install the application on the secondary operating system, and run or delete the installed application. And, when the electronic device 100 establishes a communication connection with the display device 200 and executes the auxiliary operating system through the virtual machine accordingly, the present disclosure is directed to installation, execution, and deletion of applications on the auxiliary operating system Can be applied.
  • the electronic device 100 includes a first area corresponding to a main operating system among a plurality of program areas and a second area corresponding to a virtual machine among a plurality of program areas Can be allocated to the memory of the electronic device 100. Also, the electronic device 100 may allocate a shared area corresponding to both the main operating system and a plurality of virtual machines to the memory of the electronic device 100.
  • the electronic device 100 may identify whether the second application program corresponds to the first application program stored in the first area. That is, in the above example, when a user command for installing the second application program in the second area is input through the user interface according to Linux, the electronic device 100 displays the second application program stored in the first area. It can identify whether it corresponds to the application program.
  • the electronic device 100 displays the first application in which the second application is stored in the first area Can be identified.
  • the first application stored in the first area is an Android version of the application for running the game A
  • the Android version of the first application for running the same game A is the Linux version in which the Android and the kernel are common. It may be determined to correspond to the second application program.
  • the electronic device 100 maintains user data among the data related to the first application in the first area, and at least part of the data related to the first application is first You can move it from an area to a shared area.
  • the electronic device 100 is based on the data related to the first application moved to the shared area and the virtual machine and the auxiliary operating system Through the first application can be run.
  • the electronic device 100 communicates with the display device 200.
  • the display device 200 communicates with the display device 200.
  • it can be applied even when the secondary operating system is executed through the virtual machine accordingly.
  • the efficiency of memory usage may be maximized in an electronic device in which a virtualization system including a plurality of virtual machines is implemented, and accordingly, utilization of the plurality of virtual machines may be significantly increased. And, this effect will be more remarkable as the number of virtual machines included in the virtualization system increases.

Landscapes

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

Abstract

전자 장치 및 전자 장치의 제어 방법이 개시된다. 구체적으로, 본 개시는 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 주 운영 체제 및 복수의 가상 머신에 대응되는 공유 영역을 전자 장치에 포함되는 메모리에 할당하며, 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시키는 전자 장치 및 전자 장치의 제어 방법에 관한 것이다.

Description

전자 장치 및 전자 장치의 제어 방법
본 개시는 전자 장치 및 전자 장치의 제어 방법에 관한 것으로서, 구체적으로는 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에 있어서, 효율적으로 메모리를 관리할 수 있는 방법에 관한 것이다.
가상화(virtualization)는 최근 인터넷과 스마트 폰을 통한 클라우드 컴퓨팅이 확산되면서 주목받고 있는 기술 중 하나로서, 제한된 물리 시스템 하에서 다양한 컴퓨팅 환경을 제공할 수 있는 기술을 말한다.
그런데, 가상화 시스템 상에 구현된 복수의 가상 머신은 한정된 컴퓨팅 자원을 상호 공유하기 때문에, 가상 머신 상호 간에 불필요한 리소스의 낭비를 방지할 수 있는 기술이 필요하다.
구체적으로, 복수의 가상 머신에 할당된 각각의 영역에 동일한 데이터가 중복적으로 존재하는 경우, 메모리에 대한 비효율적인 사용이 초래된다. 특히, 이러한 비효율성은 그래픽 데이터가 필요한 게임이나 툴 관련 프로그램을 복수의 가상 머신 각각에 설치하는 경우에 더욱 부각된다.
따라서, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에 있어서, 효율적으로 메모리를 관리할 수 있는 기술에 대한 필요성이 대두되고 있다.
본 개시는 상술한 바와 같은 필요성에 따라 안출된 것으로서, 본 개시의 목적은 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에 있어서, 효율적으로 메모리를 관리할 수 있는 방법을 제공하기 위한 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 적어도 하나의 명령을 포함하는 메모리, 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함한다.
그리고, 상기 프로세서는 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 메모리에 할당하며, 상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시킨다.
여기서, 상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고, 상기 프로세서는 상기 복수의 프로그램 영역 중 제1 가상 머신에 대응되는 프로그램 영역에 저장된 상기 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 가상 머신에 대응되는 프로그램 영역에서 상기 제2 공유 영역으로 이동시킬 수 있다.
한편, 상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고, 상기 프로세서는 기 복수의 프로그램 영역 중 주 운영 체제에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 주 운영 체제에 대응되는 프로그램 영역에서 상기 제1 공유 영역으로 이동시킬 수 있다.
한편, 상기 프로세서는 상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 사용자와 관련된 사용자 데이터를 상기 제1 영역에 유지하고, 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터를 제외한 데이터를 상기 제1 영역에서 상기 공유 영역으로 이동시킬 수 있다.
여기서, 상기 프로세서는 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 상기 공유 영역으로 이동되면, 상기 제1 응용 프로그램에 관한 데이터가 상기 복수의 프로그램 영역에서 상기 공유 영역으로 이동된 횟수 및 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터가 상기 복수의 프로그램 영역에서 삭제된 횟수와 관련된 참조 값(reference count)을 증가시킬 수 있다.
여기서, 상기 프로세서는 상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 사용자 데이터를 상기 제1 영역에서 삭제하고, 상기 사용자 데이터가 삭제되면, 상기 참조 값을 감소시킬 수 있다.
여기서, 상기 프로세서는 상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 참조 값을 바탕으로 상기 제1 응용 프로그램의 삭제 여부를 결정할 수 있다.
여기서, 상기 프로세서는 상기 참조 값이 0 보다 크면, 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에 유지하고, 상기 참조 값이 0 이면, 상기 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에서 삭제할 수 있다.
한편, 상술한 바와 같은 본 개시의 목적을 달성하기 위한 전자 장치의 제어방법은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 전자 장치에 포함되는 메모리에 할당하는 단계 및 상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 단계를 포함한다.
여기서, 상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고, 상기 이동시키는 단계는 상기 복수의 프로그램 영역 중 제1 가상 머신에 대응되는 프로그램 영역에 저장된 상기 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 가상 머신에 대응되는 프로그램 영역에서 상기 제2 공유 영역으로 이동시키는 것일 수 있다.
한편, 상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고, 상기 이동시키는 단계는 상기 복수의 프로그램 영역 중 주 운영 체제에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 주 운영 체제에 대응되는 프로그램 영역에서 상기 제1 공유 영역으로 이동시키는 것일 수 있다.
한편, 상기 이동시키는 단계는 상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 사용자와 관련된 사용자 데이터를 상기 제1 영역에 유지하고, 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터를 제외한 데이터를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 것일 수 있다.
여기서, 전자 장치의 제어 방법은 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 상기 공유 영역으로 이동되면, 상기 제1 응용 프로그램에 관한 데이터가 상기 복수의 프로그램 영역에서 상기 공유 영역으로 이동된 횟수 및 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터가 상기 복수의 프로그램 영역에서 삭제된 횟수와 관련된 참조 값(reference count)을 증가시키는 단계를 더 포함할 수 있다.
여기서, 전자 장치의 제어 방법은 상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 사용자 데이터를 상기 제1 영역에서 삭제하는 단계 및 상기 사용자 데이터가 삭제되면, 상기 참조 값을 감소시키는 단계를 더 포함할 수 있다.
여기서, 전자 장치의 제어 방법은 상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 참조 값을 바탕으로 상기 제1 응용 프로그램의 삭제 여부를 결정하는 단계를 더 포함할 수 있다.
여기서, 전자 장치의 제어 방법은 상기 참조 값이 0 보다 크면, 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에 유지하고, 상기 참조 값이 0 이면, 상기 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에서 삭제하는 단계를 더 포함할 수 있다.
한편, 상술한 바와 같은 본 개시의 목적을 달성하기 위한 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서, 상기 제어 방법은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 전자 장치에 포함되는 메모리에 할당하는 단계 및 상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 단계를 포함한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 제어 과정을 간략하게 나타내기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략하게 나타내는 블록도,
도 3a는 본 개시에 따른 가상화 시스템의 구성을 상세하게 나타내는 도면이고, 도 3b는 본 개시에 따른 가상화 시스템에 포함되는 복수의 영역에 복수의 응용 프로그램이 설치된 상태를 나타내는 도면,
도 4는 본 개시의 일 실시 예에 따라, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정을 나타내는 흐름도이다. 그리고, 도 5a 내지 도 6b는 본 개시의 일 실시 예에 따라, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정을 구체적으로 나타내기 위한 도면,
도 7은 본 개시의 일 실시 예에 따라, 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정을 나타내는 흐름도이다. 그리고, 도 8a 및 도 8b는 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정을 구체적으로 나타내기 위한 도면,
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세하게 나타내는 블록도,
도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도, 그리고,
도 11은 본 개시에 따른 전자 장치가 디스플레이 장치와 통신 연결을 수립하고, 그에 따라 보조 운영 체제를 실행하는 경우에 관한 실시 예를 설명하기 위한 도면이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 제어 과정을 간략하게 나타내기 위한 도면이다.
본 개시에 따른 전자 장치는 PC(Personal Computer), 스마트폰, 태블릿 PC, 서버 등을 포함할 수 있다. 그러나, 후술하는 바와 같은 복수의 가상 머신을 포함하는 가상화 시스템을 구현하여 본 개시의 목적을 달성할 수 있는 범위 내에서라면, 전자 장치의 종류에 특별한 제한이 있는 것은 아니다.
본 개시의 일 실시 예에 따른 전자 장치는 복수의 가상 머신을 포함하는 가상화 시스템을 구현할 수 있다. 그리고, 본 개시에 따른 가상화 시스템은 물리적 하드웨어(Physical Hardware), 주 운영 체제(Host Operating System), 가상화 프로그램(Virtualization Program), 복수의 가상 머신(Virtual Machin) 및 보조 운영 체제(Guest Operating System)를 포함할 수 있다.
주 운영 체제는 전자 장치를 구성하는 물리적 하드웨어를 관리할 뿐만 아니라 다양한 응응 프로그램을 실행하기 위한 플랫폼을 제공할 수 있다. 그리고, 가상화 프로그램은 전자 장치를 구성하는 하나의 하드웨어에서 복수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼인 하이퍼바이저(hypervisor)를 제공할 수 있다.
가상화 프로그램을 통하여 주 운영 체제 상에 복수의 가상 머신이 구현되면, 복수의 가상 머신 각각은 전자 장치를 구성하는 물리적 하드웨어의 일부 리소스를 할당받을 수 있다. 그리고, 복수의 가상 머신 각각에 대응되는 복수의 보조 운영 체제가 설치되면, 전자 장치는 복수의 보조 운영 체제를 통하여 복수의 가상 머신 상에서 다양한 응용 프로그램을 실행할 수 있다.
구체적으로, 복수의 가상 머신에는 서로 동일한 보조 운영 체제가 설치되어 서로 다른 사용자가 동일한 보조 운영 체제를 활용할 수 있도록 구현될 수도 있으며, 서로 상이한 보조 운영 체제가 설치되어 동일한 사용자가 다양한 보조 운영 체제를 활용할 수 있도록 구현될 수도 있다.
한편, 도 1에 도시된 바와 같이, 본 개시에 따른 가상화 시스템은 복수의 프로그램 영역(10, 11, 12) 및 공유 영역(20)을 포함한다. 그리고, 복수의 프로그램 영역(10, 11, 12)은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 영역을 포함하며, 공유 영역(20)은 주 운영 체제 및 복수의 가상 머신에 대응된다.
즉, 상술한 바와 같은 가상화 시스템이 구현되면, 전자 장치는 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역(10, 11, 12)과, 주 운영 체제 및 복수의 가상 머신에 대응되는 공유 영역(20)을 전자 장치를 구성하는 물리적 하드웨어에 할당할 수 있다.
구체적으로, 전자 장치는 주 운영 체제에 대응되는 프로그램 영역(10), 제1 가상 머신에 대응되는 프로그램 영역(11) 및 제2 가상 머신에 대응되는 프로그램 영역(12)을 전자 장치를 구성하는 물리적 하드웨어에 할당할 수 있다. 그리고, 전자 장치는 주 운영 체제 및 복수의 가상 머신 모두에 대응되는 공유 영역(20)을 전자 장치를 구성하는 물리적 하드웨어에 할당할 수 있다.
여기서, 물리적 하드웨어는 전자 장치를 구성하는 모든 물리적 하드웨어의 집합을 의미할 수도 있으나, 특히 본 개시에 따른 복수의 프로그램 영역(10, 11, 12) 및 공유 영역(20)은 전자 장치를 구성하는 물리적 하드웨어 중에서도 특히 메모리에 할당된 영역을 의미할 수 있다.
상술한 바와 같은 가상화 시스템이 구현된 상태에서, 복수의 프로그램 영역(10, 11, 12) 중 제1 영역(11)에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 복수의 프로그램 영역(10, 11, 12) 중 제2 영역(12)에 설치하기 위한 사용자 명령이 입력되면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역(11)에서 공유 영역(20)으로 이동시킬 수 있다.
구체적으로, 전자 장치는 복수의 가상 머신 중 제2 가상 머신을 통하여 제2 응용 프로그램을 복수의 프로그램 영역(10, 11, 12) 중 제2 영역(12)에 설치하기 위한 사용자 명령을 수신할 수 있다.
이 경우, 사용자가 제2 영역(12)에 설치하고자 하는 제2 응용 프로그램이 복수의 프로그램 영역(10, 11, 12) 중 제1 영역(11)에 저장된 제1 응용 프로그램에 대응되면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역(11)에서 공유 영역(20)으로 이동시킬 수 있다.
여기서, 제1 응용 프로그램이 제2 응용 프로그램에 대응된다는 것은 제1 응용 프로그램이 제2 응용 프로그램과 동일한 경우뿐만 아니라, 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 제2 응용 프로그램에 관한 데이터와 동일한 경우를 포함할 수 있다.
제1 응용 프로그램과 제2 응용 프로그램이 대응되는 경우에 대한 구체적인 설명은 도 2에 대한 설명에서 후술한다.
제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역(11)에서 공유 영역(20)으로 이동되면, 전자 장치는 제2 가상 머신을 통하여 공유 영역(20)으로 이동된 제1 응응 프로그램에 관한 데이터를 사용할 수 있다. 구체적으로, 전자 장치는 공유 영역(20)으로 이동된 제1 응용 프로그램에 관한 데이터를 바탕으로, 제2 가상 머신을 통하여 제1 응용 프로그램을 실행할 수 있다.
상술한 바와 같은 본 개시의 일 실시 예에 따르면, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서, 서로 대응되는 응용 프로그램을 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역에 중복하여 설치하는 것을 방지할 수 있으며, 이로써 불필요한 리소스의 낭비를 방지할 수 있다.
그리고, 이에 따라, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서 메모리 사용의 효율성이 극대화될 수 있으며, 또한 복수의 가상 머신의 활용도가 현저하게 상승될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략하게 나타내는 블록도이다.
도 2에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)에는 전자 장치(100)에 관한 적어도 하나의 명령이 저장될 수 있다. 그리고, 메모리(110)에는 전자 장치(100)를 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(110)에는 본 개시의 다양한 실시 예들에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(110)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(110)에는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 각종 소프트웨어 모듈을 실행하여 전자 장치(100)의 동작을 제어할 수 있다.
특히, 본 개시의 다양한 실시 예에 있어서, 메모리(110)에는 주 운영 체제, 가상화 프로그램 및 보조 운영 체제에 관한 소프트웨어가 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 소프트웨어를 실행하여 복수의 가상 머신을 포함하는 가상화 시스템을 구현할 수 있다. 또한, 메모리(110)에는 응용 프로그램이 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 응용 프로그램을 실행할 수 있다.
한편, 후술하는 바와 같이, 메모리(110)에는 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 주 운영 체제 및 복수의 가상 머신에 대응되는 공유 영역이 할당될 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(120)는 메모리(110)를 포함하는 전자 장치(100)의 구성과 연결되며, 상술한 바와 같은 메모리(110)에 저장된 적어도 하나의 명령을 실행하여 전자 장치(100)의 동작을 전반적으로 제어한다.
프로세서(120)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(120)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다.
또한, 프로세서(120)는 ROM, RAM, GPU(Graphic Processing Unit), CPU 및 버스를 포함할 수 있으며, ROM, RAM, GPU(Graphic Processing Unit), CPU 등은 버스를 통해 서로 연결될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(110)에 저장된 소프트웨어를 실행하여 복수의 가상 머신을 포함하는 가상화 시스템을 구현할 수 있다. 그리고, 본 개시에 따른 가상화 시스템은 물리적 하드웨어(Physical Hardware), 주 운영 체제(Host Operating System), 가상화 프로그램(Virtualization Program), 복수의 가상 머신(Virtual Machin) 및 보조 운영 체제(Guest Operating System)를 포함할 수 있다.
주 운영 체제는 전자 장치(100)를 구성하는 물리적 하드웨어를 관리할 뿐만 아니라 다양한 응응 프로그램을 실행하기 위한 플랫폼을 제공할 수 있다. 그리고, 가상화 프로그램은 전자 장치(100)를 구성하는 하나의 하드웨어에서 복수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼인 하이퍼바이저(hypervisor)을 제공할 수 있다.
가상화 프로그램을 통하여 주 운영 체제 상에 복수의 가상 머신이 구현되면, 복수의 가상 머신 각각은 전자 장치(100)를 구성하는 물리적 하드웨어의 일부 리소스를 할당받을 수 있다. 그리고, 복수의 가상 머신 각각에 대응되는 복수의 보조 운영 체제가 설치되면, 전자 장치(100)는 복수의 보조 운영 체제를 통하여 복수의 가상 머신 상에서 다양한 응용 프로그램을 실행할 수 있다.
구체적으로, 복수의 가상 머신에는 서로 동일한 보조 운영 체제가 설치되어 서로 다른 사용자가 동일한 보조 운영 체제를 활용할 수 있도록 구현될 수도 있으며, 서로 상이한 보조 운영 체제가 설치되어 동일한 사용자가 다양한 보조 운영 체제를 활용할 수 있도록 구현될 수도 있다.
한편, 본 개시에 따른 주 운영 체제 및 보조 운영 체제가 특정 운영 체제에 국한되는 것은 아니다. 예를 들어, 본 개시에 따른 전자 장치가 PC(Personal Computer)로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 각각 Windows, Mac OS 및 Linux 중 적어도 하나일 수 있다. 또한, 본 개시에 따른 전자 장치가 스마트폰으로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 Android, iOS 및 Windows Mobile 중 적어도 하나일 수 있다. 그리고, 본 개시에 따른 전자 장치가 서버로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 Linux, Unix 및 Windows Server 중 적어도 하나일 수 있다. 그 밖에도, 본 개시에 따른 주 운영 체제 및 보조 운영 체제는 전자 장치의 종류 및 사용자의 사용 목적에 따라 다양하게 선택될 수 있다.한편, 도 1에 대한 설명에서 상술한 바와 같이, 본 개시에 따른 가상화 시스템은 복수의 프로그램 영역 및 공유 영역을 포함한다. 그리고, 복수의 프로그램 영역은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 영역을 포함하며, 공유 영역은 주 운영 체제 및 복수의 가상 머신에 대응된다.
즉, 상술한 바와 같은 가상화 시스템이 구현되면, 프로세서(120)는 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 주 운영 체제 및 복수의 가상 머신에 대응되는 공유 영역을 전자 장치(100)를 구성하는 물리적 하드웨어에, 그 중에서도 특히 메모리(110)에 할당할 수 있다.
구체적으로, 프로세서(120)는 주 운영 체제에 대응되는 프로그램 영역, 제1 가상 머신에 대응되는 프로그램 영역 및 제2 가상 머신에 대응되는 프로그램 영역을 메모리(110)에 할당할 수 있다. 그리고, 프로세서(120)는 주 운영 체제 및 복수의 가상 머신 모두에 대응되는 공유 영역을 메모리(110)에 할당할 수 있다.
한편, 프로세서(120)는 상술한 바와 같이 구현된 가상화 시스템을 전제로, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정과, 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정 전반을 제어할 수 있다.
복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시킨다.
구체적으로, 프로세서(120)는 복수의 가상 머신 중 제2 가상 머신을 통하여 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령을 수신할 수 있다. 제2 영역(12)은 제2 가상 머신에 대응되는 프로그램 영역이므로, 제2 영역(12)에 응용 프로그램을 설치하기 위한 사용자 명령은 제2 가상 머신을 통하여 입력될 수 있다.
복수의 프로그램 영역에 응용 프로그램을 설치하거나 복수의 프로그램에서 응용 프로그램을 삭제하기 위한 사용자 명령이 해당 프로그램 영역에 대응되는 가상 머신을 통하여 입력된다는 것은 당연한 전제이므로, 이하에서는 구체적으로 언급하지 않는다.
이 경우, 사용자가 제2 영역에 설치하고자 하는 제2 응용 프로그램이 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시킬 수 있다.
여기서, 제1 응용 프로그램이 제2 응용 프로그램에 대응된다는 것은 제1 응용 프로그램이 제2 응용 프로그램과 동일한 경우뿐만 아니라, 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 제2 응용 프로그램에 관한 데이터와 동일한 경우를 포함할 수 있다.
구체적으로, 공유 영역에 이동된 제1 응용 프로그램에 관한 데이터를 사용함으로써, 제2 영역에 제2 응용 프로그램을 설치하여 실행하는 것과 같은 결과를 획득할 수 있다면, 제1 응용 프로그램과 제2 응용 프로그램은 서로 대응되는 것으로 판단될 수 있다.
예를 들어, 제1 가상 머신과 제2 가상 머신에 서로 다른 유형의 보조 운영 체제인 제1 보조 운영 체제와 제2 보조 운영 체제가 각각 설치된 경우, 제1 응용 프로그램이 제1 보조 운영 체제를 지원하고 제2 응용 프로그램은 제2 보조 운영 체제를 지원한다면, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 사용자가 제2 가상 머신을 통하여 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되지 않는 것으로 판단될 수 있다.
그러나, 제1 가상 머신과 제2 가상 머신에 서로 다른 유형의 보조 운영 체제인 제1 보조 운영 체제와 제2 보조 운영 체제가 각각 설치된 경우라도, 제1 응용 프로그램이 제1 보조 운영 체제와 제2 보조 운영 체제를 모두 지원하는 크로스 플랫폼(cross-platform) 형태라면, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 사용자가 제2 가상 머신을 통하여 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되는 것으로 판단될 수 있다.
한편, 제1 가상 머신과 제2 가상 머신에 서로 다른 유형의 보조 운영 체제인 제1 보조 운영 체제와 제2 보조 운영 체제가 각각 설치되고, 제1 응용 프로그램이 제1 보조 운영 체제를 지원하고 제2 응용 프로그램은 제2 보조 운영 체제를 지원하는 경우라도, 제1 보조 운영 체제와 제2 운영 체제가 커널(Kernel)을 공통으로 하면, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 제2 가상 머신에 대응되는 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되는 것으로 판단될 수 있다.
예를 들어, 제1 가상 머신 및 제2 가상 머신에 Android와 Linux가 각각 제1 보조 운영 체제와 제2 보조 운영 체제로 설치되고, 제1 응용 프로그램이 Android를 지원하고 제2 응용 프로그램은 Linux를 지원하는 경우라도, Android와 Linux는 커널을 공통으로 하므로 제2 영역에 설치하고자 하는 제2 응용 프로그램은 제1 영역에 저장된 제1 응용 프로그램과 대응되는 것으로 판단될 수 있다. 즉, 게임 A를 실행하기 위한 Android 버전의 제1 응용 프로그램은 Android와 커널을 공통으로 하는 Linux 버전의 게임 A를 실행하기 위한 제2 응용 프로그램과 대응되는 것으로 판단될 수 있다.
한편, 제1 응용 프로그램과 제2 응용 프로그램이 동일한 응용 프로그램에 대한 서로 다른 버전의 응용 프로그램인 경우, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 사용자가 제2 가상 머신을 통하여 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되지 않는 것으로 판단될 수 있다.
그러나, 제1 응용 프로그램과 제2 응용 프로그램이 동일한 응용 프로그램에 대한 서로 다른 버전의 응용 프로그램인 경우라도, 서로 다른 버전이 응용 프로그램의 부수적인 부분의 변경만을 초래하는 서브 버전에 있어서만 차이가 있는 것이라면, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 사용자가 제2 가상 머신을 통하여 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되는 것으로 판단될 수 있다.
특히, 제1 응용 프로그램을 플러그인(plugin) 내지는 애드온(add-on)형태로 업그레이드하여 제2 응용 프로그램과 동일한 버전의 응용 프로그램이 될 수 있는 경우라면, 제1 가상 머신에 대응되는 제1 영역에 저장된 제1 응용 프로그램과 사용자가 제2 가상 머신을 통하여 제2 영역에 설치하고자 하는 제2 응용 프로그램은 서로 대응되는 것으로 판단될 수 있다.
한편, 상술한 바와 같은 공유 영역은 주 운영 체제에 대응되는 제1 공유 영역 및 복수의 가상 머신에 대응되는 제2 공유 영역을 포함할 수 있다.
그리고, 복수의 프로그램 영역 중 제1 가상 머신에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 가상 머신에 대응되는 프로그램 영역에서 제2 공유 영역으로 이동시킬 수 있다.
또한, 복수의 프로그램 영역 중 주 운영 체제에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 주 운영 체제에 대응되는 프로그램 영역에서 제1 공유 영역으로 이동시킬 수 있다.
한편, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 프로그램 영역에서 공유 영역으로 이동시키는 경우, 제1 응용 프로그램에 관한 데이터 중 사용자 데이터는 제1 영역에 유지할 수 있다.
구체적으로, 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터 중 사용자와 관련된 사용자 데이터를 제1 영역에 유지하고, 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제외한 데이터를 제1 영역에서 공유 영역으로 이동시킬 수 있다.
여기서, 사용자 데이터란 응용 프로그램에 관한 데이터 중 사용자에 관련된 데이터를 의미한다. 특히, 본 개시에 있어서, 사용자 데이터는 주 운영 체제 및 복수의 가상 머신 상호 간에 공유될 필요가 없는 데이터를 총칭하는 의미로 사용될 수 있다. 즉, 본 개시에 있어서, 공유 영역으로 이동된 응용 프로그램에 관한 데이터는 주 운영 체제 및 복수의 가상 머신 상호 간에 공유된다. 그런데, 사용자에 관련된 데이터는 주 운영 체제 및 복수의 가상 머신 상호 간에 공유될 필요가 없거나 공유되어서는 안 되는 경우가 일반적이다.
예를 들어, 응용 프로그램의 사용자 환경 설정에 관한 데이터 및 사용자가 응용 프로그램을 사용하여 생성한 데이터 등의 경우에는 주 운영 체제 및 복수의 가상 머신 상호 간에 공유될 필요가 없는 것이 일반적이며, 사용자의 계정 정보에 관한 데이터의 경우에는 공유되어서는 안 되는 경우가 일반적이다.
따라서, 본 개시에 있어서 사용자 데이터는 상술한 예를 포함하여, 주 운영 체제 및 복수의 가상 머신 상호 간에 공유될 필요가 없는 데이터를 총칭하는 의미로 사용될 수 있다. 다만, 구체적인 사용자 데이터는 응용 프로그램의 종류와 해당 응용 프로그램을 통한 사용자의 활동에 따라 달라질 수 있음은 물론이다.
한편, 상술한 바와 같이 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역으로 이동되면, 프로세서(120)는 제1 응용 프로그램의 참조 값(reference count)을 증가시킬 수 있다.
한편, 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 프로세서(120)는 사용자 데이터를 제1 영역에서 삭제할 수 있다. 그리고, 프로세서(120)는 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령에 따라 사용자 데이터가 삭제되면, 제1 응응 프로그램에 관한 참조 값을 감소시킬 수 있다.
여기서, 참조 값이란 메모리(110) 관리 방법 중 참조 횟수 계산 방식(reference counting)을 적용하기 위한 것으로서, 해당 응용 프로그램을 참조하고 있는 가상 머신의 개수를 파악하기 위한 수치를 의미한다. 즉, 참조 값은 제1 응용 프로그램에 관한 데이터가 복수의 프로그램 영역에서 공유 영역으로 이동된 횟수 및 제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역에서 삭제된 횟수와 관련된다.
구체적으로, 복수의 프로그램 영역에 제1 응용 프로그램이 설치되는 경우 제1 응용 프로그램의 참조 값은 1이 된다. 그리고, 제1 응용 프로그램에 관한 데이터가 복수의 프로그램 영역에서 공유 영역으로 이동되면, 제1 응용 프로그램의 참조 값은 2로 증가될 수 있다. 또한, 제1 응용 프로그램의 참조 값이 2로 증가된 상태에서, 제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역에서 삭제되면, 제1 응용 프로그램의 참조 값은 1로 감소될 수 있다.
한편, 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 프로세서(120)는 참조 값을 바탕으로 제1 응용 프로그램의 삭제 여부를 결정할 수 있다. 구체적으로, 참조 값이 0 보다 크면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터를 공유 영역에 유지할 수 있다. 반면, 참조 값이 0 이면, 프로세서(120)는 제1 응용 프로그램에 관한 데이터를 공유 영역에서 삭제할 수 있다.
다시 말해, 제1 응용 프로그램의 참조 참조 값이 0 보다 크면, 복수의 가상 머신 중 제1 응용 프로그램을 참조하고 있는 가상 머신이 존재한다는 의미가 되므로, 전자 장치(100)는 제1 응용 프로그램에 관한 데이터를 공유 영역에 유지할 수 있다. 반면, 제1 응용 프로그램의 참조 참조 값이 0 이면, 복수의 가상 머신 중 제1 응용 프로그램을 참조하고 있는 가상 머신이 존재하지 않는다는 의미가 되므로, 전자 장치(100)는 제1 응용 프로그램에 관한 데이터를 공유 영역에서 삭제할 수 있다.
한편, 전술한 바와 같이, 프로세서(120)가 메모리(110)에 저장된 적어도 하나의 명령을 실행하여 본 개시에 따른 제어 과정을 수행할 수 있다. 특히, 본 개시에 따른 제어 과정에 관련된 명령은 소프트웨어로 구현되어 메모리(110)에 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 소프트웨어를 실행하여 본 개시에 따른 제어 과정을 수행할 수 있다.
구체적으로, 본 개시에 따른 다양한 실시 예는 주 운영 체제에 포함된 코드, 보조 운영 체제에 포함된 코드, 주 운영 체제에 설치된 프로그램 및 보조 운영 체제에 설치된 프로그램 중 적어도 하나를 통해 구현될 수 있다. 또한, 프로세서(120)는 주 운영 체제, 보조 운영 체제, 주 운영 체제에 설치된 프로그램 또는 보조 운영 체제에 설치된 프로그램을 통해 본 개시에 따른 제어 과정을 수행할 수 있는지 순차적으로 식별하고, 식별 결과에 따라 제어 과정을 수행할 수 있다.
예를 들어, 프로세서(120)는 본 개시에 따른 제어 과정이 보조 운영 체제에 포함된 코드를 통해 수행될 수 있는지, 보조 운영 체제에 포함된 코드에 의해 수행될 수 없다면 주 운영 체제에 포함된 코드를 통해 수행될 수 있는지를 식별하고, 식별 결과에 따라 보조 운영 체제에 포함된 코드 또는 주 운영 체제에 포함된 코드를 바탕으로 본 개시에 따른 제어 과정을 수행할 수 있다.
그리고, 본 개시에 따른 제어 과정이 보조 운영 체제에 포함된 코드 및 주 운영 체제에 포함된 코드를 통해 수행될 수 없는 것으로 식별되면, 프로세서(120)는 보조 운영 체제에 설치된 프로그램을 통해 수행될 수 있는지, 보조 운영 체제에 설치된 프로그램을 통해 수행될 수 없다면 주 운영 체제에 설치된 프로그램을 통해 수행될 수 있는지를 식별하고, 식별 결과에 따라 보조 운영 체제에 설치된 프로그램 또는 주 운영 체제에 설치된 프로그램을 바탕으로 본 개시에 따른 제어 과정을 수행할 수 있다.
한편, 이상에서는 응용 프로그램에 관한 데이터 중 적어도 일부가 복수의 가상 머신 중 어느 하나의 가상 머신에 대응되는 프로그램 영역에서 복수의 가상 머신에 대응되는 공유 영역으로 이동되는 경우에 관한 실시 예에 대하여 설명하였으나, 응용 프로그램에 관한 데이터 중 적어도 일부는 주 운영 체제에 대응되는 프로그램 영역에서 주 운영 체제에 대응되는 공유 영역으로 이동될 수도 있다. 이와 같은 실시 예에 대해서는 도 6a 및 6b에 대한 설명에서 상술한다.
이하에서는 본 개시에 따른 가상화 시스템의 상세한 구성을 전제로, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정과, 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정에 대하여 보다 구체적으로 설명한다.
도 3a는 본 개시에 따른 가상화 시스템의 구성을 상세하게 나타내는 도면이고, 도 3b는 본 개시에 따른 가상화 시스템에 포함되는 복수의 영역에 복수의 응용 프로그램이 설치된 상태를 나타내는 도면이다.
도 3a를 참조하면, 본 개시에 따른 가상화 시스템은 물리적 하드웨어(Physical Hardware), 주 운영 체제(Host Operation System(OS)), 가상화 프로그램(Virtualization Program), 복수의 가상 머신(Virtual Machine) 및 보조 운영 체제(Guest Operation System(OS))를 포함할 수 있다.
주 운영 체제는 전자 장치를 구성하는 물리적 하드웨어를 관리할 뿐만 아니라 다양한 응응 프로그램을 실행하기 위한 플랫폼을 제공할 수 있다. 그리고, 가상화 프로그램은 전자 장치를 구성하는 하나의 하드웨어에서 복수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼인 하이퍼바이저(hypervisor)를 제공할 수 있다.
가상화 프로그램을 통하여 주 운영 체제 상에 복수의 가상 머신이 구현되면, 복수의 가상 머신 각각은 전자 장치를 구성하는 물리적 하드웨어의 일부 리소스를 할당받을 수 있다. 그리고, 복수의 가상 머신 각각에 대응되는 복수의 보조 운영 체제가 설치되면, 전자 장치는 복수의 보조 운영 체제를 통하여 다양한 응용 프로그램을 실행할 수 있다.
구체적으로, 도 3a에 도시된 바와 같이, 제1 가상 머신, 제2 가상 머신 및 제3 가상 머신 상에는, 각각 보조 운영 체제(Guest-VM1), 보조 운영 체제(Guest -VM2) 및 보조 운영 체제(Guest -VM3)가 설치될 수 있다.
한편, 본 개시에 따른 주 운영 체제 및 보조 운영 체제가 특정 운영 체제에 국한되는 것은 아니다. 예를 들어, 본 개시에 따른 전자 장치가 PC(Personal Computer)로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 각각 Windows, Mac OS 및 Linux 중 적어도 하나일 수 있다. 또한, 본 개시에 따른 전자 장치가 스마트폰으로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 Android, iOS 및 Windows Mobile 중 적어도 하나일 수 있다. 그리고, 본 개시에 따른 전자 장치가 서버로 구현되는 경우, 주 운영 체제 및 보조 운영 체제는 Linux, Unix 및 Windows Server 중 적어도 하나일 수 있다. 그 밖에도, 본 개시에 따른 주 운영 체제 및 보조 운영 체제는 전자 장치의 종류 및 사용자의 사용 목적에 따라 다양하게 선택될 수 있다.
한편, 도 3a에 도시된 바와 같이, 본 개시에 따른 가상화 시스템은 복수의 프로그램 영역(10, 11, 12, 13) 및 공유 영역(21, 22)을 포함한다. 그리고, 복수의 프로그램 영역(10, 11, 12, 13)은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 영역을 포함하며, 공유 영역(21, 22)은 주 운영 체제 및 복수의 가상 머신에 대응된다.
구체적으로, 본 개시에 따른 가상화 시스템은 주 운영 체제에 대응되는 프로그램 영역(10)(Host Program Data Area: HPA), 제1 가상 머신에 대응되는 프로그램 영역(11)(Gust Program Data Area 1: GPA 1), 제2 가상 머신에 대응되는 프로그램 영역(12)(Gust Program Data Area 2: GPA 2) 및 제3 가상 머신에 대응되는 프로그램 영역(13)(Gust Program Data Area 3: GPA 3)을 포함할 수 있다.
그리고, 본 개시에 따른 가상화 시스템은 주 운영 체제 및 복수의 가상 머신 모두에 대응되는 공유 영역(21, 22)을 포함할 수 있다. 구체적으로, 본 개시에 따른 가상화 시스템은 주 운영체제에 대응되는 제1 공유 영역(21)(Host Shared Area: HSA) 및 복수의 가상 머신에 대응되는 제2 공유 영역(22)(Guest Shared Area: GSA)를 포함할 수 있다.
한편, 본 개시에 따른 복수의 프로그램 영역(10, 11, 12, 13)과 공유 영역(21, 22)이 전자 장치를 구성하는 하드웨어가 물리적으로 구분된 복수의 영역을 의미하는 것은 아니다. 즉, 복수의 프로그램 영역(10, 11, 12, 13)과 공유 영역(21, 22)은 물리적 하드웨어의 일부 리소스가 주 운영 체제 및 복수의 가상 머신 각각에 할당됨에 따라 추상적으로 구분된 복수의 영역을 의미한다. 따라서, 이하에서 공유 영역(21, 22)을 제1 공유 영역(21)과 제2 공유 영역(22)으로 나누어 특정하는 것은 주 운영 체제에 대응되는 공유 영역(21)과 복수의 가상 머신에 대응되는 공유 영역(22)으로 명확하게 구분하여 설명하기 위한 것에 불과하다.
한편, 본 개시에 따른 복수의 프로그램 영역(10, 11, 12, 13) 및 공유 영역(21, 22)은 전자 장치를 구성하는 물리적 하드웨어 중에서도 특히 메모리에 할당된 영역을 의미한다는 것은 전술한 바 있다.
이하 도 3b, 도 5a, 도 5b, 도 6a, 도 6b, 도 8a 및 도 8b에서는 편의 상, 주 운영 체제에 대응되는 프로그램 영역(10)을 HPA로, 복수의 가상 머신 각각에 대응되는 프로그램 영역(11, 12, 13)을 GPA 1, GPA 2 및 GPA 3으로, 주 운영 체제에 대응되는 공유 영역(21)을 HAS로, 복수의 가상 머신에 대응되는 공유 영역(22)을 GHA로 약칭한다.
한편, 상술한 바와 같은 가상화 시스템이 구현된 상태에서, 복수의 프로그램 영역(10, 11, 12, 13)에는 복수의 응용 프로그램이 설치될 수 있다.
구체적으로, 도 3b에 도시된 바와 같이, 주 운영 체제에 대응되는 프로그램 영역(10)에는 프로그램 1 및 프로그램 2가 설치될 수 있다. 또한, 제1 가상 머신에 대응되는 프로그램 영역(11)에는 프로그램 3 및 프로그램 4가 설치될 수 있고,, 제2 가상 머신에 대응되는 프로그램 영역(12)에는 프로그램 5 및 프로그램 6이 설치될 수 있으며, 그리고 제3 가상 머신에 대응되는 프로그램 영역(13)에는 프로그램 7 및 프로그램 8이 설치될 수 있다.
한편, 도 3b를 참조하면, Program 1(1)과 같이 응용 프로그램의 참조 값(reference count)이 기재되어 있다. 참조 값은 응용 프로그램에 관한 데이터가 복수의 프로그램 영역(10, 11, 12, 13)에서 공유 영역(21, 22)으로 이동된 횟수 및 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역(10, 11, 12, 13)에서 삭제된 횟수와 관련된다.
예를 들어, 복수의 프로그램 영역(10, 11, 12, 13)에 제1 응용 프로그램이 설치되는 경우 제1 응용 프로그램의 참조 값은 1이 된다. 그리고, 제1 응용 프로그램에 관한 데이터가 복수의 프로그램 영역(10, 11, 12, 13)에서 공유 영역(21, 22)으로 이동되면, 제1 응용 프로그램의 참조 값은 2로 증가될 수 있다. 또한, 제1 응용 프로그램의 참조 값이 2로 증가된 상태에서, 제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역(10, 11, 12, 13)에서 삭제되면, 제1 응용 프로그램의 참조 값은 1로 감소될 수 있다.
이하에서는 상술한 바와 같이 구현된 가상화 시스템을 전제로, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역(10, 11, 12, 13)에서 공유 영역(21, 22)으로 이동하는 과정과, 프로그램 영역(10, 11, 12, 13)에서 공유 영역(21, 22)으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역(21, 22)에서 삭제되는 과정에 대하여 구체적으로 설명한다.
도 4는 본 개시의 일 실시 예에 따라, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정을 나타내는 흐름도이다. 그리고, 도 5a 내지 도 6b는 본 개시의 일 실시 예에 따라, 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동되는 과정을 구체적으로 나타내기 위한 도면이다.
전자 장치는 제2 응용 프로그램을 복수의 프로그램 영역(10, 11, 12, 13) 중 제2 영역에 설치하기 위한 사용자 명령을 수신할 수 있다(S410).
예를 들어, 도 5a에 도시된 바와 같이, 전자 장치는 프로그램 5를 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 1(11)에 설치하기 위한 사용자 명령을 수신할 수 있다. 도 5a에 도시된 바와 같은 Program 5(510)는 프로그램 5를 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 1(11)에 설치하기 위한 사용자 명령이 수신되었음을 나타내기 위한 것이다.
한편, 도 6a에 도시된 바와 같이, 전자 장치는 장치는 프로그램 1을 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 3(13)에 설치하기 위한 사용자 명령을 수신할 수 있다. 도 5a에 도시된 바와 같은 Program 1(610)는 프로그램 1을 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 3(13)에 설치하기 위한 사용자 명령이 수신되었음을 나타내기 위한 것이다.
제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 전자 장치는 제2 응용 프로그램이 제1 영역에 저장된 제1 응용 프로그램에 대응되는지를 식별할 수 있다(S420).
구체적으로, 제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 전자 장치는 제2 응용 프로그램이 제2 영역을 제외한 나머지 프로그램 영역에 설치된 응용 프로그램 중 제2 응용 프로그램과 대응되는 제1 응용 프로그램을 식별할 수 있다.
제2 응용 프로그램이 제1 응용 프로그램과 대응되지 않으면(S420-N), 전자 장치는 제2 응용 프로그램을 제2 영역에 설치한다(S430). 다시 말해, 제2 영역을 제외한 나머지 프로그램 영역에 설치된 응용 프로그램 중 제2 응용 프로그램에 대응되는 제1 응용 프로그램이 존재하지 않으면, 전자 장치는 제2 응용 프로그램을 제2 영역에 설치한다.
제2 응용 프로그램이 제1 응용 프로그램과 대응되면(S420-Y), 전자 장치는 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제1 영역에 유지하고(S440), 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역(21, 22)으로 이동시킬 수 있다(S450).
구체적으로, 제2 영역을 제외한 나머지 프로그램 영역에 설치된 응용 프로그램 중 제2 응용 프로그램에 대응되는 제1 응응 프로그램이 존재하면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 사용자 데이터는 제1 응응 프로그램이 존재하는 프로그램 영역에 유지하고, 사용자 데이터를 제외한 데이터는 공유 영역(21, 22)으로 이동시킬 수 있다.
도 5b에 도시된 바와 같은 User Data 5(520)는 사용자 데이터가 제1 응응 프로그램이 존재하는 프로그램 영역(12)에 유지된다는 것을 나타내기 위한 것이고, 도 5b에 도시된 바와 같은 Program 5(530)은 사용자 데이터를 제외한 데이터는 제2 공유 영역(22)으로 이동된다는 것을 나타내기 위한 것이다.
한편, 도 6b에 도시된 바와 같은 User Data 1(620)는 사용자 데이터가 제1 응응 프로그램이 존재하는 프로그램 영역(10)에 유지된다는 것을 나타내기 위한 것이고, 도 6b에 도시된 바와 같은 Program 1(630)은 사용자 데이터를 제외한 데이터는 제1 공유 영역(21)으로 이동된다는 것을 나타내기 위한 것이다.
제1 응용 프로그램에 관한 데이터 중 적어도 일부가 제1 영역에서 공유 영역(21, 22)으로 이동되면, 전자 장치는 제1 응용 프로그램의 참조 값을 증가시킬 수 있다(S460).
도 5b에 도시된 바와 같은 Program 5(530)의 참조 값 2는 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 2(12)에서 제2 공유 영역(22)으로 이동됨에 따라 제1 응용 프로그램의 참조 값이 1에서 2로 증가하였음을 나타내기 위한 것이다.
한편, 도 6b에 도시된 바와 같은 Program 1(630)의 참조 값 2는 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 복수의 프로그램 영역(10, 11, 12, 13) 중 HPA(10)에서 제1 공유 영역(21)으로 이동됨에 따라 제1 응용 프로그램의 참조 값이 1에서 2로 증가하였음을 나타내기 위한 것이다.
이상에서는 응용 프로그램에 관한 데이터 중 적어도 일부가 프로그램 영역에서 공유 영역으로 이동하는 과정을 설명하였으나, 이하에서는 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정에 대하여 설명한다.
도 7은 본 개시의 일 실시 예에 따라, 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정을 나타내는 흐름도이다. 그리고, 도 8a 및 도 8b는 프로그램 영역에서 공유 영역으로 이동된 응용 프로그램에 관한 데이터 중 적어도 일부가 공유 영역에서 삭제되는 과정을 구체적으로 나타내기 위한 도면이다.
이하에서는 제1 응용 프로그램이 복수의 프로그램 영역(10, 11, 12, 13) 중 제1 영역에서 공유 영역(21, 22)으로 이동된 상태에서, 제1 영역에 대응되는 제1 가상 머신을 통하여 제1 응용 프로그램을 제1 영역에서 삭제하는 경우에 관한 실시 예에 대하여 상술한다.
즉, 제1 응용 프로그램이 제1 영역에서 공유 영역(21, 22)으로 이동된 바 없다면, 복수의 프로그램 영역(10, 11, 12, 13) 중 제1 영역을 제외한 나머지 프로그램 영역에서 제1 응용 프로그램을 설치하기 위한 명령이 수신된 바 없다는 것을 의미한다. 이는 곧 제1 영역을 제외한 나머지 프로그램 영역에서 제1 응용 프로그램이 참조된 바 없다는 것을 의미하기 때문에, 제1 응용 프로그램의 참조 값을 고려하여 삭제여부를 결정할 필요가 없다.
전자 장치는 제1 응용 프로그램을 복수의 프로그램 영역(10, 11, 12, 13) 중 제1 영역에서 삭제하기 위한 사용자 명령을 수신할 수 있다(S710).
예를 들어, 도 8a에 도시된 바와 같이, 전자 장치는 프로그램 5를 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 2(12)에서 삭제하기 위한 사용자 명령을 수신할 수 있다. 도 8a에 도시된 바와 같은 Program 5(810)은 프로그램 5를 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 3(13)에서 삭제하기 위한 사용자 명령이 수신되었음을 나타내기 위한 것이다.
제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제1 영역에서 삭제할 수 있다(S720).
예를 들어, 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제외한 데이터가 공유 영역(21, 22)으로 이동되고, 사용자 데이터는 제1 영역에 유지된 상태에서, 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제1 영역에서 삭제할 수 있다.
도 8b에 도시된 바와 같은 공란(820)은 제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 2(12)에서 삭제되었음을 나타내기 위한 것이다.
제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 제1 영역에서 삭제되면, 전자 장치는 제1 응용 프로그램의 참조 값을 감소시킬 수 있다(S730).
도 8b에 도시된 바와 같은 Program 5(830)의 참조 값 1은 제1 응용 프로그램에 관한 데이터 중 사용자 데이터가 복수의 프로그램 영역(10, 11, 12, 13) 중 GTA 2(12)에서 삭제됨에 따라 제1 응용 프로그램의 참조 값이 2에서 1로 감소하였음을 나타내기 위한 것이다.
한편, 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 전자 장치는 제1 응용 프로그램의 참조 값을 바탕으로 제1 응용 프로그램의 삭제 여부를 결정할 수 있다(S740).
즉, 제1 응용 프로그램을 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 전술한 바와 같이, 전자 장치는 우선 제1 응용 프로그램에 관한 데이터 중 사용자 데이터만을 제1 영역에서 삭제하고, 사용자 데이터를 제외한 나머지 데이터의 삭제 여부는 후술하는 바와 같은 과정에 따라 결정한다.
구체적으로, 제1 응용 프로그램의 참조 참조 값이 0이 아니면, 즉 0보다 크면(S740-N), 전자 장치는 제1 응용 프로그램에 관한 데이터를 공유 영역(21, 22)에 유지할 수 있다(S750).
구체적으로, 제1 응용 프로그램의 참조 참조 값이 0 보다 크면, 복수의 가상 머신 중 제1 응용 프로그램을 참조하고 있는 가상 머신이 존재한다는 의미가 되므로, 전자 장치는 제1 응용 프로그램에 관한 데이터를 공유 영역(21, 22)에 유지할 수 있다.
예를 들어, 도 8b에 도시된 바와 같이 Program 5(830)의 참조 값이 1인 경우, 복수의 가상 머신 중 프로그램 5를 참조하고 있는 가상 머신 하나가 존재한다는 의미가 되므로, 전자 장치는 제1 응용 프로그램에 관한 데이터를 공유 영역(21, 22)에 유지할 수 있다
반면, 제1 응용 프로그램의 참조 값이 참조 값이 0 이면(S740-Y), 전자 장치는 제1 응용 프로그램에 관한 데이터를 공유 영역(21, 22)에서 삭제할 수 있다(S760).
즉, 제1 응용 프로그램의 참조 참조 값이 0 이면, 복수의 가상 머신 중 제1 응용 프로그램을 참조하고 있는 가상 머신이 존재하지 않는다는 의미가 되므로, 전자 장치는 제1 응용 프로그램에 관한 데이터를 공유 영역(21, 22)에서 삭제할 수 있다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따르면, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서, 서로 대응되는 응용 프로그램을 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역에 중복하여 설치하는 것을 방지할 수 있으며, 이로써 불필요한 리소스의 낭비를 방지할 수 있다.
또한, 응용 프로그램에 관한 데이터를 프로그램 영역에서 공유 영역으로 이동시키는 경우 사용자 데이터는 프로그램 영역에 유지하고, 또한 응용 프로그램을 삭제하는 경우 해당 응용 프로그램을 참조하고 있는 가상 머신의 개수를 바탕으로 응용 프로그램의 삭제 여부를 결정함으로써, 메모리 관리의 효율성을 더욱 극대화할 수 있다.
결국, 본 개시에 따르면, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서 메모리 사용의 효율성이 극대화될 수 있으며, 이에 따라 복수의 가상 머신의 활용도가 현저하게 상승될 수 있다. 그리고, 이와 같은 효과는 가상화 시스템에 포함되는 가상 머신의 개수가 많아질수록 더욱 현저하게 나타날 것이다.
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세하게 나타내는 블록도이다.
도 2에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다. 그리고, 도 9에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 통신부(130), 출력부(140) 및 사용자 인터페이스부(150)를 더 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다.
통신부(130)는 외부 전자 장치미도시) 또는 서버(미도시) 등과의 통신을 수행할 수 있다. 그리고, 통신부(130)는 WiFi 칩, Bluetooth 칩, 무선 통신 칩, 및 NFC 칩 중 적어도 하나를 포함할 수 있다.
WiFi 칩과 Bluetooth 칩 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 칩이나 Bluetooth 칩을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
또한, 무선 통신 칩은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. 그리고, NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
특히, 본 개시의 다양한 실시 예에 있어서, 통신부(130)는 외부 전자 장치(미도시) 또는 서버(미도시)를 통하여, 가상화 프로그램, 보조 운영 체제 또는 응용 프로그램을 수신할 수 있다. 그리고, 프로세서(120)는 수신된 가상화 프로그램, 보조 운영 체제 또는 응용 프로그램을 메모리(110)에 저장할 수 있다.
출력부(140)는 전자 장치(100)가 수행할 수 있는 다양한 기능을 출력할 수 있다. 그리고, 출력부(140)는 디스플레이, 스피커 및 인디케이터 중 적어도 하나를 포함할 수 있다. 디스플레이는 프로세서(120)의 제어에 의하여 영상 데이터를 출력할 수 있다.
특히, 본 개시의 다양한 실시 예에 있어서, 프로세서(120)는 주 운영 체제 및 보조 운영 체제를 통하여 전자 장치(100)를 관리하기 위한 사용자 인터페이스(User Interface: UI)를 제공하도록 디스플레이를 제어할 수 있다. 그리고, 프로세서(120)는 본 개시에 따른 가상화 시스템을 관리하기 위한 사용자 인터페이스를 제공하도록 디스플레이를 제어할 수 있다. 또한, 프로세서(120)는 응용 프로그램의 실행에 따른 다양한 기능을 출력하도록 출력부(140)를 제어할 수 있다.
사용자 인터페이스부(150)는 전자 장치(100)의 전반적인 동작을 제어하기 위한 사용자 명령을 수신한다. 구체적으로, 사용자 인터페이스부(150)는 카메라, 마이크, 리모컨 신호 수신부 등과 같은 구성으로 이루어 질 수 있다. 한편, 사용자 인터페이스부(150)는 터치 스크린으로서 디스플레이에 포함된 형태로 구현될 수도 있다.
특히, 본 개시에 따른 전자 장치(100)가 PC(Personal Computer)로 구현되는 경우, 사용자 인터페이스부(150)는 마우스 및 키보드를 포함할 수 있다. 그리고, 본 개시에 따른 응용 프로그램을 설치하기 위한 사용자 명령과 응용 프로그램을 삭제하기 위한 사용자 명령은 마우스 및 키보드를 통하여 입력될 수 있다.
한편, 본 개시에 따른 전자 장치(100)가 핸드폰으로 구현되는 경우, 사용자 인터페이스부(150)는 터치 스크린 및 마이크를 포함할 수 있다. 그리고, 본 개시에 따른 응용 프로그램을 설치하기 위한 사용자 명령과 응용 프로그램을 삭제하기 위한 사용자 명령은 터치 스크린 및 마이크를 통하여 입력될 수 있다.
도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다.
도 10에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법에 따르면, 전자 장치는 주 운영체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과 주 운영체제 및 복수의 가상 머신에 대응되는 공유 영역을 메모리에 할당한다(S1010).
구체적으로, 본 개시에 따른 가상화 시스템이 구현되면, 전자 장치는 주 운영 체제에 대응되는 프로그램 영역, 제 1 가상 머신에 대응되는 프로그램 영역 및 제2 가상 머신에 대응되는 프로그램 영역을 메모리에 할당할 수 있다. 그리고, 전자 장치는 주 운영 체제 및 복수의 가상 머신 모두에 대응되는 공유 영역을 메모리에 할당할 수 있다.
복수의 프로그램 영역 및 공유 영역이 메모리에 할당되면, 전자 장치는 제1 영역에 저장된 제1 응용 프로그램에 대응되는 2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령을 수신한다(S1020).
구체적으로, 전자 장치는 복수의 가상 머신 중 제2 가상 머신을 통하여 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령을 수신할 수 있다.
제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 수신되면, 전자 장치는 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시킨다(S1030).
여기서, 제1 응용 프로그램이 제2 응용 프로그램에 대응된다는 것은 제1 응용 프로그램이 제2 응용 프로그램과 동일한 경우뿐만 아니라, 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 제2 응용 프로그램에 관한 데이터와 동일한 경우를 포함할 수 있다. 제1 응용 프로그램이 제2 응용 프로그램에 대응된다는 것에 관한 구체적인 의미는 도 2에 대한 설명에서 상술한바, 중복 설명은 생략한다.
이상에서 설명한 바와 같은 실시 예 이외에도, 도 1 내지 도 9에서 상술한 바와 같은 전자 장치에 관한 다양한 실시 예는 본 개시에 따른 전자 장치의 제어 방법에 있어서도 마찬가지로 구현될 수 있음은 물론이며, 다만 중복 설명은 생략한다.
한편, 상술한 실시 예에 따른 전자 장치의 제어 방법은 프로그램으로 구현되어 전자 장치에 제공될 수 있다. 특히, 전자 장치의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
구체적으로, 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 있어서, 전자 장치의 제어 방법은 주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 주 운영 체제 및 복수의 가상 머신에 대응되는 공유 영역을 전자 장치에 포함되는 메모리에 할당하는 단계 및 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시키는 단계를 포함한다.
한편, 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
도 11은 본 개시에 따른 전자 장치(100)가 디스플레이 장치(200)와 통신 연결을 수립하고, 그에 따라 보조 운영 체제를 실행하는 경우에 관한 실시 예를 설명하기 위한 도면이다.
본 개시에 따른 전자 장치(100)는 디스플레이 장치(200)와 통신 연결을 수립할 수 있다. 예를 들어, 도 11에 도시된 바와 같이, 전자 장치(100)는 HDMI 어댑터(150) 및 케이블을 통해 디스플레이 장치(200)와 통신 연결을 수립할 수 있다. 뿐만 아니라, 전자 장치(100)는 근거리 무선 통신을 통해 키보드 및 마우스를 비롯한 기 설정된 입력 장치(300-1, 300-2)와 통신 연결을 수립하고, 기 설정된 입력 장치(300-1, 300-2)와 통신 연결이 수립되면 입력 장치(300-1, 300-2)를 통해 사용자 명령을 입력할 수 있다.
그리고, 디스플레이 장치(200)와 통신 연결이 수립되면, 전자 장치(100)는 가상 머신을 통해보조 운영 체제를 실행하고 디스플레이 장치(200)를 통해 보조 운영 체제에 따른 사용자 인터페이스를 제공할 수 있다. 예를 들어, 전자 장치(100)에 주 운영 체제로서 Android가 설치된 경우, 전자 장치(100)와 디스플레이 장치(200) 사이에 통신 연결이 수립되면, 전자 장치(100)는 가상 머신을 통해 보조 운영 체제인 Linux를 실행하고 디스플레이 장치(200)를 통해 Linux에 따른 사용자 인터페이스를 제공할 수 있다.
디스플레이 장치(200)를 통해 보조 운영 체제에 따른 사용자 인터페이스가 제공되면, 전자 장치(100)는 전자 장치(100) 또는 외부 입력 장치(300-1, 300-2)를 통해 입력된 사용자 명령을 바탕으로 보조 운영 체제 상에 응용 프로그램을 설치할 수 있으며, 설치된 응용 프로그램을 실행하거나 삭제할 수 있다. 그리고, 전자 장치(100)가 디스플레이 장치(200)와 통신 연결을 수립하고 그에 따라 가상 머신을 통해 보조 운영 체제를 실행하는 경우, 보조 운영 체제 상에서의 응용 프로그램의 설치, 실행 및 삭제에 대하여 본 개시가 적용될 수 있다.
구체적으로, 전술한 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 복수의 프로그램 영역 중 주 운영 체제에 대응되는 제1 영역 및 복수의 프로그램 영역 중 가상 머신에 대응되는 제2 영역을 전자 장치(100)의 메모리에 할당할 수 있다. 그리고, 전자 장치(100)는 주 운영 체제 및 복수의 가상 머신 모두에 대응되는 공유 영역을 전자 장치(100)의 메모리에 할당할 수 있다.
그리고, 제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 전자 장치(100)는 제2 응용 프로그램이 제1 영역에 저장된 제1 응용 프로그램에 대응되는지를 식별할 수 있다. 즉, 위의 예에서, Linux에 따른 사용자 인터페이스를 통해 제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 전자 장치(100)는 제2 응용 프로그램이 제1 영역에 저장된 제1 응용 프로그램에 대응되는지를 식별할 수 있다.
구체적으로, 게임 A를 실행하기 위한 Linux 버전의 제2 응용 프로그램을 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 전자 장치(100)는 제2 응용 프로그램이 제1 영역에 저장된 제1 응용 프로그램에 대응되는지를 식별할 수 있다. 이 경우, 제1 영역에 저장된 제1 응용 프로그램이 게임 A를 실행하기 위한 Android 버전의 응용 프로그램이면, 동일한 게임 A를 실행하기 위한 Android 버전의 제1 응용 프로그램은 Android와 커널을 공통으로 하는 Linux 버전의 제2 응용 프로그램과 대응되는 것으로 판단될 수 있다.
제1 응용 프로그램과 제2 응용 프로그램이 대응되면, 전자 장치(100)는 제1 응용 프로그램에 관한 데이터 중 사용자 데이터를 제1 영역에 유지하고, 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 제1 영역에서 공유 영역으로 이동시킬 수 있다. 그리고, 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 제1 영역에서 공유 영역으로 이동되면, 전자 장치(100)는 공유 영역으로 이동된 제1 응용 프로그램에 관한 데이터를 바탕으로 가상 머신 및 보조 운영 체제를 통해 제1 응용 프로그램을 실행할 수 있다.
이상에서는 응용 프로그램의 설치에 관련된 본 개시의 실시 예에 대해 상술하였으나, 그 밖에도 도 1 내지 도 10을 참조하여 상술한 바와 같은 다양한 실시 예는 전자 장치(100)가 디스플레이 장치(200)와 통신 연결을 수립하고 그에 따라 가상 머신을 통해 보조 운영 체제가 실행되는 경우에도 적용될 수 있음은 물론이다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따르면, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서, 서로 대응되는 응용 프로그램을 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역에 중복하여 설치하는 것을 방지할 수 있으며, 이로써 불필요한 리소스의 낭비를 방지할 수 있다.
또한, 응용 프로그램에 관한 데이터를 프로그램 영역에서 공유 영역으로 이동시키는 경우 사용자 데이터는 프로그램 영역에 유지하고, 또한 응용 프로그램을 삭제하는 경우 해당 응용 프로그램을 참조하고 있는 가상 머신의 개수를 바탕으로 응용 프로그램의 삭제 여부를 결정함으로써, 메모리 관리의 효율성을 더욱 극대화할 수 있다.
결국, 본 개시에 따르면, 복수의 가상 머신을 포함하는 가상화 시스템이 구현된 전자 장치에서 메모리 사용의 효율성이 극대화될 수 있으며, 이에 따라 복수의 가상 머신의 활용도가 현저하게 상승될 수 있다. 그리고, 이와 같은 효과는 가상화 시스템에 포함되는 가상 머신의 개수가 많아질수록 더욱 현저하게 나타날 것이다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (15)

  1. 전자 장치에 있어서,
    적어도 하나의 명령을 포함하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서; 를 포함하고,
    상기 프로세서는,
    주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 메모리에 할당하며,
    상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 전자 장치.
  2. 제1 항에 있어서,
    상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고,
    상기 프로세서는,
    상기 복수의 프로그램 영역 중 제1 가상 머신에 대응되는 프로그램 영역에 저장된 상기 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 가상 머신에 대응되는 프로그램 영역에서 상기 제2 공유 영역으로 이동시키는 전자 장치.
  3. 제1 항에 있어서,
    상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고,
    상기 프로세서는,
    상기 복수의 프로그램 영역 중 주 운영 체제에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 주 운영 체제에 대응되는 프로그램 영역에서 상기 제1 공유 영역으로 이동시키는 전자 장치.
  4. 제1 항에 있어서,
    상기 프로세서는,
    상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 사용자와 관련된 사용자 데이터를 상기 제1 영역에 유지하고, 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터를 제외한 데이터를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 전자 장치.
  5. 제4 항에 있어서,
    상기 프로세서는,
    상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 상기 공유 영역으로 이동되면, 상기 제1 응용 프로그램에 관한 데이터가 상기 복수의 프로그램 영역에서 상기 공유 영역으로 이동된 횟수 및 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터가 상기 복수의 프로그램 영역에서 삭제된 횟수와 관련된 참조 값(reference count)을 증가시키는 전자 장치.
  6. 제5 항에 있어서,
    상기 프로세서는,
    상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 사용자 데이터를 상기 제1 영역에서 삭제하고,
    상기 사용자 데이터가 삭제되면, 상기 참조 값을 감소시키는 전자 장치.
  7. 제6 항에 있어서,
    상기 프로세서는,
    상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 참조 값을 바탕으로 상기 제1 응용 프로그램의 삭제 여부를 결정하는 전자 장치.
  8. 제7 항에 있어서,
    상기 프로세서는,
    상기 참조 값이 0 보다 크면, 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에 유지하고,
    상기 참조 값이 0 이면, 상기 제1 응용 프로그램에 관한 데이터를 상기 공유 영역에서 삭제하는 전자 장치.
  9. 전자 장치의 제어 방법에 있어서,
    주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 전자 장치에 포함되는 메모리에 할당하는 단계; 및
    상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 단계; 를 포함하는 전자 장치의 제어 방법.
  10. 제9 항에 있어서,
    상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고,
    상기 이동시키는 단계는,
    상기 복수의 프로그램 영역 중 제1 가상 머신에 대응되는 프로그램 영역에 저장된 상기 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 가상 머신에 대응되는 프로그램 영역에서 상기 제2 공유 영역으로 이동시키는 전자 장치의 제어 방법.
  11. 제9 항에 있어서,
    상기 공유 영역은 상기 주 운영 체제에 대응되는 제1 공유 영역 및 상기 복수의 가상 머신에 대응되는 제2 공유 영역을 포함하고,
    상기 이동시키는 단계는,
    상기 복수의 프로그램 영역 중 주 운영 체제에 대응되는 프로그램 영역에 저장된 제1 응용 프로그램과 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 가상 머신에 대응되는 프로그램 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 주 운영 체제에 대응되는 프로그램 영역에서 상기 제1 공유 영역으로 이동시키는 전자 장치의 제어 방법.
  12. 제9 항에 있어서,
    상기 이동시키는 단계는,
    상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 사용자와 관련된 사용자 데이터를 상기 제1 영역에 유지하고, 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터를 제외한 데이터를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 전자 장치의 제어 방법.
  13. 제12 항에 있어서,
    상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부가 상기 공유 영역으로 이동되면, 상기 제1 응용 프로그램에 관한 데이터가 상기 복수의 프로그램 영역에서 상기 공유 영역으로 이동된 횟수 및 상기 제1 응용 프로그램에 관한 데이터 중 상기 사용자 데이터가 상기 복수의 프로그램 영역에서 삭제된 횟수와 관련된 참조 값(reference count)을 증가시키는 단계; 를 더 포함하는 전자 장치의 제어 방법.
  14. 제13 항에 있어서,
    상기 제1 응용 프로그램을 상기 제1 영역에서 삭제하기 위한 사용자 명령이 입력되면, 상기 사용자 데이터를 상기 제1 영역에서 삭제하는 단계; 및
    상기 사용자 데이터가 삭제되면, 상기 참조 값을 감소시키는 단계;를 더 포함하는 전자 장치의 제어 방법.
  15. 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 제어 방법은,
    주 운영 체제 및 복수의 가상 머신 각각에 대응되는 복수의 프로그램 영역과, 상기 주 운영 체제 및 상기 복수의 가상 머신에 대응되는 공유 영역을 상기 전자 장치에 포함되는 메모리에 할당하는 단계; 및
    상기 복수의 프로그램 영역 중 제1 영역에 저장된 제1 응용 프로그램에 대응되는 제2 응용 프로그램을 상기 복수의 프로그램 영역 중 제2 영역에 설치하기 위한 사용자 명령이 입력되면, 상기 제1 응용 프로그램에 관한 데이터 중 적어도 일부를 상기 제1 영역에서 상기 공유 영역으로 이동시키는 단계; 를 포함하는 컴퓨터 판독가능 기록매체.
PCT/KR2019/016311 2019-01-28 2019-11-26 전자 장치 및 전자 장치의 제어 방법 WO2020159055A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19912674.9A EP3916548B1 (en) 2019-01-28 2019-11-26 Electronic device and method for controlling electronic device
US17/426,439 US20220107841A1 (en) 2019-01-28 2019-11-26 Electronic device and method for controlling electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0010323 2019-01-28
KR1020190010323A KR20200093168A (ko) 2019-01-28 2019-01-28 전자 장치 및 전자 장치의 제어 방법

Publications (1)

Publication Number Publication Date
WO2020159055A1 true WO2020159055A1 (ko) 2020-08-06

Family

ID=71840362

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/016311 WO2020159055A1 (ko) 2019-01-28 2019-11-26 전자 장치 및 전자 장치의 제어 방법

Country Status (4)

Country Link
US (1) US20220107841A1 (ko)
EP (1) EP3916548B1 (ko)
KR (1) KR20200093168A (ko)
WO (1) WO2020159055A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060099404A (ko) * 2005-03-08 2006-09-19 마이크로소프트 코포레이션 가상 머신들 간에서 페이지들을 공유하기 위한 방법,시스템 및 컴퓨터 판독가능 매체
JP2006268123A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd 情報共有装置
US20120216185A1 (en) * 2010-12-23 2012-08-23 International Business Machines Corporation Managing virtual machines
KR20140092493A (ko) * 2012-12-31 2014-07-24 고려대학교 산학협력단 가상화 시스템에서의 메모리 관리 방법
KR101841847B1 (ko) * 2016-11-09 2018-05-04 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311250B2 (en) * 2011-12-19 2016-04-12 Intel Corporation Techniques for memory de-duplication in a virtual system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060099404A (ko) * 2005-03-08 2006-09-19 마이크로소프트 코포레이션 가상 머신들 간에서 페이지들을 공유하기 위한 방법,시스템 및 컴퓨터 판독가능 매체
JP2006268123A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd 情報共有装置
US20120216185A1 (en) * 2010-12-23 2012-08-23 International Business Machines Corporation Managing virtual machines
KR20140092493A (ko) * 2012-12-31 2014-07-24 고려대학교 산학협력단 가상화 시스템에서의 메모리 관리 방법
KR101841847B1 (ko) * 2016-11-09 2018-05-04 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3916548A4 *

Also Published As

Publication number Publication date
EP3916548B1 (en) 2024-05-01
EP3916548A4 (en) 2022-03-16
EP3916548A1 (en) 2021-12-01
KR20200093168A (ko) 2020-08-05
US20220107841A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
WO2014104568A1 (en) Host device, display device, method of controlling host device, and method of controlling display device
WO2018076868A1 (zh) 一种数据同步方法、装置、系统、存储介质和服务器
WO2016039531A1 (en) Electronic device and control method thereof
WO2018076812A1 (zh) 数据请求的响应方法、装置、存储介质、服务器及系统
WO2020218805A1 (en) Electronic device and method of controlling thereof
WO2020256301A1 (en) Electronic device including storage and method for using the storage
EP3210100A1 (en) Providing method for inputting and electronic device
WO2020218743A1 (en) Method for controlling execution of application, electronic device and storage medium for the same
WO2018076829A1 (zh) 终端数据的处理方法、装置、系统、存储介质及服务器
WO2018110970A1 (en) Terminal device, electronic device and control method for determining the position of searching object device
WO2019160356A1 (ko) 신호 강도 대역에 기반한 장치 관리 방법 및 이를 위한 전자 장치
EP3414954A1 (en) Method and electronic device for providing wireless communication
WO2021025401A1 (en) Electronic device for reducing power consumption and operating method thereof
WO2020171465A1 (en) Electronic device and application managing method thereof
WO2017078359A1 (en) Electronic apparatus, remote control apparatus, contorl method thereof, and electronic system
WO2016093501A1 (ko) 전자 가격 표시기, 전원 공급 장치 및 전자 가격 표시 시스템
WO2020222347A1 (ko) 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
WO2020159055A1 (ko) 전자 장치 및 전자 장치의 제어 방법
WO2015088154A1 (en) Server and method of transmitting data thereof, and mobile device and sensing method thereof
WO2020180045A1 (en) Electronic device and method for utilizing memory space thereof
WO2020027562A1 (en) Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof
WO2019107946A1 (en) Electronic device and method for processing remote payment
WO2019245254A2 (en) Electronic device for performing carrier aggregation using plurality of carrier frequencies via switch and operating method thereof
WO2019160256A1 (en) Electronic apparatus and method for controlling thereof
WO2018208041A1 (en) Method and apparatus for performing at least one operation based on devices context

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19912674

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019912674

Country of ref document: EP

Effective date: 20210825