mutual exclusion

    [전공생이 설명하는 OS] 동기화 - (2) 상호배제 전략 (Mutex)

    [전공생이 설명하는 OS] 동기화 - (2) 상호배제 전략 (Mutex)

    지난 포스팅(동기화 - (1) 용어 및 개념정리)에서 정리했듯이, 동기화는 Critical Section 에 대한 접근 제어를 적절하게 잘 한다는 것이고, 구체적으로 MutualExclusion / Progress / BoundedWaiting 3가지의 requirement를 만족시켜야한다고 언급했다. 이런 특성을 만족시키는 동기화 전략은 (1)상호배제, (2)조건부 동기화 전략이 있는데, 이번 포스팅에서는 상호배제의 측면에서 동기화 기법을 살펴보도록 한다. 상호배제 차원의 동기화 전략은 SW의 방식과 HW의 방식으로 나눌 수 있다. 1. SW approach 크게 1) Peterson의 알고리즘, 2) Interrupt 차단방식 두가지를 예로 들 수 있다. 결론부터 이야기하자면, SW 방식의 동기화 전..

    [전공생이 설명하는 OS] 동기화 - (1) 용어 및 개념정리

    동기화 문제가 왜 발생하는지에 대해서는 [전공생이 설명하는 OS] 쓰레드(Thread)와 동기화 문제 의 마지막 단락을 참고해주세요. [동기화 관련 용어] (1) Race Condition : 멀티쓰레드 또는 멀티 프로세스 환경에서 공유자원에 동시에 접근할 때, 의도치 않은 결과를 낳는 것을 race condition이라고 하고 다음과 같은 특성을 갖는다. 근본적으로는 [cpu 스케줄링 + 캐시(레지스터 포함) + non-atomic instruction] 때문에 발생하며, 이를 방지하기 위해서는 공유자원에 대한 동기화가 필요하다. Non-Deterministic : 의도하지 않은 결과를 내는데, 결과를 예측할 수 없다. Reproducible : 재현 가능하다. (2) Critical Section :..