안녕하세요.
리눅스 커널 이론에 관해서 공부하던도중 도무지 이해가 안가서 질문드립니다.
위 제목과 같은 질문입니다.
task_struct와 thread_info, kernel stack 이것이 실제로 가상주소공간의 커널 영역에 어떻게 위치하는지 모르겠습니다.
task_stuct 같은 경우는 실행단위가 생성될때마다 디스크립터가 형성된다고들었습니다. 그리고 그 디스크립터들은 환형 링크드 리스트로 구성된다고 하죠.
거기에 더불어 다른 필드를 이용하여 우선순위 별로 또다른 링크드 리스트를 구성하여 실행큐에서 참조한다고 알고 있습니다.
딱히 책에서는 언급된 부분을 찾을수 없지만 , 추측컨데 해당 task_struct가 커널 영역에서 단순히 하나만 존재하는 것이 아니라 시스템상에 존재하는 모든 실행중인 디스크립터들이
모두 올라와있다고 생각했습니다. <이것이 옳은 것인이 아닌지 궁금합니다.>
또한 커널 스텍과 더불어 thread_info 구조체가 8k 즉, 2페이지에 할당된다고 하던데, 자료를 찾아보니 이것도 커널 영역에 있더군요.