티스토리 뷰
운영체제 가상기계
운영체제 가상기계
가상기계의 기본적인 착상은 한 컴퓨터의 하드웨어(CPU,메모리,디스크,드라이브,네트워크,인트페이스 카드 등)를 추상화하여 다수의 다른 실행환경을 제공하도록 하는 것이다. 그리하여 각가의 개별적인 실행환경이 자신만의 개별적인 컴퓨터를 사용하는 환상을 만들어낸다. 가상기계는 밑에 있는 순수한 하드웨어와 동일한 인터페이스를 제공한다.
각 프로세스에게 밑에 있는 컴퓨터의(가상적인)복사본이 제공된다. 보통 게스트 프로세스는 하나의 운영체제이고 하나의 물리적인 기계가 여러 운영체제를 각자의 가상기계 안에서 동시에 실행시킬 수 있는 방법이다. 가상기계를 만드는 데에는 많은 이유가 있는데 이 이유들은 모두 근본적으로 동일한 하드웨어를 공유하면서 다수의 다른 실행환경(즉, 운영체제)을 동시에 실행할 수 있다는 점과 연관된다.
한 가지 장점으로는 가상기계들끼리 서로 보호되는 것처럼 호스트 시스템도 가상기계들로부터 보호된다는 것이다. 게스트 운영체제 안의 바이러스는 그 운영체제를 손상시킬 수 있으나 호스트 또는 다른 게스트를 손상시킬 수는 없다.또한 가상기계 시스템은 운영체제 연구와 개발을 위한 완벽한 도구로 사용될 수 있다.
가상기계가 개발자에게 제공하는 또 하나의 장점은 개발자의 워크스테이션에서 여러 운영체제가 동시에 실행될 수 있다는 점이다. 가상화 기술은 실제 컴퓨팅 자원과 유사한 논리적인 자원을 각 가상 머신에게 제공하는 기술로 넓은 의미에서 하드웨어와 소프트웨어의 분리나 시분할 공유, 시뮬레이션,에뮬레이션 등을 포함한다. 반가상화는 게스트가 선호하는 시스템과 유사하지만 동일하지 않은 시스템을 게스트에게 제공하는 것이다. 반가상화는 게스트 운영체제의 코드수정을 통해 가상화의 성능을 향상 시켰다. 가상기계 개념이 비록 유용하기는 하지만 구현하기가 어렵다. 일정 수준의 하드웨어 지원없이 가상화는 불가능하다. 하드웨어 자원이 많으면 많을수록 가상화 기계는 다양한 특징과 안정적이며 더 잘 실행될 수 있다.
이러한 가상기계에는 VMware,JVM(Java Virtual Machine)등이 있는데 VMware Workstation 은 Intel X86 및 호환성을 가진 하드웨어를 고립된 가상기계로 추상화하는 가장 대중적인 상용 응용이다. WMware는 Windows 또는 Lunux등의 호스트 운영체제 상에서 응용으로 실행되어 이 호스트 시스템이 다수의 다른 게스트 운영체제 들을 독립된 가상기계로서 실행할 수 있게 한다.각 가상 기계는 자신만의 가상 CPU, 메모리, 디스크 드라이브, 네트워크 인터페이스 등을 가지고 있다.
게스트가 소유하고 관리하는 물리 디스크는 사실 호스트 운영체제의 파일 시스템에 존재하는 단지 파일이다. 동일한 게스트 인스턴스를 생성하기 위해서는 이 파일을 복사 할 수 있다. 파일을 다른 위치에 복사하는 것은 원래 사이트의 재해로부터 게스트를 보호한다. 파일을 다른 위치로 이동시키는 것은 게스트 시스템을 이동시키는 것과 같다. 이 시나리오는 어떻게 가상화가 시스템 자원의 사용뿐 아니라 시스템 관리의 효율성을 증가시크는가를 보여준다. 자바 가상기계(JVM)은 추상 컴퓨터를 위한 명세이다. JVM은 클래스 적재기와 아키텍처 중립적인 바이트 코드를 실행하는 Java 인터프리터로 구성된다. 클래스 적재기는 Java인터프리터에 의해 실행될 수 있도록 Java 프로그램과 Java API 모두로부터.class 파일을 적재한다. 클래스가 적재된 후 검증기가 클래스 파일이 유효한 Java바이트코드이고 스택을 오버플로우하거나 언더플로우 하지 않는지 검사한다. 검증기는 또한 바이트코드가 잠재적을 불법적인 메모리 접근을 제공할 수 있는 포인터 연산을 하지 않도록 보장한다. 클래스가 검증을 통과하면 Java 인터프리터에 의해 실행된다. JVM은 또한 가비지 수집을 행함으로ㅆ 자동적으로 메모리를 관리한다. JVM은 윈도우,리눅스,맥OS X등의 호스트 운영체제 상에 소프트웨어로 구현되거나 웹 브라우저의 일부분으로 구현될 수도 있다.속도를 높이기 위해서는just-in-time 컴파일러를 사용하고 더 빠르게 실행하는 방법은 특별 Java 칩 상에 JVM을 하드웨어로 구현하는 것이라고 할 수 있다.
'It' 카테고리의 다른 글
프로젝트 조직 (0) | 2023.02.13 |
---|---|
제품과서비스의설계 (0) | 2023.01.16 |
자바 정적 멤버, 인스턴스 변수, 정적 변수 (0) | 2023.01.14 |
주식시장 (0) | 2023.01.14 |
드라마 시그널, 도깨비 (0) | 2023.01.14 |