Notice
Recent Posts
Recent Comments
05-18 01:37
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

1.7 Virtualization 본문

OS/OS Design

1.7 Virtualization

알 수 없는 사용자 2024. 4. 6. 15:42

 가상화 기술은 단일 컴퓨터의 하드웨어(CPU, Memory, Disk Drive, NIC, 등)를 여러 다른 실행 환경으로 추상화하는 기술이다. 각각의 분리된 환경이 자체적인 개인용 컴퓨터에서 실행되는 것처럼 보이도록 만든다. 이러한 환경은 서로 다른 개별 운영 체제로 볼 수 있고, 동시에 실행되며, 서로 상호 작용할 수 있다. 가상 머신의 사용자는 단일 운영 체제 내에서 다른 운영체제로의 전환이 가능하다.

 일반적으로 가상화 소프트웨어는 에뮬레이션을 포함한 클래스의 하나인데, Emulation은 소프트웨어에서 컴퓨터 하드웨어를 시뮬레이션 하는 것으로, 소스 CPU 유형이 대상 CPU 유형과 다를 때 주로 사용된다. 애플에서는 Rosetta라는 에뮬레이션이 그 예이다. 하지만 에뮬레이션은 많은 자원이 할당되는데, 소스 시스템에서 네이티브로 실행되는 모든 기계 수준 명령은 대상 시스템에서 동일한 기능으로 변환되어야 한다. 이 변환 과정에서 하나의 명령어가 여러 개의 명령으로 변환되는, 여러개의 대상 명령이 발생된다. 이는 소스 시스템과 대상 시스템의 CPU 아키텍처나 명령 집합이 다를 때 발생하는 건데, 이때 소스 시스템과 대상 시스템의 CPU가 유사한 성능을 가짐에도 불구하고 에뮬레이트 된 코드는 원시 코드에 비해 실행 속도가 느리게 될 수 있다는 것이다.

  • 가상화 소프트웨어는 여러 클래스들로 작성되어 있다는 것
  • 여기서 하나의 클래스는 에뮬레이션을 포함하게 됨
  • 대상 시스템에서로의 같은 기계 수준 명령어로 변환하기 위한 여러 개의 대상 명령이 발생
  • 소스 시스템과 대상 시스템의 CPU가 유사한 성능임에도 에뮬레이트 된 코드는 원시 코드에 비해 실행 속도가 느림

 가상화에서는 반대로 특정 CPU 아키텍처에 네이티브로 컴파일 된 운영체제가 해당 CPU에 네이티브한 다른 운영체제 내에서 실행된다. 가상화는 먼저 IBM 메인프레임에서 여러 사용자가 동시에 작업을 실행할 수 있는 방법으로 등장했었는데, 여러 가상 머신을 실행함으로써 많은 사용자가 단일 사용자용 시스템에서 작업을 실행할 수 있게 하며, 현재도 그렇게 된다. 이후에는 Intell x86 CPU에서 여러 Microsoft Winsdows 응용 프로그램응 실행하는 데 문제가 발생하여 VMware가 Windows 상에서 실행되는 응용 프로그램 형태의 새로운 가상화 기술을 개발했다. 이 응용 프로그램은 하나 이상의 Windows 또는 다른 네이티브 x86 운영 체제의 게스트 복사본을 실행하여 각각의 응용프로그램을 실행했다. Windows는 호스트 운영체제이고, VMware 응용 프로그램은 가상 머신 관리자(VMM)이다. VMM은 게스트 운영체제를 실행하고, 그들의 자원 사용을 관리하고, 각각의 게스트를 다른 게스트로부터 보호한다.

 현대 운영 체제에서는 여러 응용 프로그램을 안정적으로 실행할 수 있지만, 가상화 기술은 여전히 사용량이 증가하고 있는데, 노트북이나 데스크톱에서 가상 머신 관리자를 사용하여 기본 운영체제와는 별도로 여러 운영 체제를 설치하여 다른 운영 체제에 대한 탐색이나 애플리케이션 실행이 가능하게 된다. 이는 macOS를 실행하는 애플 노트북이 x86 CPU에서 Window 10 을 게스트로 실행하여 Windows 애플리케이션을 실행하는 상황이 대표적인 그 예가 되겠다.

 또한 다양한 운영 체제용 소프트웨어를 개발하는 회사들은 개발, 테스트 및 디버깅을 위해 모든 운영체제를 단일 물리적 서버에서 실행할 수 있도록 가상화를 이용할 수도 있다. 데이터 센터에서도 가상화가 사용되는데 컴퓨팅 환경을 실행하고 관리하는 흔한 방법이다. 이러한 가상 머신 관리자는 더 이상 호스트 운영 체제에서 실행되지 않고, 대신 가상 머신 프로세스에 서비스 및 자원 관리를 제공하는 호스트 운영 체제로 작동한다.

'OS > OS Design' 카테고리의 다른 글

1.9 Kernel Data Structures  (0) 2024.04.06
1.8 Distributed Systems  (0) 2024.04.06
1.6 Security and Protection  (0) 2024.04.06
1.5 Resource Management  (0) 2024.04.04
1.4 Operating-System Operations  (1) 2024.04.03
Comments