-
OS: Semaphoreos 운영체제 2024. 5. 5. 19:44
Semaphore:
세마포어의 작동 원리는 상호 배제 알고리즘(Mutual Exclusion Algorithm)에 기반한다.
구성:
세마포어 변수 S, P(wait) 연산, V(signal) 연산으로 구성되어 있다.
세마포어 변수 S는 P와 V라는 명령에 의해서만 접근할 수 있다.
s를 수정하는 연산은 모두 원자성을 만족해야한다.
P는 임계 구역에 들어가기 전에 수행되고, V는 임계 구역에서 나올 때 수행된다.
- 이진형 세마포어(binary semaphore): 0 또는 1을 가진다. 즉, 1개의 공유 자원을 상호배제하며 이를 이용해 계수 세마포어를 구현할 수도 있다.
- 계수형 세마포어(counting semaphore): 0과 양의 정수값을 가질 수 있따. 여러개의 공유 자원을 상호배제할 수 있다.
적용:
s변수는 CS에 진입이 가능한 프로세스의 수를 뜻함.
1. 프로세스는 CS에 진입 전 s-=1을 수행한다.
2. s>=0이면 CS에 진입 아니면 wait()한다.
3. CS에서 나오며 s+=1을 하고 s<=0이면 wait()인 프로세스가 있다는 뜻이니 wakeup시켜 CS로 진입할 수 있게 한다.
'os 운영체제' 카테고리의 다른 글
OS: 프로세스 동기화(Process Synchronization) (0) 2024.04.15 os: 프로그램 실행 시 메모리의 구조 (0) 2024.04.14 OS: Thread(cooperating system) (0) 2024.04.08 OS: RPC (0) 2024.04.08 OS: 프로세스, IPC, fork/exec (0) 2024.04.03