X

태스크(프로세스) 동기화 방안

I. 태스크 동기화의 필요성

  • 공유 데이터 병행 접근 시 데이터 불일치를 초래하므로 데이터 일관성 유지 위해 태스크 동기화 필요

 

II. 태스크 동기화 방안

구분 방안 설명
H/W
측면
test and set – “lock” 공유 Boolean 변수
compare and swap – value==expected 경우 swap
Semaphore – P(), V() 연산 기반 원자적 수행
Bus-Locking – ARMv6 이벤트 명령 대기
Spin-Lock – busy waiting 통해 lock 획득
S/W
측면
Peterson 알고리즘 – turn, flag 변수 이용
Dekker 알고리즘 – flag, turn 공유 변수 기반
Bakery 알고리즘 – 낮은 번호 순서로 실행
Timestamp Ordering – 타임스탬프 기반 순서 결정
Monitor – 고급 언어 수준 동기화 수단
  • 위 동기화 방식 외 트랜잭션 메모리, OpenMP, 함수형 언어(얼랑, 스칼라) 등의 방식 존재

 

III. 태스크 동기화 시 문제점 및 해결방안

문제점 해결 방안
교착상태(Deadlock) – 예방 및 회피, 발견 시 회복
우선순위 역전 현상 – 우선순위 상속 및 올림 기법
무한 대기 (Starvation) – 프로세스 Aging 기법 적용

 

Categories: CA/운영체제
도리: