소프트웨어 아키텍처 - 13(Virtual Machine Architecture Style)
Virtual Machine Architecture Style
- 개요
- 가상 머신은 기존 시스템 위에 구축되며 가상 추상화, 속성 집합 및 작업을 제공
- 대부분의 경우 가상 머신은 프로그래밍 언어나 응용 프로그램 환경을 실행 플랫폼으로부터 분리 가능
- 가상머신은 에뮬레이션과 유사하게 보일 수 있음
예시
- unix운영 체제 -> unix커널 위에 C셸, Korn셸등 여러 쉘을 제공
- Microsoft .NET 플랫폼의 공용 언어 런타임 (CLR) -> 단일 중간 언어를 사용하여 VB.NET, VC.NET 및 C#과 같은 여러 모듈을 통합하는 가상 머신의 역할을 수행
- Java Virtual Machine (JVM) -> 컴파일 시스템 (javac)에서 생성된 Java 바이트코드와 기타 Java 내부 코드는 JVM을 지원하는 모든 운영 체제에서 실행할 수 있음
적용 사례
- 직접적인 해결책이 없을 경우 시뮬레이션이나 번역을 통해 문제를 해결하는데 적합
장점, 단점
- 장점
- 이식성 및 기계 플랫폼 독립성
- 소프트웨어 개발의 간단함
- 오류 작동 모델의 시뮬레이션
- 단점
- 인터프리터의 느린 실행
- 새로운 레이어로 인한 오버헤드