priority 썸네일형 리스트형 Pintos-kaist Guide - PROJECT 1: THREADS - Alarm Clock, Priority Scheduling Alarm Clock devices/timer.c에 정의된 timer_sleep()을 다시 구현합니다. 작동하는 구현이 제공되지만 busy waits, 즉 현재 시간을 확인하고 충분한 시간이 경과할 때까지 thread_yield()를 호출하는 루프에서 회전합니다. busy waits를 피하려면 다시 구현하세요. void timer_sleep (int64_t ticks); 호출 스레드의 실행을 최소한 x 타이머 틱 만큼 시간이 지날 때까지 일시 중지합니다. 시스템이 유휴 상태가 아닌 경우에는 정확히 x 틱이 지난 후에 스레드를 깨울 필요는 없습니다. 대신 적절한 시간 동안 대기한 후에 준비 큐에 해당 스레드를 넣어주면 됩니다. timer_sleep()은 초당 한 번씩 커서를 깜박이는 등 실시간으로 동작하는.. 더보기 pintOS - project1(Thread) thread.c thread.c 더보기 // advanced scheduling 용도 //17.14 형식의 고정소수점 표현 #define P 17 #define Q 14 #define F (1 = 0 ? ((x + F/2)/F) : ((x - F/2)/F)) //고정소수점 기본 연산 #define ADD_FIXED(x,y) (x) + (y) #define SUB_FIXED(x,y) (x) - (y) #define MUL_FIXED(x,y) ((int64_t)(x)) * (y) / (F) #define DIV_FIXED(x,y) ((int64_t)(x)) * (F) / (y) #define ADD_INT(x, n) (x) + (n) * (F) #define SUB_INT(x, n) (x) - (n) * .. 더보기 이전 1 다음