출제예상 | 모니터/Monitor 동기화 | - 세마포어와 관계 설명 가능 - 프로세스 동기화 수행시 세마포어의 단점인 타이밍 문제를 해결하기 위하여 프로그래밍 언어 수준에서 상호배제를 구현하여 동기화를 제공하는 기법. (중요) 프로그램 언어로, 제어한다는 것. 이로인해, 변수로 제어 하겠다는 개념 |
세마포어의 P 연산과 V 연산 122회 기출 |
토픽 이름 (중) | 모니터(Monitor) 동기화 |
분류 | OS > 병행제어 > 모니터(Monitor) 동기화 |
키워드(암기) | 타이밍 문제, 언어수준의 상호배제, 배타동기, 조건동기, synchronized,wait,notify |
암기법(해당경우) |
기출문제
번호 | 문제 | 회차 |
1 | 6. 모니터(Monitor) 프로세스 동기화 기법 | 기_119.응.1.6 |
2 | 세마포어(Semaphore)와 모니터(Monitor)의 상호관계를 설명하시오. | 기_98.응.1.11 |
3 | 세마포어(Semaphore)와 모니터(Monitor)의 상호관계를 설명하시오. | 모1501-응-1-8 |


I. 상호배제의 SW적인 해결책 모니터의 개요
가. 모니터의 정의
- 세마포어의 이론을 기반으로 프로그래밍언어 수준에서 상호배제 기능을 제공하는 소프트웨어 모듈
나. 모니터의 특징
- 지역 변수는 모니터 내부에서만 접근 가능
- 프로세스는 모니터 프로시저 중 하나를 호출함으로써 모니터 내부로 진입
- 한 시점에 단 하나의 프로세스만 모니터 내부에서 수행 가능
- 세마포어보다 High Level의 동기화 메소드로 사용하기 용이함
II. 모니터의 개념도 및 유형
가. 모니터의 개념도
![]() |
<동기화 방법> - cwait(c) : 호출한 프로세스를 조건 c에서 일시중지 - csignal(c) : cwait에 의해 중지된 프로세스를 재개시킴 |
나. 모니터의 유형
유형 | 프리미티브 구현 핵심 | 구현방법 |
시그널 기반 유한 버퍼 모니터 |
if문 사용 | If (count == N) cwait(notfull); /*버퍼에 문자가 가득 찬 경우. 오버플로 방지*/ |
csignal 문 사용 | csignal(notempty); /*not empty조건 변수에서대기하고 있는 프로세스를 깨움*/ | |
MESA 기반 유한 버퍼 모니터 |
while문 사용 | while (count == N) cwait(notfull); /*버퍼에 문자가 가득 찬 경우. 오버플로 방지*/ |
cnotify 문 사용 | cnotify(notfull); /*대기하는 생산자가 있으면 조건 발생을 통보*/ |
III. 세마포어와 모니터의 상호관계
![]() |

“끝”
반응형
'정보관리기술사 > CA_OS' 카테고리의 다른 글
운영체제특권레벨 (0) | 2023.11.28 |
---|---|
Banker's Algorithm(은행가알고리즘) (1) | 2023.11.27 |
교착상태(Deadlock) (0) | 2023.11.25 |
우선순위 역전 (0) | 2023.11.24 |
Semaphore (1) | 2023.11.23 |