Protocolo de chamada de procedimento remoto (RPC) no sistema operacional

O que é RPC?

Chamada de procedimento remoto (RPC) é uma técnica de comunicação entre processos. Ele é usado para aplicativos cliente-servidor. Os mecanismos RPC são usados ​​quando um programa de computador faz com que um procedimento ou sub-rotina seja executado em um espaço de endereço diferente, que é codificado como uma chamada de procedimento normal sem que o programador codifique especificamente os detalhes para a interação remota. Essa chamada de procedimento também gerencia o protocolo de transporte de baixo nível, como o protocolo de datagrama do usuário, o protocolo de controle de transmissão / protocolo da Internet, etc. É usado para transportar os dados da mensagem entre programas. A forma completa de RPC é chamada de procedimento remoto.

Neste tutorial de sistema operacional, você aprenderá:

Tipos de RPC

Três tipos de RPC são:

  • RPC de retorno de chamada
  • Broadcast RPC
  • RPC em modo de lote

RPC de retorno de chamada

Este tipo de RPC permite um paradigma P2P entre os processos participantes. Ajuda o processo a ser serviços de cliente e servidor.

Funções de Callback RPC:

  • Problemas de aplicativos interativos processados ​​remotamente
  • Oferece servidor com controle de clientes
  • O retorno de chamada faz o processo do cliente esperar
  • Gerenciar deadlocks de retorno de chamada
  • Facilita um paradigma ponto a ponto entre os processos participantes.

Broadcast RPC

Broadcast RPC é um pedido do cliente, que é difundido na rede, processado por todos os servidores que possuem o método de processamento desse pedido.

Funções de Broadcast RPC:

  • Permite que você especifique que a mensagem de solicitação do cliente deve ser transmitida.
  • Você pode declarar portas de broadcast.
  • Ajuda a reduzir a carga na rede física

RPC em modo de lote

O RPC no modo em lote ajuda a enfileirar, separar as solicitações RPC, em um buffer de transmissão, no lado do cliente e, em seguida, enviá-las em uma rede em um lote para o servidor.

Funções de RPC em modo em lote:

  • Ele minimiza a sobrecarga envolvida no envio de uma solicitação, pois a envia pela rede em um lote para o servidor.
  • Esse tipo de protocolo RPC só é eficiente para aplicativos que precisam de taxas de chamadas mais baixas.
  • Ele precisa de um protocolo de transmissão confiável.

Como funciona o RPC?

A arquitetura RPC tem principalmente cinco componentes do programa:

  1. Cliente
  2. Stub do cliente
  3. RPC Runtime
  4. Stub do servidor
  5. Servidor

As seguintes etapas ocorrem durante o processo RPC:

Passo 1) O cliente, o stub do cliente e uma instância do tempo de execução RPC são executados na máquina cliente.

Passo 2) Um cliente inicia um processo de stub do cliente passando parâmetros da maneira usual. O stub do cliente é armazenado no próprio espaço de endereço do cliente. Ele também pede ao RPC Runtime local para enviar de volta ao stub do servidor.

Etapa 3) Neste estágio, o RPC acessado pelo usuário fazendo Cal procedural local regular. O RPC Runtime gerencia a transmissão de mensagens entre a rede entre o cliente e o servidor. Ele também executa o trabalho de retransmissão, confirmação, roteamento e criptografia.

Passo 4) Depois de concluir o procedimento do servidor, ele retorna ao stub do servidor, que empacota (empacota) os valores de retorno em uma mensagem. O stub do servidor então envia uma mensagem de volta para a camada de transporte.

Etapa 5) Nesta etapa, a camada de transporte envia de volta a mensagem de resultado para a camada de transporte do cliente, que retorna uma mensagem para o stub do cliente.

Etapa 6) Nesse estágio, o stub do cliente demarshalls (desempacota) os parâmetros de retorno, no pacote resultante, e o processo de execução retorna para o chamador.

Características do RPC

Aqui estão as características essenciais do RPC:

  • O procedimento chamado está em outro processo, que provavelmente residirá em outra máquina.
  • Os processos não compartilham espaço de endereço.
  • Os parâmetros são passados ​​apenas por valores.
  • O RPC é executado no ambiente do processo do servidor.
  • Não oferece acesso ao ambiente do procedimento de chamada.

Características do RPC

Aqui estão alguns recursos importantes do RPC

  • Sintaxe de chamada simples
  • Oferece semântica conhecida
  • Fornece uma interface bem definida
  • Ele pode se comunicar entre processos na mesma máquina ou em máquinas diferentes

Vantagens do RPC

Aqui, estão os prós / benefícios do RPC

  • O método RPC ajuda os clientes a se comunicarem com os servidores pelo uso convencional de chamadas de procedimento em linguagens de alto nível.
  • O método RPC é modelado na chamada de procedimento local, mas é mais provável que o procedimento chamado seja executado em um processo diferente e geralmente em um computador diferente.
  • O RPC oferece suporte a modelos orientados a processos e threads.
  • O RPC torna o mecanismo interno de passagem de mensagens oculto para o usuário.
  • O esforço necessário para reescrever e desenvolver novamente o código é mínimo.
  • As chamadas de procedimento remoto podem ser usadas para fins de ambiente distribuído e local.
  • Ele compromete muitas das camadas de protocolo para melhorar o desempenho.
  • RPC fornece abstração. Por exemplo, a natureza da transmissão de mensagens da comunicação de rede permanece oculta para o usuário.
  • O RPC permite o uso dos aplicativos em um ambiente distribuído que não está apenas no ambiente local.
  • Com o código RPC, o esforço de reescrever e desenvolver novamente é minimizado.
  • Modelos orientados a processos e orientados a threads com suporte por RPC.

Desvantagens do RPC

Aqui estão os contras / desvantagens de usar RPC:

  • A chamada de procedimento remoto passa parâmetros apenas por valores e valores de ponteiro, o que não é permitido.
  • O tempo de chamada (e retorno) de procedimento remoto (ou seja, sobrecargas) pode ser significativamente menor do que para um procedimento local.
  • Esse mecanismo é altamente vulnerável a falhas, pois envolve um sistema de comunicação, outra máquina e outro processo.
  • O conceito de RPC pode ser implementado de maneiras diferentes, o que não é padrão.
  • Não oferece nenhuma flexibilidade em RPC para arquitetura de hardware, pois é principalmente baseado em interação.
  • O custo do processo é aumentado devido a uma chamada de procedimento remoto.

Resumo:

  • Uma chamada de procedimento remoto é uma técnica de comunicação entre processos.
  • Três tipos de RPC são 1) RPC de retorno de chamada 2) RPC de transmissão e 3) RPC de modo em lote
  • A arquitetura RPC tem principalmente cinco componentes do programa: 1) Cliente 2) Stub do cliente 3) Tempo de execução RPC 4) Stub do servidor e 5) Servidor
  • No método RPC, os processos não compartilham espaço de endereço
  • RPC oferece sintaxe de chamada simples e semântica conhecida
  • O método RPC ajuda os clientes a se comunicarem com os servidores pelo uso convencional de chamadas de procedimento em linguagens de alto nível.
  • A maior desvantagem do método RPC é que ele é altamente vulnerável a falhas, pois envolve um sistema de comunicação, outra máquina e outro processo.