배경 : 스레드 이해하기

기본 제공 기능

스레드 생성 원리

항상 동시에 단 하나의 스레드만 실행되고, 나머지 스레드는 대기 상태. 스케줄러가 어떤 스레드를 실행할지 결정(실행 가능한 스레드가 없으면 idle() 스레드가 실행됨). 동기화 도구들은 실행 중인 스레드를 대기 상태로 바꾸거나 다른 스레드로 컨텍스트 스위치를 유도. 컨텍스트 스위치 자체는 thread_launch() (threads/thread.c) 안에 구현되어있으며 깊게 이해할 필요 X

각 스레드의 스택은 4KB로 고정되어 있어, 큰 지역 배열(int buf[1000];) 같은 걸 선언하면 스택 오버플로우가 발생 가능.

소스 파일 구조 개요

threads 디렉터리

init.c, init.h