[운영체제] 뮤텍스 VS 세마포어 차이점에 대해(임계영역)

프로그래밍/운영체제2020. 12. 9. 17:36

먼저 임계영역(Critical Section)에 대해 정리하겠습니다. 임계영역은 공유 자원을 가진 코드 부분으로 서로 다른 프로세스가 동시에 접근할 때 생기는 문제가 생기는 부분입니다. 만약 모든 동작들이 Atomic하게 동작한다면 임계영역에 대해 문제가 발생하지 않겠지만 실제로는 코드 실행 중에 다른 쓰레드나 프로세스로 전환이 일어날 수 있습니다.

 

서로 다른 프로세스/쓰레드에서 동시에 접근하는 공유 자원이 있다면 먼저 도착한 프로세스/쓰레드가 작업을 다 끝난 후 그 뒤에 온 프로세스/쓰레드가 작업을 하게해야 안전합니다.

 

제가 대학생 때 이해를 좀 쉽게하기 위해 화장실을 비유로 설명을 들었던 기억이 납니다.

뮤텍스의 경우 화장실 1칸(공유자원)이 주어진 경우입니다. 1번에 1명만 화장실을 사용할 수 있게 먼저 화장실에 들어간 사람은 화장실 문을 잠굽니다(Lock). 화장실(공유자원) 사용이 끝나면 문을 열고 나옵니다(Unlock). 이렇게 화장실을 사용하면 여러 사람이 화장실을 사용해야할 때 먼저 온 순서대로 화장실을 쓸 수 있어 문제가 생기지 않습니다.

 

세마포어는 화장실 4칸이 주어진 경우를 예로 들 수 있습니다.

이 경우에 화장실의 각 칸 앞에 사람들이 줄을 설 수도 있지만 이렇게 하면 먼저 왔으나 다른 사람보다 더 늦게 화장실을 사용할 수 있습니다. 이마트에서 물건을 계산하기 위해 줄을 서는 장면을 생각해보세요 ㅎ 내가 먼저 와도.. 옆의 줄이 더 빨리 빠지는 신기한 경험을 해본적이 다 있을 겁니다.

그래서 이런 경우에는 줄은 1줄만 서고 화장실 4칸 중에서 먼저 비는 칸이 생기면 차례대로 들어가면 됩니다. 이 예에서 세마포어는 사용할 수 있는 화장실 칸의 갯수로 볼 수 있겠네요. 이 값이 0보다 큰 경우에만 다른 사람(프로세스/쓰레드가) 화장실(공유자원)을 이용할 수 있습니다.

 

GeeksforGeeks에 Mutex와 Semaphore 내용이 있긴한데;; 잘 쓰여진 글은 아닌 것 같아요. 이해가 잘 안되네요.

Guru99의 내용이 더 좋은 것 같아요.

 

참고

www.geeksforgeeks.org/mutex-vs-semaphore/

 

Mutex vs Semaphore - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

en.wikipedia.org/wiki/Critical_section#:~:text=By%20carefully%20controlling%20which%20variables,the%20shared%20variable%20are%20prevented.&text=In%20a%20related%20situation%2C%20a,one%20process%20at%20a%20time.

 

Critical section - Wikipedia

In concurrent programming, concurrent accesses to shared resources can lead to unexpected or erroneous behavior, so parts of the program where the shared resource is accessed need to be protected in ways that avoid the concurrent access. This protected sec

en.wikipedia.org

www.guru99.com/semaphore-in-operating-system.html

 

What is Semaphore? Binary, Counting Types with Example

Anime websites are online collection of various animated movies, cartoons, and TV shows. You can...

www.guru99.com

 

작성자

Posted by 드리머즈

관련 글

댓글 영역