A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Memória compartilhada Troca de mensagens Pipes Sinais Inter-process Communication (IPC) Comunicação entre processos.

Apresentações semelhantes


Apresentação em tema: "Memória compartilhada Troca de mensagens Pipes Sinais Inter-process Communication (IPC) Comunicação entre processos."— Transcrição da apresentação:

1 Memória compartilhada Troca de mensagens Pipes Sinais Inter-process Communication (IPC) Comunicação entre processos

2 2 Sistemas Operacionais LPRM/DI/UFES Comunicação entre processos (1) Processos executam em cápsulas autônomas Hardware oferece proteção de memória Um processo não acessa outro processo P1P2 Acesso direto

3 3 Sistemas Operacionais LPRM/DI/UFES Comunicação entre processos (2) Como foi visto, os processos precisam interagir/ cooperar Coordenar o uso de recursos compartilhados Aumentar a velocidade de computação Desenvolvimento modular Atender a requisições simultâneas etc. Como interagir ? Via mecanismos de IPC: Inter-Process Communication

4 4 Sistemas Operacionais LPRM/DI/UFES Comunicação entre processos (3) Ocorre através do S.O. Implementação de canais de comunicação Implicita ou explicitamente S.O. P1 P2 System call canal

5 5 Sistemas Operacionais LPRM/DI/UFES Comunicação entre processos (4) Características desejáveis para IPC Rápida Simples de ser utilizada e implementada Um modelo de sincronização bem definido Versátil Funcione igualmente em ambientes distribuídos Sincronização é uma das maiores preocupações em IPC Permitir que o sender indique quando que um dado foi transmitido Permitir que um receiver saiba quando um dado está disponível Permitir que ambos saibam o momento em que podem realizar uma nova IPC

6 6 Sistemas Operacionais LPRM/DI/UFES Mecanismos de comunicação Fundamentalmente duas abordagens: Suportar alguma forma de espaço de endereçamento compartilhado Shared memory Utilizar mecanismos do próprio S.O. para transportar dados de um processo para outro Troca de mensagens Pipes Sinais etc.

7 7 Sistemas Operacionais LPRM/DI/UFES Memória Compartilhada (1) Quando um mesmo trecho (segmento) de memória encontra-se no espaço de endereçamento de dois ou mais processos O S.O. oferece chamadas permitindo a criação da região de memória compartilhada, mas não se envolve diretamente na comunicação entre os processos Se um processo realiza alguma modificação nesta região, ela é vista por todos os processos que compartilham o segmento de memória

8 8 Sistemas Operacionais LPRM/DI/UFES Memória Compartilhada (2) Process A Process B write variable x main () {. x = 10. }. print(x);. read variable x x: 10

9 9 Sistemas Operacionais LPRM/DI/UFES Memória Compartilhada (3) Vantagens Random Access É possível acessar uma parte específica de uma estrutura de dados e não a estrutura completa Eficiência Corresponde à maneira mais rápida para que dois processos efetuem uma troca de dados Os dados não precisam ser passados ao kernel para que este os repasse aos outros processos, o acesso à memória é direto Desvantagens Não existe um mecanismo automático de sincronização Pode exigir o uso de semáforos, locks, etc., por parte dos processos.

10 10 Sistemas Operacionais LPRM/DI/UFES Introdução Mecanismos de memória compartilhada permite que diferentes processos acessem (leitura/escrita) um mesmo segmento de memória Definido na extensão POSIX:XSI As áreas de memória compartilhadas e os processos que as utilizam são gerenciados pelo núcleo, mas o acesso ao conteúdo de cada área é feito diretamente pelos processos

11 11 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (1) Pode ser resumida na seguinte seqüência de passos 1. O processo p a solicita ao núcleo a criação de uma área de memória compartilhada, informando o tamanho e as permissões de acesso; o retorno dessa operação é um identificador (id) da área criada.

12 12 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (2) 2. O processo p a solicita ao núcleo que a área recém-criada seja anexada ao seu espaço de endereçamento; esta operação retorna um ponteiro para a nova área de memória, que pode então ser acessada pelo processo. 3. O processo p b obtém o identificador id da área de memória criada por p a.

13 13 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (3) 4. O processo p b solicita ao núcleo que a área de memória seja anexada ao seu espaço de endereçamento e recebe um ponteiro para o acesso à mesma. 5. Os processos p a e p b acessam a área de memória compartilhada através dos ponteiros informados pelo núcleo.

14 14 Sistemas Operacionais LPRM/DI/UFES Exemplo de Programa Criação e uso de uma área de memória compartilhada

15 15 Sistemas Operacionais LPRM/DI/UFES Tubos (pipes) (1) Conceito inventado para shells Unix Portado para DOS, OS/2, Windows NT, and BeOS É uma das formas mais divulgadas de IPC Nome origina-se na analogia com um pipeline

16 16 Sistemas Operacionais LPRM/DI/UFES Tubos (pipes) (2) Os tubos (ou pipes) constituem um mecanismo fundamental de comunicação unidirecional entre processos Eles são um mecanismo de I/O com duas extremidades, correspondendo na verdade a filas de caractereres do tipo FIFO Em geral, essas extremidades são implementadas através de descritores de arquivos Um pipe tradicional caracteriza-se por ser: Anônimo (não tem nome) Temporário: dura somente o tempo de execução do processo que o criou Vários processos podem fazer leitura e escrita sobre um mesmo pipe, mas nenhum mecanismo permite diferenciar as informações na saída do pipe

