← 질문 목록
#250깊이 0

동기화 문제를 하드웨어적으로 어떻게 해결하는가?

운영체제심화동시성

원자적 명령어로 처리한다. CPU가 명령어를 실행하는 동안 다른 프로세스가 개입하지 못하게 막아 메모리 접근을 보장하는 방식이다.

구분방식
하드웨어 수준Test-and-Set, Compare-and-Swap (CAS)
명령어 수준인터럽트 비활성화. 단일 코어에서만 유효하다

Test-and-Set은 메모리 값의 현재 상태를 읽고 새로운 값을 쓰는 작업을 한 번에 처리한다. 중간에 컨텍스트 스위칭이 발생하지 않아 데이터 정합성을 지킨다.

CAS는 지금 값이 기대한 값과 같을 때만 새 값으로 바꾼다. 다르면 누가 먼저 손댔다는 뜻이라 바꾸지 않고 실패를 알린다. 락-프리(Lock-free) 알고리즘의 핵심 기반이 된다.

인터럽트 비활성화는 간단하지만 멀티코어 환경에서는 모든 CPU의 인터럽트를 동시에 끄는 비용이 너무 커서 실무적으로 쓰이지 않는다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

동기화 문제를 하드웨어적으로 어떻게 해결하는가?