OS와 하드웨어
실시간성이 요구되는 시스템에서, 인터럽트가 발생하고 나서 핸들러가 동작하기 시작할 때까지의 시간(인터럽트 지연)을 크게 만드는 요인으로 가장 적절한 것은 무엇입니까?
- A인터럽트 핸들러 안의 처리를 가능한 한 짧게 하고 있는 것
- B우선순위가 높은 인터럽트가 낮은 인터럽트를 중단할 수 있게 하고 있는 것
- C커널 안에 인터럽트를 금지한 채 긴 처리를 하는 구간이 있는 것
정답과 해설 보기
정답: C. 커널 안에 인터럽트를 금지한 채 긴 처리를 하는 구간이 있는 것
인터럽트가 금지되어 있는 동안에는 아무리 급한 인터럽트라도 받아들일 수 없으므로, 최악의 인터럽트 지연은 가장 긴 인터럽트 금지 구간의 길이로 결정됩니다. 실시간성을 확보하려면 인터럽트를 금지하는 구간을 짧게 하고, 시간이 걸리는 처리는 인터럽트를 허용한 상태에서 수행합니다. 핸들러를 짧게 하는 것이나 우선순위가 높은 인터럽트가 낮은 인터럽트를 중단할 수 있게 하는 것(다중 인터럽트)은 지연을 줄이는 방법이지 키우는 요인이 아닙니다.
- A. 핸들러를 짧게 하는 것은 지연을 줄이는 방법입니다.
- B. 우선순위에 의한 중단은 급한 인터럽트의 지연을 줄입니다.
- C. 올바릅니다. 긴 인터럽트 금지 구간이 최악의 지연을 결정합니다.