17 17 Sistemas Operacionais LPRM/DI/UFES Tubos (pipes) (3) A capacidade é limitada Se a escrita sobre um pipe continua mesmo depois do pipe estar completamente cheio, ocorre uma situação de bloqueio É impossível fazer qualquer movimentação no interior de um tubo. Com a finalidade de estabelecer um diálogo entre dois processos usando pipes, é necessário a abertura de um pipe em cada direção.

18 18 Sistemas Operacionais LPRM/DI/UFES Tubos (pipes) (4) Named pipe (pipe nomeado ou FIFO) Trata-se de uma extensão do conceito de pipe O pipe nomeado persiste além da vida do processo Precisa ser "desligado" ou apagado quando não é mais usado Os processos geralmente se conectam a um pipe nomeado quando necessitam realizar alguma comunicação com outro processo Normalmente são implementados através de arquivos especiais Um processo abre o FIFO para escrita, outro para leitura

19 19 Sistemas Operacionais LPRM/DI/UFES Troca de Mensagens (1) Processo AProcesso B Dado enviado de A a B S.O. Fila de mensagens de B

20 20 Sistemas Operacionais LPRM/DI/UFES Troca de Mensagens (2) Decisões de implementação Como os canais são estabelecidos ? Canais ponto-a-ponto ou multiponto ? Canais unidirecionais ou bidirecionais ? Quantos canais podem existir entre dois processos ? Qual a capacidade de buffering de um canal ? Mensagens de tamanho fixo ou variável ? etc.

21 21 Sistemas Operacionais LPRM/DI/UFES Sinais (1) Um sinal é um mecanismo de software usado pelo sistema para informar os processos da ocorrência de eventos anormais (e assíncronos) dentro do ambiente de execução Podem ser gerados em diferentes situações Chamando kill() O kernel usa sinais para notificar um processo da ocorrência de uma exceção de hardware O driver de um terminal manda um sinal a um processo quando uma tecla específica foi apertada... Tipos de sinais: Divisão por zero Acesso inválido à memória Interrupção do programa Término de um processo filho Alarme

22 22 Sistemas Operacionais LPRM/DI/UFES Sinais (2) Sinais também representam um mecanismo que possibilita a comunicação entre diferentes processos Sinais são mensagens pré-definidas, contendo apenas um código numérico O processo receptor conhece apenas o tipo do sinal, sem conhecer efetivamente o emissor desse sinal Desvantagem Nenhum dado é especificado para ser trocado entre os processos Em geral, o número de sinais a serem utilizados é bastante reduzido Apresenta uma semântica complexa para threads…

23 23 Sistemas Operacionais LPRM/DI/UFES Sinais (3) Mecanismo de notificação: Em geral, quando um sinal é gerado, o S.O. notifica ao processo setando um bit na sua máscara de sinais pendentes Ao receber um sinal: Um processo pode interromper sua execução e desviar para um tratador (handler) previamente definido O sinal pode ser ignorado Ou pode-se confiar no comportamento default do S.O. Abortar o processo, suspender o processo, continuar (resume) a execução do processo O processo responde imediatamente ao sinal? Máscaras Permitem bloquear determinados sinais para que os mesmos não sejam enviados ao processo Pode ser temporário

24 24 Sistemas Operacionais LPRM/DI/UFES Referências Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3ª. Edição, Editora Prentice-Hall, 2005 Seção 3.5 Stevens, Richard. UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications. Prentice Hall, ISBN Tutorial online: POSIX Threads Programming Nenad Marovac. "On interprocess interaction in distributed architectures", ACM SIGARCH Computer Architecture News, 11(4),

25 Memória Compartilhada no UNIX

26 26 Sistemas Operacionais LPRM/DI/UFES Introdução Mecanismos de memória compartilhada permite que diferentes processos acessem (leitura/escrita) um mesmo segmento de memória Definido na extensão POSIX:XSI As áreas de memória compartilhadas e os processos que as utilizam são gerenciados pelo núcleo, mas o acesso ao conteúdo de cada área é feito diretamente pelos processos

27 27 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (1) Pode ser resumida na seguinte seqüência de passos 1. O processo p a solicita ao núcleo a criação de uma área de memória compartilhada, informando o tamanho e as permissões de acesso; o retorno dessa operação é um identificador (id) da área criada.

28 28 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (2) 2. O processo p a solicita ao núcleo que a área recém-criada seja anexada ao seu espaço de endereçamento; esta operação retorna um ponteiro para a nova área de memória, que pode então ser acessada pelo processo. 3. O processo p b obtém o identificador id da área de memória criada por p a.

29 29 Sistemas Operacionais LPRM/DI/UFES Criação e uso de uma área de memória compartilhada (3) 4. O processo p b solicita ao núcleo que a área de memória seja anexada ao seu espaço de endereçamento e recebe um ponteiro para o acesso à mesma. 5. Os processos p a e p b acessam a área de memória compartilhada através dos ponteiros informados pelo núcleo.

30 30 Sistemas Operacionais LPRM/DI/UFES Exemplo de Programa Criação e uso de uma área de memória compartilhada

31 31 Sistemas Operacionais LPRM/DI/UFES Referências VAHALIA, U. Unix Internals: the new frontiers. Prentice-Hall, Seção 6.2 Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3ª. Edição, Editora Prentice-Hall, 2005 Seção


Carregar ppt "Memória compartilhada Troca de mensagens Pipes Sinais Inter-process Communication (IPC) Comunicação entre processos."

Apresentações semelhantes


Anúncios Google