프로그래밍을 하다보면 이벤트 드리븐 이라는 것을 많이 접하게 됩니다.
UI에서 사용자가 버튼을 누르는 행위 등을 말하거나,
아니면 어떤일을 시키고 나서 다른것을 하다가 그 일이 완료되었다는 신호(인터럽트) 등을 말하는 것으로 이해하고 있는데요,
저는 컴퓨터 아키텍쳐 low level로 가면 이게 결국 busy waiting이 될 수 밖에 없을 것 같습니다.
결국엔 내가 변수를 가지고 있으면서 그 변수를 "짧은 주기"로 체크하고, 외부에서는 그 변수의 값을 변경함으로써 이벤트가 구현될 수 밖에 없을 것 같다는게 저의 생각입니다. (의견이 아니라 그렇게 이해하고 있다는 말입니다)
아니면 인터럽트를 보더라도 내가 인터럽트 테이블을 주기적으로 체크해 보고, 그 인터럽트 값을 누군가가 변경해야지만 그제서야 인터럽트가 발생했구나를 알수 있을거 같구요...
이렇게 되면 결국은 busy waiting이 될 수 밖에 없고 cpu를 점유하게 될거 같은데,
어떻게 이벤트 드리븐 아키텍쳐가 cpu 점유없이 알림을 주고 받는지 정확하게 이해가 되지 않습니다.