Aula 7 -
Linguagens de Programação Distribuídas & SR
- Tópicos que serão abordados:
- Comunicação entre processos
- Troca de mensagem ( Ex.: C++, SR )
- Memória Compartilhada ( virtual ) ( Ex.: Linda )
- Criação de processos / Suporte a paralelismo
- Mapeamento de processos a processadores
- Estático
- Dinâmico
- Inexistente
- SR - Linguagem Distribuída
- Visão Geral
- Linguagem que se baseia em um conjunto de recursos
- Um recurso é considerado padrão se instâncias desse
próprio recurso são criadas dinâmicamente ( semalhante
e classes em C++ )
- Uma criação de recurso sempre retorna uma "Capability"
- Cada programa tem um recurso principal diferenciado dos demais. Uma
instância deste recurso é criada automaticamente quando é
iniciado o programa
- Recursos e globais possuem uma parte de especificação
( spec ) e uma parte de implementação ( body ), que podem
ser compildaos separadamente
- São usadas regras de compatibilidade estrutural para tipos
- Criação de novos processos
- implícito - Não é feito uma chamada a um comando
para se fazer a criação de um novo processo
- explícito - É utilizado um comando para se criar um novo
processo
- Alocação a processadores
- Conceito de máquina virtual ( conceito diferente do PVM )
- Uma maquina virtual provê um espaço de endereçamento
próprio. Assim posso ter várias máquinas virtuais
na mesma máquina e também ter máquinas virtuais em
outras máquinas.
- Comunicação e sincronização entre processos
- Processos na mesma máquina virtual podem compartilhar variáveis
( com semáforos )
- Em máquinas virtuais diferentes processos podem se comunicar
com o uso de primitivas do tipo send e receive
- O SR permite as quatros possibilidades de comunicação:
|
Recebiemnto Síncrono
|
Recebiemnto Assíncrono
|
Envio Síncrono
|
Sim
|
Sim ( Call /Proc )
|
Envio Assíncrono
|
Sim
|
Sim ( Send/Proc )
|
- Exemplos
- RPC - o SR possui chamada remota de procedimento
- Randezvous
- O serviço requisitado por um processo é realizado no
momento em que um processo pré-existente fica disponível
- Não é feito a criação de um novo processo
- Recebiemnto é síncrono
Referências:
Programming Langauges for Distributed Systems - Bal, Steiner,
Tanenbaum - Computer Surveys - 1989
SR - Synchronizing Resources - Greg Andrews - University
of Arizona