dohun.log

[OS] 우선순위 상속 프로토콜 본문

Study/OS

[OS] 우선순위 상속 프로토콜

dohun31 2022. 6. 2. 16:27

► 첫째 돼지가 분개한 사건

 

[OS] 우선순위 역전

아기 돼지 삼 형제가 있다. (서열: 첫째 > 둘째 > 셋째) 셋째 돼지가 배가 고파서 부엌으로 갔다. 프라이팬을 꺼내 요리를 시작한다. 그리고 첫째 돼지도 배가 고파 부엌으로 왔다. 첫째 돼지도 프

dohun31.tistory.com

 

첫째 돼지는 서열 1위에도 불구하고 자신이 제일 마지막에 요리를 해야 한다는 사실에 매우 분개했다.

 

따라서 첫째 돼지 셋째 돼지가 자신이 사용할 도구를 미리 사용하고 있다면 다음과 같이 하기로 마음을 먹었다.

 

"너 둘째가 와도 비켜주지 마. 지금부터 너는 나랑 서열이 똑같아 오키?"

 

그 이후 1, 2, 3번 까진 똑같이 흘러가지만 4번부턴 얘기가 달라진다.

 

셋째 돼지는 부엌으로 간다. 여기서 달라진 점은 현재 셋째 돼지는 이전의 셋째 돼지가 아니라는 점이다. 지금의 셋째 돼지는 첫째 돼지급 돼지 즉, 쳇째 돼지이다. 가슴이 웅장해진다..

 

둘째 돼지가 부엌에 와서 냄비를 들고 셋째 돼지에게 나가라고 눈치를 준다.

 

그런데 셋째 돼지는 이제 두렵지 않다. 어쩔티비를 시전하고 하던 요리를 마저 한다.

 

셋째의 요리가 끝나고 첫째 돼지는 드디어 둘째 돼지보다 먼저 요리를 하게 된다.

 

첫째 돼지는 콧노래를 흥얼거리면서 요리를 하고 부엌을 나간다.

 

둘째 돼지는 이제서야 냄비를 잡고 요리를 시작한다.

우선순위 상속 프로토콜

우선순위 상속 프로토콜

  아기 돼지 삼형제 task
1 셋째 돼지가 배가 고파서 부엌으로 갔다. 프라이팬을 꺼내 요리를 시작한다. task3이 공유자원 접근 위해 바이너리 세마포어 획득
2 첫째 돼지도 배가 고파 부엌으로 왔다. 스케줄러에 의해 task1이 수행 (문맥 교환)
3 후라이팬이라는 공유자원은 셋째 돼지가 이미 사용하고 있다.
첫째 돼지는 어쩔 수 없이 셋째 돼지가 후라이팬 사용이 끝날 때 까지 기다려야 한다.
task1은 task3이 획득한 세마포어를 얻으려 하고, task3이 그 세마포어를 반환할 때까지 waiting 상태
4 셋째 돼지는 다시 부엌으로 가 마저 요리를 한다.
셋째 돼지 서열을 첫째 돼지와 동등하게 높여준다. 셋째 돼지는 다시 요리한다.
task1이 세마포어 획득을 위한 waiting 시 task3의 우선순위를 task1의 레벨로 높임. task3의 우선순위가 task2보다 높기 때문에 preemption(선점) 없이 수행
5 셋째 요리 끝 task3이 세마포어를 반납
6 첫째 부엌들어가서 요리 시작 task1이 세마포어 획득 후 수행과 동시에 task3의 우선순위는 다시 예전 레벨로 복귀
7 첫째 요리 끝 task1 수행 완료
8 둘째 부엌들어가서 요리 시작하고 끝~ task2 수행 완료

 

'Study > OS' 카테고리의 다른 글

[OS] 우선순위 역전  (0) 2022.06.02
Comments