Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스레드
- Heap영역
- 스레드 동기화
- Non-Preemptive
- 인터락 함수
- Process Control Block
- 커널 모드의 동기화
- 커널 모드
- Reentrant
- 블로킹 논블로킹
- 경량 프로세스
- 프로세스 상태 전이도
- Light Weight Process
- 동기 비동기
- Multi-level Queue
- 은행원 알고리즘
- Activity
- 뮤텍스(Mutex)
- 유저 모드의 동기화
- 교착 상태
- The Banker's Algorithm
- 문맥 교환
- 프로세스 제어 블록
- 방금 그 곡
- The DIning Philosopher Problem
- 임계 구역
- 프로세스
- 유저 모드
- 모니터(Monitor)
- Stack영역
Archives
Blog For Me
[운영체제] 뮤텍스, 모니터, 세마포어 차이점 본문
뮤텍스와 모니터의 차이
- 뮤텍스는 다른 프로세스나 스레드 간의 동기화에 의해 사용된다.
- 반면, 모니터는 하나의 프로세스 내에서 다른 스레드 간에 동기화할때 사용된다.
- 뮤텍스는 운영체제 커널에 의해 제공되므로 무겁고 느리다.
- 반면, 모니터는 프레임워크나 라이브러리 그 자체에서 제공되므로 가볍고 빠르다.
세마포어와 모니터의 차이
- 모니터는 Java에서 모든 객체에 기본적으로 제공하지만, C에서는 사용이 불가능하다.
- 세마포어는 프로그래머가 상호 배제나 정렬의 목적으로 사용할 때 매번 Counter라는 변수값을 지정해줘야 하는 등 사용 방식이 번거롭다.
- 반면 모니터는 이러한 기능들이 캡슐화되어 있어 개발자는 Counter 값을 0 또는 1로 줘야 하는 등의 고민을 할 필요 없이 synchronized, wait(), notify() 등의 키워드를 이용하여 좀 더 편하게 동기화 할 수 있다.
세마포어와 뮤텍스의 차이
- 세마포어는 뮤텍스가 될 수 있지만, 뮤텍스는 세마포어가 될 수 없다.
- 세마포어는 소유할 수 없는 반면에, 뮤텍스는 소유가 가능하며 소유주가 그 책임을 진다.
- 뮤텍스와 경우에 뮤텍스를 소유하고 있는 스레드만이 이 뮤텍스를 해제할 수 있다.
- 반면, 세마포어는 소유하지 않고 있는 다른 스레드가 세마포어를 해제할 수 있다.
- 뮤텍스는 동기화 대상이 1개일 때 사용하고, 세마포어는 동기화 대상이 여러개일 때 사용한다.
참고자료
'컴퓨터과학 > 운영체제' 카테고리의 다른 글
[운영체제] Peterson's Algorithm(피터슨의 알고리즘) (0) | 2021.12.03 |
---|---|
[운영체제] lock & busy-waiting 문제 (0) | 2021.12.03 |
[운영체제] 유저 모드의 동기화 vs 커널 모드의 동기화 (0) | 2021.11.30 |
[운영체제] 스레드 동기화 문제 (0) | 2021.11.30 |
[운영체제] 동기화(Synchronization), 경쟁 상태(Race Condition) (0) | 2021.11.29 |
Comments