timer_sleep()
다시 구현하기 : devices/timer.c
에 정의된 timer_sleep()
함수를 다시 구현
현재 기본 제공되는 구현은 busy waiting 방식으로 되어 있음. 즉, 루프를 돌면서 현재 시간을 계속 확인하고, 시간이 충분히 지날 때까지 thread_yield()
를 호출. → 이런 방식은 CPU를 불필요하게 낭비하므로, busy waiting을 없애도록 다시 구현 필요
void timer_sleep (int64_t ticks);
timer_sleep()
의 인자는 timer ticks 단위include/devices/timer.h
에 있는 매크로 TIMER_FREQ
로 정의timer_msleep()
, timer_usleep()
, timer_nsleep()
같은 함수도 존재
timer_sleep()
을 호출Alarm Clock 구현은 이후 프로젝트에서는 필수로 쓰이지는 않음. 그렇지만 Project 4 (File System) 에서 도움이 될 수 있음