devices/timer.c 파일에 정의된 timer_sleep() 함수를 다시 구현하세요.
[현재]
/* 시스템 타이머를 사용하여 현재 쓰레드를 일정한 시간동안 대기시킴 */
void timer_sleep(int64_t ticks)
{
int64_t start = timer_ticks(); /* 현재 시간 값을 저장 */
ASSERT(intr_get_level() == INTR_ON);
/* timer_elapsed(): 현재 시간과 start 시간 사이의 경과 시간을 계산 */
while (timer_elapsed(start) < ticks)
/* 다른 쓰레드가 실행될 수 있도록 함(양보) */
thread_yield();
}
Pintos에서 우선순위 스케줄링과 우선순위 기부를 구현하세요.