event, interrupt :event가 발생하면 현재 구동적인 작업을 중단하고 event 처리
handler : 이벤트를 어떻게 처리 할지에 대한 것
context : 현재 무엇을 어디까지 했는지에 대한 정보
소프트웨어(뮤텍스 사용가능), 하드웨어(작동되지 않음)
(하드웨어 관점)
A B
a = 5 a = 4
b = a + c b = a * 2
c = 3 c = a + b
B 실행 후 A 그리고 다시 B 실행 b = 10
B만 실행 했을 때 b = 8이 되어야 하는데 b = 10 이라는 결과값 발생 => Race Condition
이런 경우 Context Switching
이 필요!
각 테스크가 생성될 때 마다 자신만의 Context 객체 생성되어 위치를 기억 후 작동
Context는 IP 레지스터에 내용이 저장됨 레지스터 <--> 메모리 간의 입출력이 너무 많이 발생
단순작업(CPU의 소모가 적은 경우) Spinlock
복잡한작업 Mutex