다대다 스레딩 모델의 각 동시 시스템 호출에 LWP(Lightweight Process)가 필요한 이유는 무엇입니까?

다대다 스레딩 모델의 각 동시 시스템 호출에 LWP(Lightweight Process)가 필요한 이유는 무엇입니까?

경량 수압사용자 스레드와 커널 스레드 사이에 위치하는 데이터 구조이며 사용자 스레드 라이브러리에 가상 프로세서로 나타납니다.따라서 다대다 스레딩 모델에 필요한 최소 LWP 수는 동시 차단 시스템 호출 수입니다.

왜 이런 일이 발생하는지 설명해 주세요.

답변1

경량 프로세스(Unix 및 Unix 계열)는 단일 커널 스레드를 통해 사용자 공간에서 실행되고 동일한 사용자 프로세스의 다른 LWP와 주소 공간 및 리소스를 공유하는 프로세스입니다.

시스템 호출은 사용자 공간에서 커널 함수에 대한 호출입니다. 사용자 프로세스가 시스템 호출을 수행하면 해당 호출은 사용자 프로세스/스레드와 연관된 LWP에 의해 처리되고 검색됩니다.통화를 처리하는 동안 차단됨커널에서(LWP와 연관된 커널 스레드를 통해) 호출이 해결되면 커널 스레드와 LWP가 다시 유휴 상태가 됩니다.

그렇기 때문에최저 한도에서다대다 스레딩 모델에서 필요한 LWP 수는 동시성의 양입니다.차단하다시스템 호출, 차단 시스템 호출과 LWP가 1:1로 관련되어 있기 때문에 (사용자 스레드의 차단 시스템 호출이 포함된 동안에는 LWP가 다른 작업을 수행할 수 없음)

관련 정보