1. timer

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();
}

2. Priority Scheduling

Pintos에서 우선순위 스케줄링과 우선순위 기부를 구현하세요.


3. Advanced Scheduler