RPC 메모리 관리 소개
RPC의 컨텍스트에서 메모리 관리에는 다음이 포함됩니다.
- 클라이언트와 서버 스레드의 다른 주소 공간에 있는 클라이언트와 서버 간의 단일 개념적 주소 공간을 시뮬레이션하는 데 필요한 메모리 할당 및 할당 취소
- 메모리 관리를 담당하는 소프트웨어 구성 요소(애플리케이션 또는 MIDL 생성 스텁)를 결정합니다.
- 메모리 관리에 영향을 주는 MIDL 특성 선택: 방향 특성, 포인터 특성, 배열 특성 및 ACF 특성 [ byte_count], [ 할당] 및 [ enable_allocate].
프로그램이 주소 공간에서 함수 또는 프로시저를 호출하는 경우 메모리 관리는 분산 애플리케이션보다 더 간단합니다. 다음 다이어그램은 이진 트리를 보여 줍니다. 이 데이터 구조를 주소 공간의 프로시저에 전달하기 위해 프로그램은 단순히 트리의 루트에 포인터를 전달합니다.
클라이언트/서버 RPC 애플리케이션은 서로 다른 두 메모리 공간에서 데이터를 공유합니다. 이러한 메모리 공간은 동일한 컴퓨터에 있을 수도 있으며 그렇지 않을 수도 있습니다. 어느 쪽이든 클라이언트와 서버는 서로의 메모리 공간에 직접 액세스할 수 없습니다. RPC는 서버 프로그램의 주소 공간에서 클라이언트 프로그램의 주소 공간을 시뮬레이션하는 기능에 따라 달라집니다. 또한 새 데이터와 변경된 데이터를 포함하여 서버에서 클라이언트 메모리로 데이터를 반환해야 합니다.
이전 다이어그램에 표시된 이진 트리와 같은 경우 루트 노드에 대한 포인터를 원격 프로시저에 전달하는 것으로 충분하지 않습니다. 프로그램 또는 스텁은 원격 프로시저가 작동하려면 전체 트리를 서버의 주소 공간으로 전달해야 합니다.