리눅스 쓰레드를 이용하여 프로그래밍을 하려고 하는데 RedHat8.0(2.4.18-14)에서의 쓰레드 관련하여 다음 사항이 궁금합니다. - 동시성 제어에 관한 적절한 수준의 관리 함수를 제공해 주는가? - 시스템 함수 및 라이브러리에 대한 재진입이 안전한가? - 디스크 입출력 혹은 네트워크 데이터 입출력을 위한 시스템 함수 호출시에 프로세스 전 체가 블록되지는 않는가? - Preemption이 가능한가? 답변에 미리 감사 드립니다
재진입은 _r 접미사 함수를 쓰면 안전합니다. RH 8.0 은 NPTL 을 쓰므로 스레드 관리가 좋아졌고, 블록되는 I/O 는 호출한 스레드만 막힙니다. 커널 2.4 는 커널 모드 선점이 기본으로 없어서 선점은 제한적입니다.