1. 경량 프로세스란 무엇입니까
경량 프로세스를 이해하기 전에 먼저 프로세스와 스레드가 필요합니다. 우리 모두는 프로세스가 본질적으로 PCB, 가상 주소 공간, 페이지 테이블 및 코드 데이터의 모음, 즉 커널 데이터 + 코드 데이터의 모음이라는 것을 알고 있습니다. 사용자 입장에서 보면 이렇습니다. CPU 관점에서 프로세스는 시스템 자원을 할당하는 단위입니다. 스레드는 프로세스 내에서 실행되며 운영 체제 호출의 기본 단위입니다. CPU는 스케줄링 시 어떤 프로세스나 스레드(리눅스 프로세스 및 스레드 커널)를 알지 못하지만 PCB 구조만 인식합니다. 즉, Linux 버전의 실행 흐름이고 이것이 스레드입니다. 서로 다른 운영 체제는 스레드를 구현하기 위해 서로 다른 구조적 형식을 사용할 수 있습니다. Linux에서는 스레드 구조와 프로세스 구조가 완전히 일치합니다. 이로 인해 Linux에서 PCB의 비디오 메모리가 다른 운영 체제보다 크거나 동일해집니다. 이로 인해 Linux의 프로세스 볼륨이 다른 운영 체제보다 커집니다. 이러한 프로세스는 경량 프로세스입니다. 경량 프로세스(LWP)와 일반 프로세스의 주요 차이점은 LWP가 동일한 주소 공간과 열린 파일 등의 기타 리소스를 공유한다는 것입니다. 일부 리소스가 공유되기 때문에 이 프로세스는 다른 일반 프로세스에 비해 경량으로 간주되므로 경량 프로세스라는 이름이 붙습니다.
2. 경량 프로세스 ID 및 프로세스 ID
우선 프로세스 ID가 경량 프로세스의 ID가 아니라는 것은 확실합니다. 프로세스에 실행 흐름이 하나만 있고 이때 프로세스에 메인 스레드가 하나만 있는 경우에만 프로세스 ID와 경량입니다. 이때 프로세스 ID도 lwp 뿐입니다. 다른 경우에는 스레드에 lwp
linux 프로세스와 스레드 커널이 있고 CPU도 예약할 때 lwp를 예약합니다.
3. LWP와 pthread_create
로 생성된 스레드 간의 관계
프로그램이 pthread_create() 함수를 호출하면 새로운 LWP가 생성됩니다. 이 새로운 LWP는 새로 생성된 스레드를 구현하고 동일한 프로세스의 리소스를 다른 스레드와 공유하는 데 사용됩니다. 따라서 pthread_create에 의해 생성된 스레드는 프로그램에서 생성된 일종의 LWP라고 볼 수 있습니다.
즉, LWP는 pthread_create로 생성된 스레드에 해당하고, pthread_create로 생성된 스레드는 시스템의 LWP와 동일합니다.
위 내용은 경량 프로세스란 무엇입니까? 이 기사는 당신에게 더 깊은 이해를 줄 것입니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!