From ab9203c560aeba7dae21249cfd6749d88f327aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=20=EC=9C=A0=EB=B9=88?= <sara150@ajou.ac.kr> Date: Sun, 22 Dec 2024 20:13:09 +0900 Subject: [PATCH] Add new file --- PROJECT1 : THREADS/2. Alarm Clock.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 PROJECT1 : THREADS/2. Alarm Clock.md diff --git a/PROJECT1 : THREADS/2. Alarm Clock.md b/PROJECT1 : THREADS/2. Alarm Clock.md new file mode 100644 index 0000000..3d04cb0 --- /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 틱 후에 깨어날 필요가 없습니다. 적절한 시간 동안 기다린 후 준비 대기열에 넣기만 하면 됩니다. + + -- GitLab