Part A. Alarm Clock

현재상황 : timer_sleep()을 돌리면

  1. 현재 timer의 tick수를 start에 저장
  2. time_elapsed(start)를 돌리면서 ticks보다 작으면 계속 thread_yield실행 → CPU에 thread가 못들어가게 됨
    1. time_elapsed의 경우 tick이 계속 늘어나기 때문에 tick만큼 지날때까지 계속 thread_yield를 실행한다.

sleep and awake 구현하기

sleep list를 만들어서 넣고 block state로 변경

sleep을 깨우려면 어떻게 해야하지?

sleep 구현하기 - 1

🔥 뭔가 프로그램이 멈춰버려서 열심히 gdb 사용법을 익히는중...

awake 구현하기

→ 테스트 통과!!!!!!!!!

비효율적인 부분이 많았지만 우선 테스트는 통과했다.