Vários métodos principais de comunicação entre processos em Linux e Windows

Método de comunicação do processo Linux:

a) Pipe (Pipe): Pipe nomeado: Pipes podem ser usados ​​para comunicação entre processos com afinidades. O famoso Pipe supera a limitação de que o Pipe não tem nome. Portanto, além das funções do Pipe, também permite Comunicação entre processos não relacionados;
b) Sinal (sinal): o sinal é um método de comunicação mais complexo, usado para notificar o processo de recebimento de que um determinado evento ocorreu. Além da comunicação entre processos, o processo também pode enviar sinais para o próprio processo; além de suportar semântica de sinal Unix inicial, Linux Além da função sigal, ele também suporta a função de sinal sigaction, cuja semântica está em conformidade com o padrão Posix.1 (na verdade, esta função é baseada no BSD. Para realizar um mecanismo de sinal confiável, o BSD pode unificar a interface externa e reimplementar a função de sinal com a função de sigaction);
c) Mensagem (fila de mensagens): A fila de mensagens é uma lista vinculada de mensagens, incluindo o sistema de fila de mensagens Posix V fila de mensagens. Os processos com permissões suficientes podem adicionar mensagens à fila e os processos com permissões de leitura podem ler as mensagens na fila. A fila de mensagens supera as deficiências do sinal que transporta menos informações, o pipe só pode transportar um fluxo de bytes não formatado e o tamanho do buffer limitado.
d) Memória compartilhada: permite que vários processos acessem o mesmo espaço de memória, que é a forma mais rápida de IPC disponível. Ele é projetado para a baixa eficiência de outros mecanismos de comunicação. Muitas vezes, é usado em combinação com outros mecanismos de comunicação, como semáforos, para obter sincronização e exclusão mútua entre processos.
e) Semáforo: Principalmente usado como meio de sincronização entre processos e diferentes threads de um mesmo processo.
f) Soquete: Um mecanismo de comunicação entre processos mais geral que pode ser usado para comunicação entre processos entre diferentes máquinas. Ele foi originalmente desenvolvido pelo ramo BSD do sistema Unix, mas agora pode geralmente ser portado para outros sistemas semelhantes ao Unix: tanto o Linux quanto as variantes do System V suportam soquetes.

Comunicação entre threads do Linux: mutexes, semáforos, variáveis ​​de condição
Comunicação entre threads do Windows: seção crítica (seção crítica), mutex (Mutex), semáforo (semáforo), evento (evento)
Comunicação entre processos do Windows: canais, compartilhamento de memória, filas de mensagens, semáforos, soquetes
O que os processos e threads do Windows têm em comum: semáforos e mensagens (eventos)

Que seu coração seja como flores e árvores

Acho que você gosta

Origin blog.csdn.net/nbcsdn/article/details/104281994
Recomendado
Clasificación