Linux에서 스레드/프로세스 프로그래밍에 대한 기본 및 비기본 지원이 있습니까?

Linux에서 스레드/프로세스 프로그래밍에 대한 기본 및 비기본 지원이 있습니까?
  1. POSIX 스레드(pthread)와 OpenMP는 스레드 프로그래밍을 위한 라이브러리입니다. 그러나 그들은 Linux에 기본이 아닌가? 즉, 나중에 사용자가 설치해야 합니까?

    그렇다면 Linux의 기본 라이브러리 또는 기능은 무엇입니까? pthread와 OpenMP를 구현하는 데 사용됩니까?

  2. 프로세스 프로그래밍과의 비교를 위해 제가 맞다면 Linux는 기본적으로 fork(), exec*(), waitpid() 및 파이프라인() 기능을 제공하지만 MPI는 제공하지 않습니다. 프로세스 프로그래밍을 위한 기본 함수에 MPI가 구현되어 있습니까?

답변1

"비원어민"이란 무엇을 의미합니까? 각 배포판에는 고유한 기본 설치 패키지 세트가 있고 해당 세트를 조정하기 쉽기 때문에 "기본 설치"는 명확하게 정의되지 않습니다.

POSIX 스레드이는 내장되지 않은 Linux 시스템의 필수 부분인 GNU libc의 일부입니다(더 작은 시스템을 위한 대안이 있으며 주요 시스템에는 pthread 지원도 포함되어 있다고 생각합니다). Linux 커널에는 스레드에 대한 기본 지원이 포함되어 있습니다. pthread는 아니지만 커널 단독으로 지원하는 것과 커널 위에 있는 표준 라이브러리가 지원하는 것 사이의 구별은 거의 유용하지 않습니다.

MP 열기gcc의 일부인 GOMP에서. 표준 라이브러리(Glibc)와 달리 일반 Linux 시스템에 libgomp를 설치하는 것이 가능합니다.

구현하는 방법에는 여러 가지가 있습니다.MPILinux의 경우 다음을 포함합니다.MPICH그리고MPI 열기. 일반 Linux 시스템에도 이러한 기능이 없습니다.

모든 것은 궁극적으로 위에서 실현됩니다.시스템 호출, 즉 커널이 제공하는 기능입니다. MP, MPI 및 기타 라이브러리는 프로세스 관리, 프로세스 간 통신(파이프, 소켓, 공유 메모리 등) 및 멀티스레딩(잠금, 조건 등)을 위한 시스템 호출 측면에서 구현됩니다.

관련 정보