목표
현재 스케줄러는 timer IRQ 기반 round-robin 전환까지 동작하지만, 태스크 종료 이후 생명주기 처리가 아직 완성되지 않았습니다.
작업 내용
- task entry가 반환될 때 명시적으로 task 종료 상태로 전환
- 종료된 task를 scheduler가 다시 ready queue에 넣지 않도록 처리
- 종료된 task의 PCB/kernel stack을 안전하게 회수하는 reaper 흐름 추가
- ready queue가 비었을 때 커널 idle loop에서 종료 task 정리
기대 결과
- task 함수가 반환되어도 잘못된 return address로 커널이 깨지지 않음
- 종료된 task가 다시 스케줄링되지 않음
- scheduler demo 이후 task lifecycle 확장 기반 확보
테스트
- make 빌드 확인
- QEMU에서 round-robin scheduler 동작 유지 확인
목표
현재 스케줄러는 timer IRQ 기반 round-robin 전환까지 동작하지만, 태스크 종료 이후 생명주기 처리가 아직 완성되지 않았습니다.
작업 내용
기대 결과
테스트