목록Semaphore (1)
취미가 좋다
운영체제 6 : Process Synchronization and Mutual Exclusion (3)
Busy waiting 문제를 해결하기 위해서 OS가 지원하는 Solution을 살펴보자. Spinlock Semaphore Evencount/sequencer Spinlock : 정수 변수로, 초기화, P( ), V( ) 연산으로만 접근 가능하다. P( ), V( )는 atomic 연산을 하도록 OS 가 보장해준다. 즉, 중간에 preemption되지 않는다. - P는 물건을 꺼내고, V는 물건을 넣는 것으로 볼 수 있다. - S는 물건의 개수로 보면 된다. - P는 자물쇠를 잠그고, S는 자물쇠를 푼다고 생각할 수도 있다. P(S) { while (S = 1 이어야 메시지를 가져갈 수 있다. - 정리하면 In >= u + 1 - 메시지가 있으면 가져가고 Out을 증가시킨다. 다음 글에서는 마지막으로 ..
Computer Science/운영체제
2021. 1. 18. 18:54