본문 바로가기
학교 공부/분산 및 병렬처리

[분산 및 병렬처리 시스템] 운영체제 가상화

by 그적 2020. 11. 15.

Virtualization(가상화)란?

대표적인 가상화는 CPU가 하나만 존재하지만, 여러 프로세스를 운영하는 것처럼 환상을 주는 것이다. 

 

 

운영체제에서 가상화

그림 3-5(a)는 일반적인 프로그램, 인터페이스, 시스템 조직도를 나타낸 그림이다. hardware/software System A는 운영체제 플랫폼이고, OS에서 제공하는 Interface는 system을 의미하는 것이다.

인터페이스가 API 아녜요? 라고 생각할 수는 있지만, Program 부분이 API를 기반으로 만들어진 application이라고 생각하자.

따라서 프로그램에서 명령을 받아와 인터페이스에서 시스템 콜을 호출하고, 하드웨어/소프트웨어를 사용할 수 있다.

 

그림 3-5(b)는 시스템 B 상위에서 운영되는 시스템 A 구조를 가상화시킨 조직도를 나타낸 그림이다. interface A에서 사용되던 기존 프로그램을 인터페이스 B 타입의 시스템에서도 사용될 수 있도록 하기 위해서 "implementation of mimicking A on B" 기능을 추가하여 A의 시스템 콜을 B 시스템에 매칭 될 수 있도록 한다. 실제 동작은 B 시스템에서 이뤄지지만, 프로그램 입장에서는 기존에 개발된 A 인터페이스에서 적용할 수 있게 된다.

 

 

 

 

그림 3-6은 각각의 layer 사이에 어떠한 인터페이스가 존재하는지 확인할 수 있다. 아래에서부터 확인하면, 하드웨어가 Instructions(명령어)를 통해 해당 Operating System에 접근할 수 있으며, Privileged Instructions는 시스템 콜을 사용했을 때 사용되는 명령어, 즉 커널 모드를 얘기한다. 또한 Library 영역이 시스템 콜을 사용하여 application을 작동시킨다.

 

 

 

 

 

그림 3-7(a)Application과 Runtime system을 하나로 묶어 프로세스라고 생각할 수 있다. 따라서 Runtime system과 Operating system 사이에 있는 시스템 콜 부근에서 가상화가 이뤄진다. 이러한 형태는 자바 머신을 생각할 수 있다. 실제로는 하나의 플랫폼에서 진행되지만, 프로세스가 여러 개 인 것처럼 동작한다. 

Operating system과 Hardware을 플랫폼으로 가정하면 Runtime system(자바 가상 머신)이 윈도우, 맥 등 다양한 운영체제에서 작동될 수 있다.

 

그림 3-7(b)는 중간에 Virtual machine monitor가 들어가 있다. 이것은 쉽게 생각하여 vm머신으로 생각하고, 소프트웨어(applications+operating system)과 하드웨어(Hardware) 기반의 상호작용을 한다. 3-7(a)에서까지 존재하던 library는 application에 합쳐졌다.

댓글