-
RPC(Remote Procedure Call):
일반적으로 프로세스는 자신의 주소공간 내의 함수만 호출,
RPC는 다른 주소공간의 프로세스의 함수를 실행할 수 있음.(네트워크 사용)
- Client-Server 간의 커뮤니케이션에 필요한 상세정보는 최대한 감춘다. (=> 언어나 환경에 구애를 받지 않는다! )
- Client와 Server는 각각 일반 메소드를 호출하는 것처럼 원격지의 프로시저를 호출할 수 있다.
과정
1. 클라이언트 프로시저가 클라이언트 스터브를 호출
2. 클라이언트 스터브는 매개변수들을 pack해서 kernel을 trap함
3. 커널이 원격 커널에 메시지 보냄
4. 원격 커널이 서버 스터브에 메시지를 줌
5. 서버 스터브가 매개 변수를 unpack하고 서버를 호출함
6. 서버가 프로시저를 실행하고 결과를 서버 스터브에 반환함
7. 서버 스터브가 결과를 pack해서 kernel에 trap함
8. 원격 커널이 로컬 커널로 메시지를 보냅니다
9. 로컬 커널이 클라이언트 스터브에 메시지를 제공합니다10. Client stub unpacks result(s) and returns them to client
RPC의 장점
- 고유 프로세스 개발에 집중 가능 (하부 네트워크 프로토콜에 신경쓰지 않아도 되기 때문)
- 프로세스간 통신 기능을 비교적 쉽게 구현하고 정교한 제어 가능
RPC 단점
- 호출 실행과 반환 시간이 보장되지 않음 (네트워크 구간을 통하여 RPC 통신을 하는 경우, 네트워크가 끊겼을 때 치명적 문제 발생)
- 보안이 보장되지 않음
'os 운영체제' 카테고리의 다른 글
os: 프로그램 실행 시 메모리의 구조 (0) 2024.04.14 OS: Thread(cooperating system) (0) 2024.04.08 OS: 프로세스, IPC, fork/exec (0) 2024.04.03 OS: 프로그램의 구조, 인터럽트, Syscall, 프로세스 실행 상태 (0) 2024.03.28 OS: 스풀, CISC, 데드락 (0) 2024.03.27