Posts [운영체제] 가상머신(Virtual Mahcine)이란?
Post
Cancel

[운영체제] 가상머신(Virtual Mahcine)이란?

가상 머신(Virtual Machine)이란?

출처: 잔재미코딩

출처: 잔재미코딩

가상 머신은 컴퓨터 안에서 또 다른 컴퓨터를 동작시키는 것이다. 물리적으로 존재하는 컴퓨터가 아닌 소프트웨어를 이용해서 논리적으로 만든 가상의 컴퓨터이다.

대표적인 예시는 Mac OS 에서 자주 사용하는 패러렐즈(Parallels)가 있다. Mac OS 에서는 국내 공공기관 인증서 관련해서 정상적으로 진행되지 않는 문제가 있다. 패러렐즈는 이를 해결하기 위해 Mac OS 운영체제는 그대로 사용하면서, 가상의 Windows 운영체제를 이용할 수 있도록 한 것이다.

출처: 영화 인셉션

출처: 영화 인셉션

그래서 가상 머신 안에 가상 머신을 설치할 수도 있는데, 영화 인셉션에서 꿈 속에 꿈에 계속해서 빠져드는 상황을 연출할 수도 있다.

사용하는 이유?

가상 머신을 이용하는 이유는 다양하다.

  1. 하나의 컴퓨터를 여러 명의 사용자가 동시에 사용할 수 있도록 한다. (클러스터에서 하나의 PC에서 여러 명이 로그인해서 사용할 수 있는 것도 가상 머신을 이용한 것이다.)
  2. 어떤 행동을 해도 컴퓨터가 안전한 독립된 환경을 만들기 위해 사용한다. 예컨대, 가상 머신에서 바이러스에 감염된 데이터에 접근해도 가상 머신을 실행시킨 물리적 컴퓨터에 영향을 미치지 않는다.
  3. 하나의 물리적 컴퓨터가 하드웨어를 효율적으로 사용한다. 성능이 좋은 컴퓨터에 수 많은 가상 머신을 만들어서 동시에 여러 작업을 수행할 수 있도록 한다. 하나의 컴퓨터에서 여러 대의 가상 서버를 한번에 모니터링 하기 위해 사용하기도 한다.

실제 사례

사람이 하던 단순 반복 업무를 소프트웨어가 자동으로 수행하는 RPA(Robotic Process Automation)를 구축할 때 가상머신을 활용하기도 한다.

RPA

성능이 좋은 컴퓨터에서 여러 가상 머신을 설치한 뒤, 각 가상 머신마다 정해진 업무를 할당한다. 한 사람이 하던 수 많은 일을 여러 로봇이 나누어서 수행함으로써 빠른 시간 안에 업무를 마칠 수 있게 된다.

또한, 가상 머신을 사용함으로써 각각의 로봇이 현재 어떻게 작동하고 있는지, 오류가 발생했는지 등 실시간으로 모니터링이 가능하며, 여러 대의 물리 컴퓨터를 설치하는 것보다 공간 및 비용 측면에서 효과적이다.

단점?

한정된 자원을 나누어서 사용하다보니 여러 가상 머신을 사용하면 성능이 떨어질 수 있다.

가상 머신의 종류

가상 머신은 크게 시스템 가상 머신과 프로세스 가상 머신 두 가지로 나뉜다.

1. 시스템 가상 머신

시스템 가상 머신은 실제 기계를 대체해서 제공하며, 전체 운영체제를 실행하기 위한 기능들을 제공한다. 위에서 언급한 패러렐즈가 이에 해당한다.

2. 프로세스 가상 머신

프로세스 가상 머신은 운영체제에 상관없이 독립적인 프로그램 실행 환경과 추상화를 제공하여 하나의 단일 프로그램(프로세스)을 실행하기 위해 사용한다. 주로 프로그래밍 언어의 하드웨어 추상화를 위해 사용되며, 대표적으로 자바에서 사용하는 JVM(Java Virtual Machine)이 있다.

도커(docker)와 차이?

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너(Container)란 플랫폼(운영체제)에 상관없이 어플리케이션을 실행할 수 있는 기술을 의미한다.

컨테이너와 가상 머신은 유사해보이지만, 컨테이너는 하드웨어 대신 운영체제를 가상화 한다는 점에서 다르다.

참고 자료

This post is licensed under CC BY 4.0 by the author.

프로그래머스 Level 2 - 하노이의 탑 (JavaScript)

[운영체제] 운영체제(Operating System)이란?