Skip to content

feat: clean up terminated scheduler tasks#19

Open
archan0621 wants to merge 1 commit into
mainfrom
feature/#18-task-lifecycle-cleanup
Open

feat: clean up terminated scheduler tasks#19
archan0621 wants to merge 1 commit into
mainfrom
feature/#18-task-lifecycle-cleanup

Conversation

@archan0621
Copy link
Copy Markdown
Owner

closes #18

개발 내용

task_exit 구현

  • task entry 함수가 반환되면 명시적으로 task_exit() 호출
  • 현재 task를 TASK_TERMINATED 상태로 전환
  • 종료된 task가 잘못된 return address로 복귀하지 않도록 보호

Scheduler cleanup 흐름 추가

  • 종료된 task를 ready queue에 다시 넣지 않도록 처리
  • terminated queue 추가
  • kernel idle loop에서 terminated task의 kernel stack/PCB 회수

Idle loop 개선

  • scheduler demo 시작 후 kernel task가 idle loop로 진입
  • ready queue가 비었을 때 idle loop가 종료 task cleanup 수행
  • 기존 round-robin scheduler 출력 유지

테스트

  • make 빌드 성공
  • 변경 파일 -Wall -Wextra 컴파일 확인
  • QEMU screendump로 round-robin 출력 유지 확인
  • 종료 task cleanup을 별도 finite task demo로 시각 검증

참고

  • 기존 링커 스크립트의 LOAD segment with RWX permissions 경고는 이번 PR 범위 밖으로 유지됨

Made with Cursor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement task lifecycle cleanup for scheduler

1 participant