Linux의 프로세스 제어 블록과 프로세스 설명자의 차이점을 이해하는 데 문제가 있습니까?프로세스 제어 블록, Linux의 프로세스 설명자 및 task_struct?
이 두 구조를 task_struct
이라고하며이 두 용어의 차이점은 무엇입니까?
많은 도움을 주셔서 감사합니다.
Linux의 프로세스 제어 블록과 프로세스 설명자의 차이점을 이해하는 데 문제가 있습니까?프로세스 제어 블록, Linux의 프로세스 설명자 및 task_struct?
이 두 구조를 task_struct
이라고하며이 두 용어의 차이점은 무엇입니까?
많은 도움을 주셔서 감사합니다.
"프로세스 제어 블록"또는 "프로세스 설명자"라는 용어는 Linux 커널 개발에서 "예술 용어"로 간주되지 않습니다. 물론 공식적인 리눅스 커널 용어집이 없기 때문에 사람들이 자유롭게 무엇이든지 그것을 부르는 것이 좋습니다.
그러나 대조적으로 task_struct
은 태스크에 대한 상태를 유지하기 위해 Linux 커널에서 사용하는 특정 C 구조입니다. Linux의 작업은 대략 스레드에 해당합니다.
각 사용자 프로세스에는 하나 이상의 스레드가 있으므로 각 프로세스는 하나 이상의 task_structs
에 매핑됩니다. 특히, 프로세스는 파일 기술자, 주소 공간/메모리 맵, 신호 처리, 프로세스 및 프로세스 그룹 ID 등 특정 자원을 공유하는 하나 이상의 작업입니다. 프로세스의 각 스레드는 고유 한 개별 버전을 가지고 있습니다 다른 리소스 : 레지스터/실행 컨텍스트, 일정 매개 변수 등.
프로세스가 단일 스레드 만 갖는 것이 일반적입니다. 이 경우 하나의 프로세스가 단일 task_struct
으로 표시되는 것으로 간주 할 수 있습니다.