인터럽트
인터럽트는 현재 프로세스를 중단시키는 신호로, 프로세서에 전송됩니다. 하드웨어 장치나 소프트웨어 프로그램이 인터럽트를 생성할 수 있습니다.
하드웨어 인터럽트는 입력 장치인 마우스나 키보드에 의해 생성되는 경우가 많습니다. 예를 들어 워드 프로세서를 사용하면서 키를 누르면 프로그램은 입력을 즉시 처리해야 합니다. "hello"를 입력하면 5개의 인터럽트 요청이 생성되므로 프로그램이 입력한 문자를 표시할 수 있습니다. 마찬가지로 마우스 버튼을 클릭하거나 터치스크린을 누를 때마다 장치에 인터럽트 신호를 보냅니다.
소프트웨어 인터럽트는 프로그램이 실행되는 동안 발생하는 오류와 예외를 처리하는 데 사용됩니다. 예를 들어 프로그램에서 변수가 유효한 숫자일 것으로 예상했지만 값이 null이면 프로그램이 중단되지 않도록 인터럽트가 생성될 수 있습니다. 이를 통해 프로그램은 실행을 계속하기 전에 방향을 바꾸어 오류를 처리할 수 있습니다. 마찬가지로 인터럽트를 사용해 무한 루프를 중단할 수도 있습니다. 무한 루프는 메모리 누수를 일으키거나 프로그램이 응답하지 않게 만들 수 있습니다.
하드웨어 인터럽트와 소프트웨어 인터럽트는 모두 인터럽트 처리기(interrupt handler)가 처리하며, 이를 인터럽트 서비스 루틴(interrupt service routine) 또는 ISR이라고도 합니다. 프로그램이 인터럽트 요청을 받으면 ISR이 이벤트를 처리하고 프로그램이 다시 실행됩니다. 인터럽트는 대개 키 입력이나 마우스 클릭처럼 매우 짧게 발생하므로 1밀리초 이내에 처리되는 경우가 많습니다.
지식 테스트하기