Nos sistemas, como um processo se comunica com outro processo?

1

Eu aprendi abaixo dos mecanismos do IPC,

  • Tubos half-duplex do estilo BSD

  • Filas de mensagens no estilo SYSV

  • Conjuntos de semáforos de estilo SYSV

  • Segmentos de memória compartilhada no estilo SYSV

  • Soquetes de estilo BSD

Tubo half-duplex pode ser usado como comunicação de processo 1-1, unidirecional. Qualquer processo conectado deve compartilhar um ancestral relacionado. pipe() permite a comunicação entre processos, dentro de um sistema .

A fila de mensagens (lista vinculada) pode ser usada como comunicação de processo 1-1, bidirecional entre dois processos ( long mtype ) dentro de um sistema . Para cada msgsnd() de um processo cria um item na fila (lista vinculada), correspondendo msgrcv() de outro processo, leia / exclua o item da fila.

Amemóriacompartilhadapodeserusadacomoumacomunicaçãodemuitosprocessos,bidirecional,dentrodeumsistema.Internamente,éummapeamentodeumaárea(segmento)dememóriaqueserámapeadaecompartilhadapormaisdeumprocesso.

O soquete BSD ( socket() / bind() / listen() / accept() ) pode ser usado para muitos ( cliente ) - um ( servidor ) dois comunicação de saída entre sistemas com SO diferente , mas em um modo cliente-servidor.

Pergunta:

1)

Em sistemas com SO similar, o que é o mecanismo IPC (fornecido pelo Linux) para muitos processos de comunicação, no modo não cliente-servidor ?

2)

Em sistemas com sistemas operacionais diferentes, qual é o mecanismo IPC (fornecido pelo Linux) para muitos processos de comunicação, no modo não cliente-servidor ?

    
por overexchange 24.01.2017 / 01:28

1 resposta

1

Dadas suas definições, eu usaria arquivos incluindo pipes nomeados em um sistema de arquivos compartilhado. O protocolo 9p em particular foi projetado para fazer isso, onde os programas exportariam sistemas de arquivos virtuais e reagiriam aos eventos.

Não sei por que você deixou os pipes nomeados em sua lista original.

    
por 24.01.2017 / 01:41