경량 프로세스 외에 Linux에는 "중량 프로세스"라는 개념이 있습니까?

경량 프로세스 외에 Linux에는 "중량 프로세스"라는 개념이 있습니까?

리눅스에서는

  1. 경량 프로세스의 정의는 무엇입니까?

    경량 프로세스는 clone() 시스템 호출에 의해 생성된 것으로 정의됩니까? (이것은 "Linux 커널 이해"라는 책에서 제가 이해한 것입니다.)

    일반 프로세스는 경량 프로세스인가요? (그런 것 같아요)

  2. 리눅스에는 "헤비급 프로세스"? (이것은 일반 프로세스를 의미하는 것 같으니 중량급 프로세스는 여전히 경량 프로세스입니까?)

감사해요.

답변1

아니요, 가벼운 프로세스는 다른 프로세스와 리소스를 공유하는 스레드일 뿐입니다. 초기 Linux에서는 스레드와 TGID를 지원하지 않았기 때문입니다. 하지만 더 이상은 아닙니다. 최신 Linux에는 스레드와 TGID라는 개념이 있습니다 getpid. 오늘날 사람들은 더 이상 가벼움이나 무거움에 대해 이야기하지 않습니다.

그러나 중요한 것은 KERNEL을 사용하면 동일한 프로세스의 스레드가 생각보다 훨씬 더 독립적일 수 있으며(모두 자체 PCB를 가지고 있다고 생각합니다), 동일한 프로세스에 있지 않은 스레드도 공유할 수 없는 놀라운 것들을 공유할 수 있다는 것입니다. 기대해요. KERNEL은 프로세스의 스레드가 사용자 네임스페이스, 마운트 네임스페이스, PID 네임스페이스와 같은 일부 항목을 공유하도록 강제하지만 자격 증명이나 기타 항목은 공유하지 않습니다. 예상한 것과 같은 "스레드"를 얻으려면 pthread 또는 Go 스레드와 같은 사용자 공간 스레드에 대해 1-1 매핑 또는 mn 매핑을 사용하십시오.

관련 정보