atomic operation
Atomic Operation
직역하자면 ‘원자적 연산’이란 뜻을 가진다
마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며
해당 작업이 ‘중간’에 다른 작업에 의해 ‘간섭’받지 않고,
연속적으로 실행된다는 것을 표현한다
(그렇기에 완전히 실행되거나, 실행되지 않는 2가지 형태를 지닌다)
(이를 ‘원자성’이라고도 한다)
OS에서의 의미는
다른 프로세스에 종속되거나, 중단되지 않으면서 작업이 실행되어야 하는 경우
‘원자적’ 작업을 사용한다
(멀티 프로세스, 멀티 스레드 처럼 ‘병렬 처리’ 환경에서
동기화 도구를 통해 ‘원자 연산’을 구현하여 사용한다)
‘원자 연산’을 통하여 데이터의 일관성을 유지하며,
경합 상태(Race Condition)을 회피할 수 있음
‘원자 연산’을 사용하는 경우, 추가적으로 인식해야 할 점
-
- 동기화
- 동시적 접근을 막아 ‘동기화’를 유지하지만,
이는 다른 작업을 ‘대기’시키는 내용이 포함되기에
시스템의 전체적인 처리량을 감소시켜 ‘성능’이 저하될 수 있다는 점을
인식하자
- 동기화
-
- 캐시 일관성 문제
- 기본적으로 ‘캐시 일관성’ 문제에 대한 해결책 중 하나이다
캐시의 원본이 변경된 경우, 원본에 대한 수정 후 추가적인 동기화 작업이
필요할 수 있다
- 캐시 일관성 문제
OS에서도 여러가지 이유로 사용되며,
가장 중요하게 연관된 것은 ‘데이터 일관성’과 ‘동시성 관리’ 이다
-
- 동시성의 제어
- 임계 영역에 접근할 때, 하나의 작업만 접근하게 하여
데이터 일관성과 상호 배제를 보장
- 동시성의 제어
-
- 경쟁 조건 방지
- 원자 연산을 통해 예상치 못한 결과를 막고 일관된 결과를 유지
- 경쟁 조건 방지
-
- 데이터 무결성
- 여러 데이터가 접근하는 것을 방지해, 데이터의 변조나 손상을 막음
- 데이터 무결성
댓글남기기