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