인터럽트: 두 판 사이의 차이

잔글편집 요약 없음
(자동 찾아 바꾸기: 「할수」(을)를 「할 수」(으)로)
3번째 줄: 3번째 줄:


== 설명 ==
== 설명 ==
대부분의 컴퓨터는 한 개의 [[CPU]]를 사용하고 있기에 한 순간에는 하나의 일 밖에 처리할수 없기 때문에<ref>대부분의 컴퓨터가 동시에 여러 가지 일을 동시에 처리하는 것 같지만 사실 매우 빠른 속도로 시간을 매우 잘게 쪼개고 일을 나누어서 처리한다. 이런 방식을 time-sharing(시-분할) 방식이라고 한다.</ref> 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다.
대부분의 컴퓨터는 한 개의 [[CPU]]를 사용하고 있기에 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에<ref>대부분의 컴퓨터가 동시에 여러 가지 일을 동시에 처리하는 것 같지만 사실 매우 빠른 속도로 시간을 매우 잘게 쪼개고 일을 나누어서 처리한다. 이런 방식을 time-sharing(시-분할) 방식이라고 한다.</ref> 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다.


예를 들면, 키보드의 키를 하나 누르면, 눌려진 키 코드 값이 키보드 버퍼에 입력된 후 CPU에 인터럽트가 걸린다. 그럼 현재 처리하던 작업에 대한 정보를 수집하여 저장한 뒤에 인터럽트 서비스 루틴(Interrupt Service Routine)을 수행한다.(이 경우에는 키보드 버퍼에 있는 키 코드 값을 가져가는 일을 한다.) 이렇게 인터럽트 처리를 마친 후에는 다시 이전에 처리하던 작업으로 돌아간다.
예를 들면, 키보드의 키를 하나 누르면, 눌려진 키 코드 값이 키보드 버퍼에 입력된 후 CPU에 인터럽트가 걸린다. 그럼 현재 처리하던 작업에 대한 정보를 수집하여 저장한 뒤에 인터럽트 서비스 루틴(Interrupt Service Routine)을 수행한다.(이 경우에는 키보드 버퍼에 있는 키 코드 값을 가져가는 일을 한다.) 이렇게 인터럽트 처리를 마친 후에는 다시 이전에 처리하던 작업으로 돌아간다.

2019년 10월 6일 (일) 02:26 판

개요

인터럽트CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능이다.

설명

대부분의 컴퓨터는 한 개의 CPU를 사용하고 있기에 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에[1] 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다.

예를 들면, 키보드의 키를 하나 누르면, 눌려진 키 코드 값이 키보드 버퍼에 입력된 후 CPU에 인터럽트가 걸린다. 그럼 현재 처리하던 작업에 대한 정보를 수집하여 저장한 뒤에 인터럽트 서비스 루틴(Interrupt Service Routine)을 수행한다.(이 경우에는 키보드 버퍼에 있는 키 코드 값을 가져가는 일을 한다.) 이렇게 인터럽트 처리를 마친 후에는 다시 이전에 처리하던 작업으로 돌아간다.

이제 이런 인터럽트의 처리 과정을 매우 간단하게 정리해서 설명하면 다음과 같다.

  1. 기존의 작업을 처리하던 도중, 인터럽트가 발생하면
  2. 현재 컴퓨터가 처리하는 일을 중지하고 현재의 컴퓨터의 상태(CPU 내부의 레지스터, 메인 메모리 내용 등을) 저장한다.
  3. 해당하는 인터럽트를 처리해주기 위한 인터럽트 서비스 루틴을 처리한다.
  4. 인터럽트 처리 이후 저장되었던 이전 작업의 상태를 복구하고 이전 작업 수행을 재개한다.

각주

  1. 대부분의 컴퓨터가 동시에 여러 가지 일을 동시에 처리하는 것 같지만 사실 매우 빠른 속도로 시간을 매우 잘게 쪼개고 일을 나누어서 처리한다. 이런 방식을 time-sharing(시-분할) 방식이라고 한다.