2026/04/29 3

운영체제 · Pintos · Project 1 Threads · 3편

운영체제 · Pintos · Project 1 Threads · 3편Pintos MLFQS: nice, recent_cpu, load_avg로 Project 1 마무리하기1편에서는 alarm-priority를 통해 ready list의 priority 정렬을 봤고, 2편에서는 기본 Priority Scheduler와 donation을 정리했습니다. 이번 3편은 Project 1 Threads의 마지막 축인 MLFQS(Multi-Level Feedback Queue Scheduler)입니다. 핵심은 단순합니다. 이제 priority를 사람이 직접 정하는 것이 아니라, scheduler가 수식으로 계속 다시 계산합니다.이번 글에서 다루는 것MLFQS가 기본 Priority Scheduler와 어떻게 다른지n..

개발/프로젝트 2026.04.29

운영체제 · Pintos · Project 1 Threads · 2편

운영체제 · Pintos · Project 1 Threads · 2편Pintos 기본 Priority Scheduler: waiters 정렬과 priority donation 구현하기1편에서는 alarm-priority를 통해 ready list를 priority 순서로 유지해야 한다는 점을 봤습니다. 이번 글은 그 다음 단계입니다. 깃북이 요구하는 기본 Priority Scheduling을 기준으로 semaphore, condition variable, lock donation까지 연결해서 정리합니다.이번 글에서 다루는 것깃북의 Priority Scheduling 요구사항을 한글로 다시 정리깃북 문장을 테스트와 코드 수정 지점으로 바꾸는 첫삽FIFO 대기열을 priority-aware 대기열로 바꾸는 ..

개발/프로젝트 2026.04.29

운영체제 · Pintos · Project 1 Threads · 1편

운영체제 · Pintos · Project 1 Threads · 1편Pintos alarm-priority: ready_list 우선순위 정렬로 출력 순서 맞추기이번 글은 Pintos Project 1 전체가 아니라 Alarm 테스트 중 alarm-priority에서 드러난 우선순위 문제를 다룹니다. timer_sleep()과 busy waiting은 배경으로만 보고, 실제 코드 분석은 thread.c의 ready list 정렬 수정에 맞춥니다.이번 글에서 다루는 것Alarm Clock 테스트가 thread 상태 전이를 어떻게 확인하는지alarm-priority가 왜 ready list 정렬 문제로 이어지는지실제로 반영한 thread_priority_more, thread_unblock(), thread..

개발/프로젝트 2026.04.29