해결된 질문
작성
·
309
1
소프트웨어 인터럽트는 프로세스 오류 등으로 시스템 콜이 호출할 때 인터럽트가 발생한다고 설명해주셨는데, 소프트웨어 인터럽트는 항상 오류로 발생하는 것인가요?
CPU는 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행한다면, CPU에 발생하는 내용은 모두 인터럽트로 이뤄지는 것인가요?
답변 1
2
소프트웨어 인터럽트는 프로세스 오류 등으로 시스템 콜이 호출할 때 인터럽트가 발생한다고 설명해주셨는데, 소프트웨어 인터럽트는 항상 오류로 발생하는 것인가요?
>> 아뇨 오류 말고도 소프트웨어를 기반으로 발생합니다. 즉 프로그램을 실행하다 어떤 프로그램을 실행했을 때도 인터럽트는 발생할 수 있습니다. 인터럽트는 CPU가 잠시 정지된 상태를 말하며 이를 통해 어떠한 프로세스가 정지될 수 있습니다.
소프트 웨어 인터럽트의 대표적인 예로는 프린트 드라이버를 통한 IO요청인데요. 쉽게 말해 우리가 프린터로 어떤 것을 인쇄할 때 잠시 컴퓨터가 렉걸리는 현상을 경험해보신 적이 있으실겁니다. 이는 프로그램이 IO요청을 했고 그로인해 인터럽트가 발생이 되어 잠시 CPU가 정지되며 해당 드라이버에 관한 활동을 하기 때문에 발생이 되는 것이죠.
CPU는 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행한다면, CPU에 발생하는 내용은 모두 인터럽트로 이뤄지는 것인가요?
>> 음.. 인터럽트는 단순히 정지되는 상황인 것입니다.
CPU는 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행
보다는
CPU는 메모리에 존재하는 명령어를 해석해서 실행할 뿐이며 A라는 프로그램을 실행하다 다른 B라는 프로그램을 실행할 때 인터럽트에 의해 A에 대한 CPU활동이 잠시 멈추고 B에 대한 프로그램이 실행된다
가 더 맞는 설명인 거 같습니다.
인터럽트에 의해 어떤 프로그램을 시작하면서 어떤 프로그램을 종료하거나 정지할 수 있는 것으로 이해해주시면 됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.