다음은 다음에서 인용되었습니다.POSIX 스레드와 Linux 커널커널 2.4에 스레드 그룹이 도입되기 전의 상태를 설명합니다.
Linux에 POSIX 호환성을 추가하는 데 있어 근본적인 장애물 중 하나는 Linux가 POSIX가 프로세스라고 부르는 것의 일부인 모든 작업을 그룹화하고 반복하는 쉬운 방법이 없다는 것입니다. 동일한 주소 공간을 가진 모든 작업을 찾는 것이 가능하지만 시스템의 모든 작업을 살펴봐야만 가능합니다. 이는 커널 수준에서 추가할 수 있는 항목을 제한합니다.
모든 작업(POSIX가 프로세스의 일부라고 부르는 것)을 찾는 유일한 옵션이 왜 있는지 궁금합니다 look at all tasks in the system
.
다음 논리가 작동하지 않는 이유는 무엇입니까?
- 특정 작업에 대한 핸들이 주어지면 동일한 주소 공간을 가진 가장 이른 조상을 찾습니다. (여기서는 각 작업이 복제된 작업에 대한 핸들을 가지고 있다고 가정합니다.)
- 가장 빠른 작업 아래에서 동일한 주소 공간을 가진 모든 작업 조상 하위 트리를 검색합니다. (이는 각 작업에 복제된 모든 작업에 대한 핸들이 있다고 가정합니다.)
- 동일한 주소 공간을 가진 하위 트리 아래의 모든 작업을 검색합니다 init
(이것은 init의 작업이 작업 트리의 루트라고 가정합니다).
작업량이 많아 보이지만 모든 작업을 반복하는 것보다 시간이 덜 복잡합니다.