깃허브 리포 생성브랜치 생성, 콜래보레이터 초대📍 목표 : 키워드 학습 끝내기 & 이번주 과제에서 뭘 해야하는 지 파악하기.동기화 문제를 해결하기 위해 주어진 스레드 시스템의 기능을 넓히기(추가하기)threads 디렉토리에서 작업을 하게 될 것.threads.h 에
timer_sleep() 고쳐보기.제출물에는 busy wating (spin) 이 없어야 합니다. thread_yield()를 콜하는 작은 루프도 busy waiting 의 하나입니다. (yield = 양보; lock이 없는 쓰레드가 기다리는동안 cpu를 양보하기위한
오늘은 깨우는 부분과 리스트 사용법 중심으로 과제를 수행함.매 틱 발동하는 함수를 찾았음 -> void thread_tick(void)해당함수 에 코드 두 줄 추가.두 번째 줄에서 코드에러.여기서 LIST_ELEM은 리스트의 요소(list_elem 타입의 포인터)이고,
지금까지 했던 방법은 timer.c 에 있는 timer_sleep(), timer_interrupt() 에 직접 코드를 때려박아 재우기 깨우기를 했는데, 이런 방식을 사용한다면 thread.c 와 timer.c 에서 쓰이는 슬립리스트가 달라질 수 있기에, 리스트가 선언
오늘까지 alarm-test 6개 + priority-change,fifo,preempt까지 통과 했음.alarm에서는 스레드의 활성화 & 비활성화에 집중된 과제를 했다면, priority에서는 각 스레드의 우선순위에따라 새로 스케쥴링을 하는 과제를 수행하게 됨.기존
오늘 하루종일 priotity-donate-one으로 삽질하다 팀원이 도와줘서 (사실상 옆에서 떠먹여줘서) 해결함. -> 이거 해결하니 priority-sema도 해결이 되더라.문제상황은 이렇다.우선순위가 높은 쓰레드 H, 중간 M 그리고 낮은 L가 있다고 생각해보세요
thread 구조체에 새로 추가struct list donators; : 자신에게 우선순위를 기부해준 스레드의 명단 -> 우선순위를 복구할 때 필요함.struct lock \*waiting_lock; : 해당 스레드가 기다리고 있는 락을 저장함.struct list_e