태스크 디스크립터 2

디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1, 도서 공부하기 16 - 스레드 정보(thread_info)

안녕하세요. 이전 글에서는 프로세스 속성을 관리하는 자료구조인 태스크 디스크립터를 확인했습니다. 이번 글에서는 프로세스 실행동작은 관리하는 thread_info에 대해서 확인합니다. 이번 부분은 내용이 조금 많아서, 빠르게 요약하면서 따라가 보겠습니다. 그래서 지루할 수 있습니다. 1. thread_info 구조체란? 태스크 디스크립터(task_struct)는 프로세스의 공통 속성 정보를 저장, 관리를 합니다. thread_info 구조체는 프로세스의 세부 실행 정보를 저장하거나 로딩하는 자료구조를 관리합니다. 핵심 실행정보 저장하는 하는 내용은 - 선점 스케줄링 실행 여부 - 시그널 전달 여부 - 인터럽트 컨텍스트와 Soft IRQ 컨텍스트 상태 - 휴먼 상태로 진입하기 직전 레지스터를..

IT/Linux Kernel 2025.04.20

디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1, 도서 공부하기 15 - 태스크 디스크립터(task_struct)

안녕하세요. 유저 프로세스와 커널 프로세스에 전반전 내용은 끝내고 이제 중요한 구조체 2개(태스크 디스크립터(task_struct 구조체), 스레드 정보(thread_info 구조체))를 확인하려고 합니다. 그중에 태스크 디스크립터(task_struct 구조체) 먼저 확인해 보겠습니다. 태스크 디스크립터(task_struct 구조체)에는 많은 필드가 있어서 책에서 소개하는 정도만 따라가 보겠습니다. struct task_struct 정의한 내용만 봐도 참 따라가기 쉽지 않겠구나 생각이 듭니다. 1. 프로세스 식별 필드 ps를 통해 systemd, kthreadd, rcu_gp 등 프로세스 이름을 확인할 수 있습니다. 이것은 task_struct의 comm 필드에 접근해서 가져옵니다. l..

IT/Linux Kernel 2025.04.15