- 인터럽트 핸들러란 무엇인가?
- 인터럽트 핸들러는 특정 이벤트가 발생했을 때 CPU가 그 이벤트를 처리하기 위해 실행하는 코드입니다. 하드웨어 또는 소프트웨어에서 인터럽트를 발생시키면, CPU는 현재 작업을 멈추고 해당 인터럽트를 처리한 후 원래 작업으로 복귀합니다.
- 트랩과 인터럽트의 차이는 무엇인가?
- 트랩: 주로 소프트웨어적으로 발생하며, 예외 상황이나 시스템 호출을 위해 의도적으로 발생되는 인터럽트.
- 인터럽트: 외부 하드웨어 신호에 의해 발생하며, CPU의 외부에서 발생한 이벤트(예: 키보드 입력)에 대응합니다.
- 벡터 테이블이란 무엇인가?
- 벡터 테이블은 특정 인터럽트나 예외 발생 시 실행할 처리 루틴(인터럽트 핸들러)의 주소를 저장한 테이블입니다. CPU는 인터럽트 발생 시 벡터 테이블을 참조해 알맞은 핸들러로 이동합니다.
- 일부러 인터럽트를 발생시켜야 하는 경우는 언제인가?
- 주로 테스트와 디버깅 목적 또는 소프트웨어 특정 조건을 발생시키기 위해 사용됩니다. 예를 들어, 메모리 접근 오류 테스트나 디바이스 드라이버의 동작을 테스트할 때 의도적으로 발생시킵니다.
- 볼라테일 키워드란?
volatile 키워드는 컴파일러가 변수의 값을 매번 메모리에서 읽도록 하여, 최적화에 의해 캐시되지 않도록 하는 역할을 합니다. 하드웨어 레지스터나 멀티스레드 환경에서 자주 사용됩니다.