
1. 하드웨어 가상화의 종류 [ 가상화의 종류 ] 가상화에도 서버 가상화, OS-Level 가상화, 데스크톱 가상화, 애플리케이션 가상화, 네트워크 가상화 등이 있다. 그 중에서도 서버를 가상화하는 하드웨어 가상화인 전가상화와 반가상화의 차이에 대해서 정리하려고 하는데, 해당 내용을 이해하기 위해서는 CPU의 동작 레벨에 대해서 알고 있어야 한다. [ CPU의 동작 레벨 ] OS에서 구동되는 소프트웨어는 보안을 위해 권한과 보호 수전에 따라 링(RING) 등급으로 나뉘어진다. Ring 0를 특권 모드라고 하며 시스템 자원을 관리하는 OS 커널이 동작한다. Ring 1,2는 예약된 상태로, 평상시에는 사용되지 않는다. Ring3는 우리가 일반적으로 사용하는 응용프로그램들이 동작한다. 2 전가상화 [ 전가상..

1. 가상화(Virtualization)란? [ 가상화(Virtualization)란? ] 가상화란 가상화를 관리하는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상 머신(VM)을 만드는 프로세스이다. Hypervisor는 가상화 층을 구현하여 물리적 머신의 컴퓨팅 리소스로부터 가상 환경을 분리하고 가상 머신(VM)을 생성한다. VM은 물리적 머신과 동일한 역할 및 성능을 수행하지만, cpu와 메모리 및 스토리지와 같은 물리적 머신의 컴퓨팅 리소스를 사용한다. Hypervisor는 필요에 따라 각 VM에 이러한 컴퓨팅 리소스를 할당한다. 최근에는 Docker와 같은 컨테이너 가상화 기술이 등장하기도 하였다. 도커를 윈도우에서 사용하는 경우에는 Hypervisor를 사용하지만,..

1. CUDA C 병렬 프로그래밍 고급 예제 [ Parallel Dot ] 아래의 예제는 동일한 크기의 A배열과 B배열의 index에 있는 숫자를 곱해 C배열에 대입하는 코드이다. #include "device_launch_parameters.h" #include #include #include #define SIZE (2048 * 2048) #define THREADS_PER_BLOCK 512 // __global__을 통해서 커널임을 표시한다. host에서 호출된다. __global__ void dot(int *a, int *b, int *c, int n){ // 수많은 블록과 스레드가 동시에 처리한다. // 위에서 정의한 index를 통해서 스레드들을 구별한다. int index = threadId..

1. CUDA란? [ CUDA란? ] CUDA는 Nvidia가 만든 병렬 컴퓨팅 플랫폼 및 API 모델이다. 소프트웨어 개발자들은 CUDA를 통해 General한 Purpose를 위한 GPU사용이 가능해졌는데, 이러한 것을 GPGPU(General-Purpose Computing on Graphics Processing Units)라고 한다. CUDA 플랫폼은 GPU의 가상 명령어셋과 병령 처리 요소들을 사용할 수 있도록 만들어주는 소프트웨어 레이어이며, NVIDIA가 만든 CUDA 코어가 장착된 GPU에서 작동한다. 2006년 11월, G80 아키텍처와 함께 처음 발표되었으며, 초기에는 C,C++만 지원했지만 지금은 Fortran이나 C# 등 다양한 언어에서 사용아 가능하며 현재는 10.0 버전까지 나..

아래의 실습은 Ubuntu 20.04를 기반으로 포스팅하였습니다. 1. Xen 설치하기 [ 1. 관련 패키지 설치 ] 먼저 Xen을 설치하기 위해 필요한 패키지들을 설치하고 업데이트 후에 재부팅한다. // vim 에디터 설치 sudo apt install vim // Xen 관련 패키지 설치 sudo apt install xen-hypervisor-amd64 xen-tools // 네트워크 유틸 설치 sudo apt install net-tools // 패키지 업데이트 sudo apt update // 재부팅 sudo reboot [ 2. Xen 실행 여부 확인 ] 설치한 Xen 하이퍼바이저가 잘 실행되고 있는지 확인한다. 정상적으로 Xen이 설치되었다면 아래와 같은 도메인 0 가상머신이 생성되어 있을 ..