Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mecanismos de comunicação - Coggle Diagram
Mecanismos de comunicação
Pipes
Definição
: pipe, ou “cano” é um canal de comunicação unidirecional entre dois processos.
O pipe pode ser classificado como um canal de comunicação local entre dois processos (1:1), unidirecional, síncrono, orientado a fluxo, confiável e com capacidade
finita
tipos
Padrão
: Os pipes padrão têm vida curta: eles só existem durante a execução da linha de
comando ou do processo que os criou, sendo destruídos logo em seguida
Nomeados:
permanecem desde sua criação até serem explicitamente destruídos ou o sistema ser encerrado. Um pipe nomeado é basicamente
um pipe independente de processos e que tem um nome próprio, para que os processos
interessados possam encontrá-lo. Esse nome é baseado na árvore de diretórios dosistema de arquivos, como se fosse um arquivo.
Filas de mensagens
permiti o envio e a recepção ordenada de mensagens tipadas entre processos em um sistema operacional.
O padrão POSIX é responsável por definir uma interface para manipulação de filas
de mensagens.
principais chamadas para usar filas de mensagens POSIX na linguagem C
mq_open
: abre uma fila já existente ou cria uma nova fila
mq_setattr e mq_getattr
: permitem ajustar ou obter atributos (parâmetros)
da fila, que definem seu comportamento, como o tamanho máximo da fila, o
tamanho de cada mensagem, etc
mq_send
: envia uma mensagem para a fila; caso a fila esteja cheia, o emissor
fica bloqueado até que alguma mensagem seja retirada da fila, abrindo espaço
para o envio; a variante mq_timedsend permite definir um prazo máximo de
espera: caso o envio não ocorra nesse prazo, a chamada retorna com erro
mq_receive
: recebe uma mensagem da fila; caso a fila esteja vazia, o receptor é bloqueado até que surja uma mensagem para ser recebida; a variante
mq_timedreceive permite definir um prazo máximo de espera
mq_close
: fecha o descritor da fila criado por mq_open
mq_unlink
: remove a fila do sistema, destruindo seu conteúdo
As filas de mensagens são mecanismos de comunicação entre vários processos
(N:M ou N:1), confiáveis, orientadas a mensagense com capacidade finita. As operações de envio e recepção podem ser síncronas ou assíncronas.
Memória compartilhada
A maioria dos sistemas operacionais atuais oferece mecanismos para o compartilhamento de áreas de memória entre processos
As áreas compartilhadas são gerenciadas pelo núcleo, mas o acesso à area compartilhada é feito pelos processos e não pelo núcleo.
Exemplo de criação de uma memória compartilhada entre dois processos x e y em um sistema UNIX
O processo x solicita ao núcleo a criação de uma área de memória compartilhada
o núcleo aloca uma nova área de memória e a registra em uma lista de áreas compartilháveis
o núcleo devolve ao processo x o identificador (id) da área alocada
o processo x solicita que a área com o id seja anexada ao seu espaço de endereçamento
o núcleo adiciona a área identificada pelo id ao espaço de enderaçamento do proecesso x
o núcleo devolve ao processo x um ponteiro para área alocada
o processo y executa os passos 4-6 e também recebe um ponteiro para a área alocada
os processo x e y comunicam através de escritas e leituras de valores na área compartilhada