Yeram522 / W08-Pintos

Other
0 stars 0 forks source link

[Project 1/Alarm clock] Semaphore 사용시 동기화 문제 발생 #8

Open Yeram522 opened 3 months ago

Yeram522 commented 3 months ago

👀 관련 이슈

6 기존 설계 단계에서 sema_up(), sema_down()을 이용해 임계영역을 설정했었습니다.. 하지만 예상치 못한 동기화 오류가 발생했습니다.

✨ 작업한 내용

semaphore을 이용하지 않고, block(),unblock() 을 이용해 스레드의 상태를 직접적으로 변경해주었습니다.

🍰 참고사항

추가적으로 Pint0s의 semaphor 구조체의 waits 리스트에 대한 추가적인 연구가 필요할 것 같습니다.

/* A counting semaphore. */
struct semaphore {
    unsigned value;             /* Current value. */
    struct list waiters;        /* List of waiting threads. */
};
yujin0124 commented 3 months ago

Error

image