| 출제예상 | 모니터/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 |