1 |
1
프로그램 변경 없이 커널모드 스위칭 오버헤드를 낮추기 위해 응용 프로그램 바이너리에 함수 후킹(Function Hooking)을 사용하여 서버가 가상 머신 간 주소 테이블에 서버의 IP 주소와 포트 번호에 대한 엔트리를 추가하는 단계; 클라이언트가 가상 머신 간 주소 테이블에서 서버 주소를 찾고, 서버 주소가 존재하는 경우 통신에 쓸 공유 메모리 큐를 생성하고 큐 메타데이터에 클라이언트의 주소를 기록하는 단계; 서버가 클라이언트의 연결 요청 대기열에 생성된 큐의 물리 주소와 크기를 기록하는 단계; 서버가 클라이언트의 연결 요청 대기열의 큐의 시작 주소와 큐의 크기만큼 서버의 가상 메모리 페이지 테이블에 맵핑하고 클라이언트의 주소를 확인하여 클라이언트-서버 연결을 수행하는 단계; 및 각 클라이언트-서버 쌍은 네트워크 스택 및 전역 네트워크 큐를 우회하여 개별적으로 할당된 메모리 공간을 통신용 큐로 사용하는 공유 메모리 큐를 생성하는 단계 를 포함하는 바이너리 호환 가상 머신 간 통신 방법
|
2 |
2
제1항에 있어서, 프로그램 변경 없이 커널모드 스위칭 오버헤드를 낮추기 위해 응용 프로그램 바이너리에 함수 후킹(Function Hooking)을 사용하여 서버가 가상 머신 간 주소 테이블에 서버의 IP 주소와 포트 번호에 대한 엔트리를 추가하는 단계는, 함수 후킹을 통해 바이너리 프로그램이 호출하는 함수를 후킹하여 다른 동적 라이브러리의 함수를 호출하여 유저모드에서 원하는 함수를 실행시키고, TCP/IP를 동적 라이브러리로 사용하는 모든 프로그램에 적용하고, 불필요한 기존 함수의 실행을 방지하기 위해 가상 머신 간 공유 메모리를 사용하는 Stub 함수로 TCP/IP 함수 호출을 링크하는 바이너리 호환 가상 머신 간 통신 방법
|
3 |
3
제2항에 있어서, 서버는 가상 머신 간 주소 테이블에 서버의 IP 주소와 포트 번호에 대한 엔트리를 추가하고, 엔트리에 연결 요청 대기열을 생성하며 TCP/IP 함수 호출과 같이 이루어져 가상 네트워크를 통해 외부 네트워크에서 오는 연결 요청도 수신하는 바이너리 호환 가상 머신 간 통신 방법
|
4 |
4
제1항에 있어서, 가상 머신 간 통신에서 발생하는 커널모드 스위칭 오버헤드를 제거하기 위해 유저모드 폴링 기법을 이용하여 커널모드 스위칭 없이, 공유 메모리에 존재하는 메타데이터 영역을 유저모드에서 주기적으로 참조하여 데이터가 도달하였는지 확인하는 바이너리 호환 가상 머신 간 통신 방법
|
5 |
5
제1항에 있어서, 서버가 클라이언트의 연결 요청 대기열의 큐의 시작 주소와 큐의 크기만큼 서버의 가상 메모리 페이지 테이블에 맵핑하고 클라이언트의 주소를 확인하여 클라이언트-서버 연결을 수행하는 단계는,서버 또는 클라이언트 중 어느 한쪽에서 연결을 종료할 경우 큐 메타 데이터에 연결이 종료되었음을 표기하고, 종료를 확인한 반대쪽이 가상 머신 간 주소 테이블 엔트리 및 공유 메모리 큐를 소거하는 바이너리 호환 가상 머신 간 통신 방법
|
6 |
6
프로그램 변경 없이 커널모드 스위칭 오버헤드를 낮추기 위해 응용 프로그램 바이너리에 함수 후킹(Function Hooking)을 사용하여 가상 머신 간 주소 테이블에 서버의 IP 주소와 포트 번호에 대한 엔트리를 추가하는 서버; 가상 머신 간 주소 테이블에서 서버 주소를 찾고, 서버 주소가 존재하는 경우 통신에 쓸 공유 메모리 큐를 생성하고 큐 메타데이터에 클라이언트의 주소를 기록하는 클라이언트를 포함하고, 서버는, 클라이언트의 연결 요청 대기열에 생성된 큐의 물리 주소와 크기를 기록하고, 서버가 클라이언트의 연결 요청 대기열의 큐의 시작 주소와 큐의 크기만큼 서버의 가상 메모리 페이지 테이블에 맵핑하고 클라이언트의 주소를 확인하여 클라이언트-서버 연결을 수행하며, 각 클라이언트-서버 쌍은 네트워크 스택 및 전역 네트워크 큐를 우회하여 개별적으로 할당된 메모리 공간을 통신용 큐로 사용하는 공유 메모리 큐를 생성하는 바이너리 호환 가상 머신 간 통신 시스템
|