3장. RHEL에서 실시간 하드웨어 중단
실시간 시스템은 정기적으로 유지 관리 및 시스템 스케줄링 결정을 수행하는 중단 "시간제" 인터럽트를 포함하여 운영 과정에서 많은 인터럽트를 수신합니다. 또한 시스템은 NMI(Nonmaskable Interrupt) 및 SMI(System Management Interrupt)와 같은 특별한 종류의 인터럽트를 수신할 수 있습니다. 하드웨어 인터럽트는 장치에 의해 사용되어, 주의가 필요한 시스템의 물리적 상태의 변경을 나타냅니다. 예를 들어 하드 디스크 신호는 일련의 데이터 블록을 읽거나 네트워크 장치가 네트워크 패킷을 포함하는 버퍼를 처리했음을 나타냅니다.
인터럽트가 실시간으로 발생하면 시스템은 활성 프로그램을 중지하고 인터럽트 처리기를 실행합니다.
실시간으로 하드웨어 인터럽트는 인터럽트 번호에 의해 참조됩니다. 이러한 수치는 인터럽트를 생성한 하드웨어에 다시 매핑됩니다. 이를 통해 시스템이 인터럽트를 생성한 장치와 해당 장치가 발생한 시기를 모니터링할 수 있습니다. 인터럽트가 실시간으로 발생하면 시스템은 활성 프로그램을 중지하고 인터럽트 처리기를 실행합니다. 처리기는 실행 중인 다른 프로그램 및 시스템 활동을 선점합니다. 이렇게 하면 전체 시스템의 속도가 느려지고 대기 시간이 발생할 수 있습니다.
RHEL for Real Time은 성능을 개선하고 대기 시간을 줄이기 위해 인터럽트를 처리하는 방식을 수정합니다. cat /proc/interrupts
명령을 사용하면 출력을 출력하여 발생한 하드웨어 인터럽트 유형, 수신된 인터럽트 수, 인터럽트의 대상 CPU, 인터럽트를 생성하는 장치를 볼 수 있습니다.
3.1. 레벨 서명 인터럽트
실시간으로 레벨 서명 인터럽트는 부품 전환을 제공하는 전용 인터럽트 라인을 사용합니다. 장치 컨트롤러는 인터럽트 요청 라인에서 신호를 어설션하여 인터럽트를 발생시킵니다. 인터럽트 라인은 바이너리 1 또는 바이너리 0을 나타내기 위해 두 개의 방울 중 하나를 보냅니다.
인터럽트 신호가 행에 의해 전송되면 CPU가 재설정될 때까지 해당 상태로 유지됩니다. CPU는 상태 저장을 수행하고 인터럽트를 캡처한 다음 인터럽트 처리기를 디스패치합니다. 인터럽트 처리기는 인터럽트의 원인을 결정하고 필요한 서비스를 수행하여 인터럽트를 지우고 장치의 상태를 복원합니다. 수준 서명 인터럽트는 보다 안정적이고 구현이 복잡하지만 여러 장치를 지원합니다.