본문 바로가기
Knowledge/CS

[CS] 인터럽트란?

by YoonJong 2022. 12. 22.
728x90

컴퓨터구조 운영체제 내용 중 인터럽트 란 것에 대해 알아보자.

 

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

예를 들어, 내가 어떤 일을 하고 있는데 다른 일을 해달라고 누군가 와서 요청하는 상황이라고 생각하면 된다.

 

컴퓨터가 1개의 CPU를 사용한다고 가정한다.

CPU 가 1개이면 하나의 일 밖에 처리할 수밖에 없으므로, 다른 우선 순위가 급한 일을 처리해야 할 때 대처할 수 있는 방안이 필요하다.

 

컴퓨터와 주변기기(키보드 등) 과 소통을 하는데 이것을 I/O(입출력) 이라고 한다.

키보드를 누르면 누른 코드값이 버퍼에 입력되어 CPU 에 인터럽트가 발생하게 된다.


인터럽트의 종류는 내부와 외부로 나뉜다.

 

내부 인터럽트

1. 하드웨어 고장 ex ) 컴퓨터 고장, 전원 종료 등

2. 실행하지 못하는 명령어

3. 명령어 실행 오류

4. 사용자 권한 위배

 

외부 인터럽트 ( 입출력장치 )

1. 타이머 인터럽트

2. 입출력 인터럽트


인터럽트의 처리방법은 아래와 같다.

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

 

728x90

'Knowledge > CS' 카테고리의 다른 글

[CS] 로드 밸런싱(Load Balancing)  (0) 2022.12.27
[CS] 가비지 컬렉션(Garbage Collection, GC) 이란?  (0) 2022.12.24
[CS] JVM 이란?  (0) 2022.12.17
[CS] Spring MVC 이란?  (0) 2022.12.16
[CS] 스케줄링 알고리즘  (0) 2022.12.13

댓글