더북(TheBook)

예를 들어 다음과 같이 C 언어 구문이 있다고 합시다.

b = a * 2;

이때 이를 기계어로 실행하면 다음과 같이 작동합니다.

1. ...
2. r1 = a
3. r2 = r1 * 2
4. b = r2
5. ...

Tip

여기서 r1, r2는 레지스터고 a, b는 메모리 공간을 가리킵니다.

 

4를 실행한 후 5를 실행하기 전에 무조건 컨텍스트 스위치가 실행된다면, 이 C 언어 구문은 항상 정확한 결과가 나옵니다. 그러나 불행히도 우리는 컴퓨터가 1~5 중 어디까지 실행한 후 컨텍스트 스위치를 일으킬지 예상할 수가 없습니다. 그렇다면 이것이 어떤 문제를 일으키는지 살펴봅시다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.