정보관리기술/CA,OS

세마포어(Semaphore)와 모니터(Monitor) / ①

아이티신비 2024. 3. 8. 09:30

문제1) 세마포어(Semaphore)와 모니터(Monitor)

답)

 

1. 동시성에 대한 SW 적인 해결책 세모포어와 모니터의 개요

가. 세모포어와 모니터의 정의

 
세마포어(Semaphore)
모니터(Monitor)
  • 운영체계 또는 프로그램 작성 내에서 상호배제를 지원하는 매커니즘
  • 세마포어 변수(S) 및 두 개의 연산(P,V)으로 임계영역에 접근하는 잠금장치에 대한 이론적 기반
  • Concurrent-Pascal, Module-2/3, JAVA 등 프로그래밍언어 수준에서 세마포어처럼 상호배제 기능을 제공하는 소프트웨어 모듈

 

나. 동시성 지원을 위한 세마포어와 모니터의 역할

 

 

2. 세마포어와 모니터의 개념적 상호관계 및 상세 설명

가. 세모포어와 모니터의 개념적 상호관계

  • 세마포어는 모니터에게 이론적 기반을 제공하고 모니터는 세마포어의 타이밍 문제점을 보완
 

 

나. 세모포어와 모니터의 상세 설명

 
구분
세마포어(Semaphore)
모니터(Monitor)
주체
OS, 개발자 주체의 동시성 지원
프로그래밍 언어 수준의 동시성 지원
상호작용
모니터에게 이론적 기반제공
모니터에게 효과적인 기법제공
세마포어의 단점인 타이밍 오류 해결
세마포어의 단점인 개발편의성의 보완
특징
S의 타입에 따라 Binary / Counting 세마포어로 구분
한 시점에 하나의 프로세스만 모니터 내부에서 수행
세마포어와 계산 능력은 동일
동기화
구현사례
Semaphres S;
P(S); // 검사역할, S-
임계구역()
V(S); // 증가역할, S++
Monitor monitor-name
{
// 지역변수선언
Public entry p1(...){
}
Public entry p2(...){
}
}
언어사례
P, V 연산으로 구현
JAVA의 synchronized Object,
.net 의 모니터
공통점
동시성 지원을 위한 조정(Coordination) 기능을 수행
  • 세마포어는 상호배제/동기화를 프로그래머가 담당하여 고급 프로그래머의 주의 깊은 개발이 필요함
  • 모니터는 객체단위의 설계가 이루어지기 때문에 설계단계에서 상세 설계가 고려되어야 함

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥

'정보관리기술 > CA,OS' 카테고리의 다른 글

우선순위 역전(Priority Inversion)  (23) 2024.03.18
DAS, NAS, SAN  (66) 2024.03.08
NoSQL / ①  (75) 2024.03.07
Race Condition / ①  (73) 2024.03.07
스레싱(Thrashing) / ①  (53) 2024.03.06