본문 바로가기
반응형

thread2

[pintos] Project1:Threads - Priority Scheduling (2) priority preemptive scheduling에 이어서 priority inversion을 해결하기 위해 priority donation을 구현해야한다. priority inversion pintos manual과 교재의 설명을 참고해 정리하면 H, M, L로 priority가 낮아지는 세 프로세스가 있고 priority scheduling을 따라 프로세스가 실행되면 H, M, L, 순서로 실행이 끝나야 한다. 하지만 아닌 경우가 발생하는데 이때 priority inversion이 발생했다고 한다. 만약 H가 L에 점유되어 있는 lock을 기다려야 하는 상황이 생겼다고 가정하자. H는 L이 lock을 풀어줄 때까지 CPU를 점유하지 못하고 waiting 상태에 놓인다. L이 lock을 풀어주는 .. 2022. 12. 9.
[pintos] Project1:Threads - Alarm Clock 학교에서 pintos 프로젝트를 운영체제 시간에 프로젝트 과제로 한 학기동안 진행했는데 마감과 기타 다른 과목에 쫓겨 제대로 못한 거 같아 다시 해보려고 한다.. 학교에서는 project3에 이 부분을 다루지만 pintos manual에서는 project1에 해당하니 pintos manual 순서대로 복습 및 추가 공부를 진행해보려한다.. 모든 핀토스 프로젝트는 서강대학교에서 제공한 자료를 기반으로 진행했습니다 Alarm Clock Alarm Clock 파트에서 우리에게 요구하는 것은 busy waiting을 없애는 것이다. devices/timer.c의 timer_sleep()의 busy waiting 없애기 void timer_sleep (int64_t ticks) { int64_t start = t.. 2022. 12. 9.
728x90