반응형
I. 상호배제를 이용한 동기화 기법, 세마포어의 개념
- 멀티프로그래밍 환경에서 공유 자원 사용을 위한 경쟁 시 정적 변수를 사용하여 공유 자원에 대한 접근을 제한하는 기법
- 특징 : 동시성 제어, 정적 변수 사용
II. 세마포어의 유형 및 동작원리
가. 세마포어의 유형
유형 | 설명 |
이진 세마포어 (Binary) |
- 정적변수는 0 또는 1 의 값만 할당 가능한 세마포어 |
- 구현이 간단하고, Test and Set 등 하드웨어가 지원하는 기능을 이용하여 구현 가능 | |
계수형 세마포어 (Counter) |
- 사용 가능한 자원의 수로 초기값 설정 |
- 세마포어 값의 범위 미결정 |
- 세마포어의 정적변수 범위에 따라 이진 세마포어와 계수형 세마포어로 구분
나. 세마포어의 동작원리
![]() |
|
동작 | 설명 |
변수 초기화 | - 사용가능한 자원의 수만큼 정적변수 S 를 초기화 |
P 연산 | - 잠금을 수행하는 코드로 S 가 0 보다 크면 1 만큼 감소 시키고 임계영역 진입 - S 가 0 보다 작으면 0 보다 커질때까지 대기 |
V 연산 | - 잠금 해제와 동기화를 같이 수행하는 코드로 S 값을 1 증가 - 세마포어에서 대기 중인 프로세스에게 임계영역에 진입하도록 신호 전달 |
- 세마포어는 타이밍 문제가 발생 가능하며 이를 해결하기 위해 모니터 기법을 사용
III. 세마포어와 모니터의 상호관계 및 비교
가. 세마포어와 모니터의 상호관계
![]() |
- 세마포어는 모니터에 이론적 기반을 제공하고, 모니터는 세마포어의 타이밍 문제를 해결
나. 세마포어와 모니터의 비교
구분 | 세마포어 | 모니터 |
주체 | - 운영체제, 개발자 주체의 동시성 지원 | - 프로그래밍 언어 수준의 동시성 제어 |
상호작용 | - 모니터의 이론적 기반 제공 | - 세마포어의 타이밍 문제해결 |
연산방식 | - P 연산, V 연산 | - wait 연산, signal 연산 |
접근방식 | - 직접 공유자원 접근처리를 구현 | - 캡슐화된 함수를 호출하여 공유자원 접근 |
특징 | - 이진, 계수형 세마포어로 구분 - 부정확하게 사용시 타이밍 오류 발생 - 상호배제 위반, 교착상태 발생 가능 존재 |
- 하나의 프로세스만 모니터 내부에서 수행 - 프로그래밍 언어의 일부로 구현 (캡슐화) - 컴파일러에서 모니터 기능을 제공해야 사용 |
- 세마포어와 모니터는 동시성 제어를 수행하는 기법이라는 공통점을 갖고 있음
반응형
'IT기술노트 > 컴퓨터구조 및 운영체제' 카테고리의 다른 글
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 |
모니터 (Monitor) (0) | 2022.07.28 |
뉴로모픽 칩(Neuromorphic Chip) (0) | 2022.07.04 |
DAS, NAS, SAN (0) | 2022.06.29 |
파이프라인 해저드 유형 및 해결방안 (0) | 2022.06.05 |
HA (High Availability), 고가용성 (0) | 2022.01.27 |
댓글