diff --git a/PROJECT1 : THREADS/2. Alarm Clock.md b/PROJECT1 : THREADS/2. Alarm Clock.md new file mode 100644 index 0000000000000000000000000000000000000000..3d04cb010a5944496f319617386b1598eaaffff0 --- /dev/null +++ b/PROJECT1 : THREADS/2. Alarm Clock.md @@ -0,0 +1,11 @@ +# Alarm Clock + +`devices/timer.c`에 정의된 `timer_sleep()`을 재구현합니다. + +작동하는 구현이 제공되지만 busy waits, 즉 현재 시간을 확인하고 충분한 시간이 지날 때까지 `thread_yield()`를 호출하는 루프에서 돕니다. busy waits를 피하기 위하여 다시 구현하세요. + +`void timer_sleep (int64_t ticks);` + +> 호출 스레드의 실행을 최소 x 타이머 틱만큼의 시간이 진행될 때까지 일시 중단합니다. 시스템이 쉬고 있는 상태가 아니면 스레드는 정확히 x 틱 후에 깨어날 필요가 없습니다. 적절한 시간 동안 기다린 후 준비 대기열에 넣기만 하면 됩니다. + +