19. Kernel Preemption 19.1 Mutual Exclusion — 상호 배제 컴퓨터 시스템을 얘기할 때 가장 중요한 파트 중 하나가 상호 배제 문제이다. 시스템이 정상적으로 작동하기 위해서는 이 상호 배제 개념은 반드시 필요하다. 설명을 진행하기 전, 먼저 X++이라는 연산이 정확하게 어떻게 이루어져 있는지부터 이해하고 가자. 우리가 보통 프로그래밍 언어를 사용할 때 X++과 같은 단항연산자를 사용하면, 하나의 명령만으로 덧셈이 정상적으로 이루어지는 것 같지만 실제로 동작하는 기계 입장에서 이 단항연산 과정은 3단계로 나누어진다. 그 과정은 아래와 같다. X를 저장소로부터 읽어서 CPU 레지스터로 읽어들인다. CPU 안에서 ALU 연산을 진행한다. CPU 로부터 나온 결과를 다시 저장소에..