인터럽트 핸들러를 사용하면 운영 체제가
CPU로 데이터를 전달할 수 있습니다.
일반적으로
매개변수가 없는 정적 함수는 InstallIntHdlr(운영
체제에 따라 다름)과 같은 운영 체제 조작으로 주소를 전달하여 추가됩니다.
정적 함수는 특수 싱글톤 오브젝트 또는 패키지 내에 정의된
함수입니다. 이 조작은 레지스터에 도달하기 위해 컴파일러
특정 유틸리티를 사용해야 합니다. 결과적으로, 인터럽트
명령어로부터의 리턴을 실행 및 리턴해야 합니다.
이 태스크 정보
다음과 같은 방법으로
인터럽트 핸들러에서 CPU로 데이터를 전달할 수
있습니다(인터럽트 핸들러에서 필요한 것으로 가정).
- GEN() 매크로를
사용하여 이벤트를 생성하면 운영 체제를 지나
다른 스레드에 있는 반응적 오브젝트로 이동합니다.
- 읽기/쓰기 전환 잠금이 있는 만남 오브젝트를
사용합니다. 인터럽트 핸들러는 잠금이 쓰기 상태인지 여부를
검사한 다음 데이터를 업데이트하고 잠금을 읽기 상태로 지정합니다.
리더(다른 스레드에 있음)는 잠금을 주기적으로 검사하며
읽기 상태일 때만 읽습니다. 해당 상태에서는 리더가 데이터를
읽고 잠금을 쓰기 상태로 업데이트합니다. 이 업데이트는
큐 구조로 쉽게 확장될 수 있습니다.
- IBM® Rational® Rhapsody®
외부에서 수동으로 인터럽트 핸들러를 작성하고 대상 스레드에 대한 운영 체제 메시지 큐로 전송합니다.
일반적으로 운영 체제가 인터럽트 핸들러를 직접
지원하지 않으면 현재 핸들러를 함수에 저장하고
인터럽트 벡터 테이블 내 적합한 위치에 함수 주소를
기록합니다. 인터럽트가 꺼지면 새 함수가 이전
인터럽트 핸들러를 바꾸거나(완료 시 리턴함을
의미) 인터럽트(원본 호출)에 연결됩니다. 어떠한
경우라도 인터럽트 핸들러가 해체되면 벡터
테이블의 벡터를 원래 주소로 바꿉니다.