세마포(Semaphore)는 Mutex Lock보다 더 정교하고 강력한 프로세스 동기화 도구이다. (* 동기화: 시스템을 동시에 작동시키기 위하여 여러 사건들을 조화시키는 것)
세마포 S는 특별한 표준 동기화 연산을 통해서만 접근 할 수 있는 정수 변수로서, 세마포 값은 대개 사용 가능한 특정 자원의 수를 의미한다. 이 때 Semaphore 연산은 초기화 연산(semaphore S의 값을 초기화 하는 연산)과 두개의 원자적 연산(P operation & V operation)으로 나눈다.
Semaphore는 1)상호배제, 2) 유한 개수의 자원 접근, 3) 프로세스 동기화를 위한 것이 목적이다. 이를 위해 사용되는 각각의 방법을 알아보자면,
1) 상호배제 구현 > 이진 세마포 (Mutex lock과 유사함)
semaphore의 값을 1로 초기화하여, 임계구역 접근 제어에 사용한다.
2) 유한 개수의 자원 접근을 구현 > Counting semaphore
Counting Semaphore란 유한한 개수의 자원을 접근하기 위해 사용된다. 즉 한정된 concurrency를 설정하기 위함이다. 이 떄 semaphore 의 값은 최대 가용 자원 개수를 의미한다
3) 프로세스 동기화 구현: process p1, p2가 각각 존재한다고 할 때, signal을 통해 조절한다.
반응형
'Computer Science' 카테고리의 다른 글
[자료구조] 스택을 이용한 중위표기식 > 후위표기식 변경 및 후위표기식 표현방법 (0) | 2024.01.16 |
---|---|
[운영체제] 교착상태 개념, 특징(상호배제, 점유하며 대기, 비선점, 순환 대기) (0) | 2024.01.15 |
[컴퓨터구조론] 시스템 버스의 기본동작 , 버스 분류(동기/비동기식) (0) | 2024.01.13 |
[운영체제] 임계구역 문제, 해결책(상호배제 ,진행 , 한정 대기) (0) | 2024.01.12 |
[자료구조] Linked List를 이용한 다항식 표현방법 (0) | 2024.01.11 |