반응형
I. 세마포어의 타이밍 문제 해결, 모니터의 개념
- 프로세스 동기화 수행 시 세마포어의 단점인 타이밍 문제 해결을 위해 프로그래밍 언어 수준에서 상호배제를 구현하여 동기화 하는 기법
- 특징 : 타이밍 문제 해결, 언어 수준 편의성 제공
II. 모니터의 동작원리 및 구성요소
가. 모니터의 동작원리
![]() |
동작원리 |
① 임계구역으로 지정된 변 수나 자원에 접근하고자 하는 프로세스는 직접 P(), V()연산을 사용하지 않고 모니터에 작업 요청 (캡슐화) ② 모니터는 요청받은 작업을 모니터큐(베타동기 큐, 조건동기 큐)에 저장 후 순서대로 처리 ③ 모니터는 처리결과만 해당 프로세스에 통보 |
- 모니터는 임계구역 보호와 동기화를 위해 내부적으로 상태 변수를 사용
나. 모니터의 구성요소
구분 | 구성요소 | 설명 |
동기화 요소 | 임계구역 | - 쓰레드에서 접근하는 공유 자원 영역 |
베타동기 큐 | - 한 쓰레드만 임계영역에 접근하도록 제어하는 큐 | |
조건동기 큐 | - 쓰레드를 조건에 따라 잠그거나 깨우는 큐 | |
언어 요소 (Java 사례) |
Synchronized | - 쓰레드를 조건에 따라 잠그거나 깨우는 큐 |
Wait | - 임계구역에서 조건동기 큐로 진입시켜 쓰레드를 잠금 | |
Notify, notifyAll | - 조건동기 큐에 잠겨 있는 쓰레드를 깨워 임계구역에 재진입 |
- 모니터는 프로그래밍 언어 수준에서 상호배제를 구현하는 수단을 제공하며, Ordering 용도로 사용 가능
III. 세마포어와 모니터의 상호관계 및 비교
가. 세마포어와 모니터의 상호관계
![]() |
- 세마포어는 모니터에 이론적 기반을 제공하고, 모니터는 세마포어의 타이밍 문제를 해결
나. 세마포어와 모니터의 비교
구분 | 세마포어 | 모니터 |
주체 | - 운영체제, 개발자 주체의 동시성 지원 | - 프로그래밍 언어 수준의 동시성 제어 |
상호작용 | - 모니터의 이론적 기반 제공 | - 세마포어의 타이밍 문제해결 |
연산방식 | - P 연산, V 연산 | - wait 연산, signal 연산 |
접근방식 | - 직접 공유자원 접근처리를 구현 | - 캡슐화된 함수를 호출하여 공유자원 접근 |
특징 | - 이진, 계수형 세마포어로 구분 - 부정확하게 사용시 타이밍 오류 발생 - 상호배제 위반, 교착상태 발생 가능 존재 |
- 하나의 프로세스만 모니터 내부에서 수행 - 프로그래밍 언어의 일부로 구현 (캡슐화) - 컴파일러에서 모니터 기능을 제공해야 사용 |
- 세마포어와 모니터는 동시성 제어를 수행하는 기법이라는 공통점을 갖고 있음
반응형
'IT기술노트 > 컴퓨터구조 및 운영체제' 카테고리의 다른 글
교착 상태(Dead Lock) 발생의 필수조건과, 교착 상태 해결방안 (3) | 2023.11.25 |
---|---|
GPGPU(General Purpose Graphic Processing Units) (0) | 2023.10.19 |
IPC, Inter-Process Communication (0) | 2023.10.12 |
중앙처리장치 메이저 상태 (CPU Major State) (1) | 2023.10.09 |
세마포어 (Semaphore) (0) | 2022.07.28 |
뉴로모픽 칩(Neuromorphic Chip) (0) | 2022.07.04 |
DAS, NAS, SAN (0) | 2022.06.29 |
파이프라인 해저드 유형 및 해결방안 (0) | 2022.06.05 |
댓글