하드웨어 인터럽트는 CPU의 외부에서 어떤 일이 발생한 것을 전기적인 신호로 CPU에게 통지하는 것입니다. CPU가 하드웨어 인터럽트를 감지하면 하던일을 멈추고 그 인터럽트가 발생했을때 해야할 일이 적혀있는 곳(보통 인터럽트 핸들러라고 하는 곳) 으로 가서 그 일을 하고 원래 하던 작업으로 돌아옵니다.
소프트웨어 인터럽트는 외부에서 전기적인 신호가 도착한 것은 아니지만 CPU가 실행중인 작업이 "어떤 조건"을 만족시켰을 때, 하드웨어 인터럽트처럼 하던 일을 멈추고 소프트웨어 인터럽트 핸들러(혹은 예외 핸들러)로 가서 처리를 해 주고 원래 하던 작업으로 돌아옵니다.
소프트웨어 인터럽트의 "어떤 조건"이라는게 어떤 게 있으며 왜 그런게 필요한 지 이해하는 게 중요할 거 같네요.
일단 전 로레벨 전문가는 아니고 나누는 이유는 단지
일단 전 로레벨 전문가는 아니고
나누는 이유는 단지 원천이 달라서인걸로 알고 있습니다
그리고 하드웨어 인터럽트를 먼저 처리하는 이유는 그렇게 작동하게 os에서 되어있고,
그래야만 os가 작동이 가능해서 그런걸로 알고있습니다
얼마전 롤 키 매핑 같은 프로그램을 만들어봤는데 이게 키보드 하드웨어 인터럽트에만 반응을 하더군요
하드웨어 인터럽트는 CPU의 외부에서 어떤 일이
하드웨어 인터럽트는 CPU의 외부에서 어떤 일이 발생한 것을 전기적인 신호로 CPU에게 통지하는 것입니다. CPU가 하드웨어 인터럽트를 감지하면 하던일을 멈추고 그 인터럽트가 발생했을때 해야할 일이 적혀있는 곳(보통 인터럽트 핸들러라고 하는 곳) 으로 가서 그 일을 하고 원래 하던 작업으로 돌아옵니다.
소프트웨어 인터럽트는 외부에서 전기적인 신호가 도착한 것은 아니지만 CPU가 실행중인 작업이 "어떤 조건"을 만족시켰을 때, 하드웨어 인터럽트처럼 하던 일을 멈추고 소프트웨어 인터럽트 핸들러(혹은 예외 핸들러)로 가서 처리를 해 주고 원래 하던 작업으로 돌아옵니다.
소프트웨어 인터럽트의 "어떤 조건"이라는게 어떤 게 있으며 왜 그런게 필요한 지 이해하는 게 중요할 거 같네요.
생산적인 댓글을 달자