기술 면접/운영체제
인터럽트란?
daehee719
2024. 5. 9. 01:07
728x90
인터럽트란 CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능이다.
대부분 컴퓨터는 한개의 CPU를 사용하므로 "한 순간"에는 하나의 일 밖에 처리할 수 없다.
때문에 우선순위가 더 높은 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다.
그것이 인터럽트이다.
1. 인터럽트 처리 방식
- 인터럽트 발생
- 하드웨어나 소프트웨어에서 인터럽트가 발생한다.
- 예를 들어, 하드웨어 장치에서 데이터 전송 완료, 타이머 만료, 키보드 입력 등과 같은 이벤트가 발생할 수 있다.
- 현재 작업 중단
- 프로세서는 현재 수행 중인 작업을 일시 중단하고, 실행 중인 프로그램의 상태를 저장한다.
- 이는 중단된 작업을 나중에 다시 시작할 수 있도록 있게 다.
- 인터럽트 서비스 루틴 실행
- 인터럽트 발생 시, 해당 인터럽트에 대한 처리를 담당하는 인터럽트 서비스 루틴(Interrupt Service Routine, ISR)이 실행됩니다.
- 이 루틴은 인터럽트를 발생시킨 장치 또는 소프트웨어 이벤트에 따라 다르게 작동한다.
- 인터럽트 처리
- ISR은 해당 인터럽트에 대한 필요한 작업을 수행한다.
- 이는 주로 인터럽트 발생 이유에 따라 다르며, 예를 들어 장치에서 데이터를 읽어오거나, 시스템의 상태를 업데이트하거나, 특정 작업을 수행하는 등 다양한 작업을 포함할 수 있습니다.
- 현재 작업 재개
- 인터럽트 서비스 루틴이 실행을 마치면, 프로세서는 원래 실행 중인 프로세스나 작업으로 복귀한다.
- 이전에 저장한 프로그램 상태를 복원하여 중단된 작업을 계속한다.
2. Polling 방식
폴링(Polling)은 컴퓨터 시스템에서 외부 이벤트를 감지하기 위한 기술 중 하나로, 주기적으로 상태를 확인하여 이벤트가 발생했는지 여부를 확인하는 방법이다.
폴링은 주로 입출력 장치와의 상호 작용에서 사용된다.
- 장치 상태 확인
- 폴링을 사용하는 시스템은 주기적으로 특정 장치의 상태를 확인한다
- 이는 주로 특정 레지스터 값을 읽거나, 특정 비트를 확인하여 수행한다.
- 상태 확인 및 이벤트 처리
- 장치의 상태가 변경되었는지 여부를 확인한다.
- 상태가 변경되었다면, 해당 이벤트에 대한 처리를 수행한다.
- 예를 들어, 장치에서 데이터가 도착했다는 것을 감지하고, 데이터를 읽어오는 등의 작업을 수행할 수 있다.
- 주기적인 반복
- 폴링 방식은 지속적으로 장치의 상태를 확인하고 이벤트를 처리하는 과정을 반복한다.
- 이는 장치의 상태가 변경되거나 이벤트가 발생할 때까지 계속한다.
- HW / SW 인터럽트에 대해 설명해 주세요.
3. HW / SW 인터럽트
- 하드웨어 인터럽트:
- 하드웨어 인터럽트는 주로 하드웨어 장치에서 발생하는 이벤트로, 외부에서 발생한 신호에 의해 컴퓨터 시스템의 CPU에 전달된다.
- 이러한 인터럽트는 하드웨어 장치의 상태 변화를 나타내며, 예를 들어 데이터 전송 완료, 타이머 만료, 키보드 입력 등이 해당한다.
- 하드웨어 인터럽트는 주로 입출력 장치와의 상호 작용에 사용되며, 장치의 상태 변화를 즉시 처리할 수 있도록 한.
- 소프트웨어 인터럽트:
- 소프트웨어 인터럽트는 주로 프로그램 내에서 발생하는 이벤트로, CPU가 현재 실행 중인 명령어에 의해 생성된다.
- 예를 들어, 프로그램이 시스템 콜을 호출하거나 예외 상황(예: 나누기 오류)이 발생할 때 소프트웨어 인터럽트가 발생한다.
- 소프트웨어 인터럽트는 주로 프로세스 관리, 예외 처리, 시스템 호출 등과 관련된 작업에 사용된다.
4. 동시에 두 개 이상의 인터럽트가 발생할 때 처리방법
- 인터럽트 우선 순위:
- 각 인터럽트에는 우선 순위가 할당되어 있고, 더 높은 우선 순위를 갖는 인터럽트가 먼저 처리된다.
- 이는 하드웨어나 소프트웨어에서 지정된 방식으로 우선 순위가 관리된다.
- 따라서 우선 순위가 높은 인터럽트가 먼저 처리되고, 그 후에 낮은 우선 순위의 인터럽트가 처리된다.
- 인터럽트 마스킹:
- 시스템은 한 번에 하나의 인터럽트만 처리할 수 있기 때문에, 다중 인터럽트가 발생하면 다른 인터럽트를 일시적으로 마스크하여 처리 중인 인터럽트를 완료한 후에 처리할 수 있다.
- 이를 통해 다중 인터럽트에 대한 우선 순위나 순서를 관리할 수 있다.
- 인터럽트 대기 큐:
- 시스템은 인터럽트를 대기하는 큐를 유지하여 동시에 발생한 인터럽트를 처리하는 방식이다.
- 인터럽트가 발생하면 해당 인터럽트를 큐에 추가하고, 우선 순위에 따라 큐에서 처리된다.
- 이 방식은 다중 인터럽트를 효율적으로 처리할 수 있도록 한다.
728x90