Suporte nativo e não nativo de programação thread / process no Linux?

1
  1. O thread POSIX (pthread) e o OpenMP são bibliotecas para programação de threads. Mas é certo que eles não são nativos do Linux, ou seja, eles precisam ser instalados pelo usuário mais tarde?

    Se sim, quais são as bibliotecas nativas ou funções no Linux? Eles são usados para implementar pthread e OpenMP?

  2. Para desenhar uma comparação paralela à programação de processo, se eu estiver correto, as funções fork (), exec * (), waitpid () e pipe () são oferecidas nativamente pelo Linux, enquanto MPI não é. A MPI é implementada nessas funções nativas para programação de processos?

por Tim 01.08.2011 / 20:22

1 resposta

3

O que você quis dizer com "não-nativo"? Não há uma definição clara de "instalado por padrão", já que cada distribuição tem seu próprio conjunto padrão de pacotes instalados e é muito fácil ajustar esse conjunto.

Os tópicos POSIX fazem parte do GNU libc, que é uma parte fundamental de qualquer sistema Linux não embarcado (existem substitutos para sistemas pequenos, acho que os principais também incluem suporte pthread). O próprio kernel do Linux inclui suporte para threads. Não é exatamente pthread, mas a distinção entre o que é suportado apenas pelo kernel e o que é suportado pela biblioteca padrão no topo do kernel raramente é útil.

O

OpenMP vem do GOMP, que faz parte do gcc. Ao contrário da biblioteca padrão (Glibc), é possível ter um sistema Linux normal sem o libgomp instalado.

Existem várias implementações de MPI para Linux, incluindo MPICH e OpenMPI . Existem sistemas Linux normais sem eles também.

Tudo é finalmente implementado em cima de chamadas de sistema , ou seja, a funcionalidade fornecida pelo kernel. MP, MPI e outras bibliotecas são implementadas em termos de chamadas de sistema para gerenciamento de processos, comunicação entre processos (pipes, soquetes, memória compartilhada,…) e multithreading (bloqueios, condições,…).

    
por 02.08.2011 / 01:14