2011-02-10 4 views
0

process control blockprocess descriptor의 정확한 차이점은 무엇입니까?프로세스 제어 블록 대 프로세스 설명자

저는 리눅스의 커널에 대해 읽었습니다. 실제 프로세스 디스크립터 테이블에 대한 포인터를 포함하는 일부 thread_info 구조체가 작성되었다. thread_info이 커널 스택의 바로 위/아래에 있다고 썼습니다. 그래서 확실히 thread_info이 메인 메모리에 있습니다. 그러나 실제 프로세스 설명자는 무엇입니까 task_struct? 그것이 어디에 있습니까? 프로세스 디스크립터가 주 메모리에 상주한다면, 실제 디스크는 어디에 있는가?

답변

3

thread_infotask_struct 구조는 task_struct보다 더 아키텍처 고유의 데이터를 보유하는 thread_info와 스레드에 대한 다른 정보를 개최 단지 두 개의 서로 다른 구조입니다. 정보를 모두 같은 구조로 유지하는 것보다 정보를 분할하는 것이 더 합리적입니다. (비록 당신이 그것들을 같은 구조체에 넣을지라도, 2.4 리눅스 커널은 이것을했다.)

어떻게 구조체가 할당되는지는 사용하는 아키텍처에 따라 다르다. 조사 할 관련 기능은 alloc_task_struct()alloc_thread_info()입니다.

1

커널에서 프로세스 디스크립터는 프로세스 속성 및 정보를 추적하는 task_struct 구조입니다. 프로세스와 관련된 모든 커널 정보가 여기에 있습니다.

관련 문제