cs

인터럽트 interrupt

ssoonn 2024. 7. 23. 13:24

 

인터럽트의 정의

프로세스 실행 도중 예기치 않은 상황이 발생할 때, 해당 상황을 처리한 후 실행중인 작업으로 복귀하는 것

CPU의 정상적인 프로그램 실행을 방해한 것

 

주로 입출력 장치의 signal, data가 발생할 때까지 원래의 작업을 수행하다가 해당 기능을 처리하는 것. (외부 인터럽트)

 

종류

외부 인터럽트, 내부 인터럽트

 

내부 인터럽트

소프트웨어가 인터럽트 라인을 세팅하는 것.

즉, CPU가 명령어를 수행하고 있다가 자신이 처리할 수 없는 명령이면 자기 자신한테 인터럽트를 건다.

  1. 하드웨어 고장
    • 컴퓨터 고장
    • 데이터 전달 과정에서 비트오류
    • 전원이 나간 경우
  2. 실행할 수 없는 명령어
    • 기억장치에서 인출한 명령어의 비트 패턴이 정의되지 않은 경우
  3. 명령어 실행 오류
    • 나누기 0을 하는 경우
  4. 사용 권한 위배
    • 사용자가 운영체제만 사용할 수 있는 자원에 엑세스한 경우

외부 인터럽트

주로 입출력장치에 의해 발생

하드웨어 장치가 인터럽트 라인을 세팅하고, CPU에 이를 통보하는 것.

  1. 타이머 인터럽트
    • 타이머가 일정한 시간 간격으로 중앙처리장치에 인터럽트 요청
  2. 입출력 인터럽트
    • 속도가 느린 입출력장치가 입출력 준비가 완료됨을 알리기 위해 인터럽트 요청

 

인터럽트 처리 과정

주 프로그램 작업 수행 중 인터럽트 발생 -> 주 프로그램 상태 레지스터와 PC 등을 스택에 저장
-> 인터럽트 서비스 루틴으로 점프, 처리 -> 주 프로그램 작업 복귀

명령어 사이클은 인출(fetch state)->실행(execution stage) 두 단계를 반복해서 수행한다.

인터럽트 요청이 들어왔다고 해도, 명령어 N의 실행 단계를 마친 후에 승인할 수 있다.

 

명령어의 실행 단계를 마칠 때마다, 중앙처리장치는 반복적으로 인터럽트 요청이 있는지 확인한다.

인터럽트 요청이 있는 경우, 인터럽트 서비스 루틴을 진행한다.

인터럽트 서비스 루틴(ISR, Interrupt Service Routine)

여러가지 인터럽트에 대해 처리해야할 업무를 정의한 것.

  • 인터럽트 핸들러(interrupt handler)라고도 함
  • ISR 역시 기억장치 내 저장되어 있는 프로그램이다.

 

 

이중 동작 모드

사용자와 OS는 시스템 자원을 공유 -> 사용자가 메모리 내 주요 자원을 망가뜨릴 위험

이중 동작 모드는 사용자의 시스템 자원을 막는 보호 장치이다.

 

커널모드, 사용자 모드로 나뉜다.

커널 모드: 사용자가 접근 불가능한 모드

  • supervisor mode, system mode, privileged mode라고도 한다.

사용자 모드: 사용자가 접근 가능한 모드

 

프로세스는 사용자 모드에서 실행되다가, OS에 시스템 사용 요청 시 커널 모드로 전환된다. (시스템 콜)

요청한 시스템을 실행한 후 다시 사용자 모드로 전환한다.

 

시스템 콜은 하나의 인터럽트로 취급된다.

커널모드와 사용자 모드를 구분하기 위해 mode bit가 사용되며, 0이 커널모드 1이 사용자모드

 

OS는 일부 명령들을 특권 명령으로 지정하고 커널 모드에서만 실행되게 하며 사용자 모드에서 실행하려고 하면 trap을 건다.

 

 

ref.

https://velog.io/@pppp0722/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8Interrupt%EB%9E%80

 

인터럽트(Interrupt)란?

인터럽트 인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것을 말한다. 주로 입출력 장치의 signal, data가 발생할 때까지 원

velog.io

https://whatisthenext.tistory.com/147

 

[컴퓨터구조] 인터럽트(Interrupt)란?

인터럽트 개요 2017년 컴퓨터구조 과목을 수강하면서 가장 많이 나온 단어가 인터럽트가 아닐까 싶다. 외부 인터럽트, 내부 인터럽트 인터럽트 서비스, 인터럽트 서비스 루틴, 인터럽트 핸들러,

whatisthenext.tistory.com