프로세스(동기화) Flashcards

1
Q

세마포어

A

[리드] 동시성 제어
[정의] 다중 프로세스 환경에서 P,V연산을 통해 공유자원에 대한 접근 제한과 동기화 기술
[특징] 동시성 지원, 정적 변수 사용
[동작원리] (P마이웨이), (V플씨)
1. 초기화 변수 : 자원수 만큼의 정적 변수 초기화
2. P연산 : wait (마이너스 1)
P(S)
if (S > 0) {
S = S-1 // 할당
} else {
wait(); // 현재 프로세스 대기
}
3. V연산 : signal (플러스 1)
V(S)
if (대기중 프로세스 > 0) {
wakeup(); // 대기중 프로세스 1개 진행
} else {
S = S+1 // 해제
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

계수형 세마포어

A

[정의] 운영체제나 프로그램 내 둘 이상의 공유자원에 대한 접근을 제어하기 위해 사용되는 알고리즘
[메커니즘]
1. 공유 자원수와 같은 값으로 초기화
2. P연산 호출시 마다 세마포어 1씩 감소 (자원 할당)
3. V연산 호출시마다 세마포어 1씩 증가 (자원 해제)
4. 세마포어가 0까지 줄어들었을때 스레드가 P 호출시 Waiting
[구성요소]
- 계수 범위 : 음수(-N개의 스레드 큐), 0 (wait 연산이 큐에 추가), 양수(큐 추가 없음)
- 연산자 : P연산, V연산, Wait, Signal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

모니터

A

[정의] 프로세스 동기화 수행시 세마모터의 단점인 타이밍 문제 해결을 위해 프로그래밍 언어 수준에서 상호배제를 구현하여 동기화하는 기법
[특징] 타이밍 문제 해결, 언어수준 편의성 제공, wait/notify 연산
[동작원리] (배임조)
- 배타 동기큐(synchronized) → 임계구역 (exit)→ (wait, notify) → 조건 동기큐 (notify, notifyAll)
* 모니터는 임계구역 보호와 동기화를 위해 내부적으로 상태 변수를 사용

[비교] 세마포어 vs 모니터
- 주체 : OS, 개발자 주체 동시성 지원 / 프로그래밍 언어 수준 동시성
- 상호 작용 : 모니터에 이론적 기반 제공 / 세마포어 타이밍 문제 해결
- 특징 : s 타입에 따라 이진/계수 세마포어 / 하나의 프로세스만 모니터 내부 수행
- 연산 : P,V연산 / wait, notify 연산
- 공통정 : 동시성 지원을 위한 조정 기능 수행

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

스핀락

A

[리드] 문맥교환 최소화
[정의] 동기화 위해 다른 프로세스가 lock 소유시 lock이 반환 될때까지 Busy Wating을 수행 기법
[특징] 짧은 Critical Section에 유용, Busy Wating, SMP 시스템에 유용
[프로세스]
1. Thread 임계 구역 접근
2. 임계 영역 Lock 변수 S 검사
3. S=0 이면 Lock 설정후 임계영역 진입 사용, S!=0이면 Busy waiting
4. 임계 영역 사용 완료시 Lock 해제후 종료

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

우선순위 역전

A

[리드] 실시간 스케줄링 이슈
[정의] 공유자원 동기화시 높은 우선순위 프로세스가 낮은 우선순위 프로세스로 인해 수행이 지원되는 현상
[발생조건] 우선순위 기반 스케쥴링(선점), 임계영역 기반 동기화(P,V연산)
* 세마포어와 같은 임계영역을 활용한 멀티 프로세스 자원 동기화 시 발생 가능
[발생]
- 우선 순위가 높은 Task가 임계영역 대기중 낮은 Task가 세마포어 사용없이 먼저 실행되는 CASE
[해결]
1. 우선순위 상속(Task) : 자원 선점한 낮은 Task 우선 순위를 동일 자원 요구 높은 Task 우선 순위로 상승
2. 우선순위 올림(자원) : Task가 특정 우선순위 속성을 가진 자원 소유시 지정된 우선 순위로 상승

How well did you know this?
1
Not at all
2
3
4
5
Perfectly