터럽트 개념

• 현재 실행 중인 작업을 중단하고 발생한 상황에 대한 우선 처리가 필요함을 CPU 에게 알리는 하드웨어 기법

• 하드웨어가 자체적으로 변화를 체크하여 일정한 동작을 하는 방식

    ◦  하드웨어의 지원을 받아야 하는 제약이 있지만, 폴링 방식에 비해 신속한 대응이 가능하다.

• 외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생한다.

    ◦  외부 인터럽트

         -  외부 신호, 입출력 장치, 기계 이상 등의 외부적인 요인으로 발생

    ◦  내부 인터럽트

         -  Trap 이라고 부르며, 잘못된 연산이나 데이터를 사용할 때 발생

         -  예) 0으로 나누기, 오버플로우, Exception 등

• 소프트웨어 인터럽트는 명령어의 요청에 의해 발생한다.

    ◦  사용자가 프로그램을 실행시키는 경우

    ◦  소프트웨어 이용 중에 다른 프로세스를 실행시키는 경우 (시분할 처리를 위해 자원 할당 동작이 수행됨)


동기/비동기적 인터럽트

• 동기적 인터럽트

    ◦  CPU가 작업을 실행하는 도중 인터럽트가 도착해도 현재 작업을 마친 뒤에 인터럽트를 발생시킨다.

         -  CPU 하드웨어에는 인터럽트 요청 라인이라고 불리는 선이 하나 있는데, CPU는 매 명령을 끝내고 다음 명령을 수행하기 전

             이 선을 검사한다.

• 비동기적 인터럽트

    ◦  별개의 하드웨어 장치가 CPU 클락 신호와 상관없이 즉각적으로 인터럽트를 발생시키고, CPU는 실행중인 작업들을 일시 중지한 다음

         발생한 인터럽트 작업을 수행하게 된다.

    ◦  일반적인 인터럽트는 비동기적 인터럽트를 의미한다.


인터럽트 처리 과정

• 인터럽트가 발생하면 현재 수행 중이던 프로그램의 레지스터 값 및 상태 정보를 스택에 저장한 뒤,

    인터럽트 서비스 루틴으로 이동해 인터럽트를 처리한다.

    ◦  인터럽트 서비스 루틴 = 인터럽트에 대응하여 특정 기능을 처리하는 기계어 코드 루틴

• 작업이 끝나면 스택에 저장해두었던 정보를 기반으로 원래 위치로 돌아와 기존 작업을 이어서 수행한다.

• 폴링 방식

    ◦  사용자가 명령어로 입력값을 계속 읽어 특정 작업을 해야할 시기를 감지하는 방식

    ◦  폴링을 하는 동안에는 기존 작업을 수행할 수 없어 인터럽트 방식에 비해 처리 속도가 느리다


인터럽트와 이중 모드

• 이중 모드에서는 아래의 두가지 모드가 존재한다.

    ◦  사용자(User) 모드

    ◦  관리자(Supervisor) 모드

         -  관리자 모드에서만 내릴 수 있는 명령을 특권 명령(privileged instruction) 이라고 하며,

             STOP, HALT, RESET, SET_TIMER 등이 있다.

         -  이중 모드는 CPU 내부의 레지스터의 비트를 활용하여 나타낸다.

         -  예) 특권 모드일 때는 비트 값이 0 / 사용자 모드일 때는 비트 값이 1

 

• 사용자 모드에서 하드웨어 자원에 직접 접근하는 것은 매우 위험하므로,

    프로그램 소프트웨어에서 인터럽트를 발생시켜 운영체제의 관리자 모드에 해당 작업을 위임하자.

    ◦  만약 사용자 모드에서 특권 명령을 사용하려고 하면 CPU가 내부 인터럽트를 발생시켜 해당 명령어를 요청한 프로그램을

         강제로 종료시킬 것이다.

 

• 애플리케이션이 실행되는 동안 두 모드의 변경이 반복적으로 일어난다.

    ◦  컴퓨터 부팅 과정 (관리자 모드)

    ◦  애플리케이션 실행 과정 (관리자 모드)

    ◦  애플리케이션 실행중 (사용자 모드)

    ◦  인터럽트 발생 후 처리 과정 (관리자 모드)

    ◦  인터럽트 처리 후 (사용자 모드)

 

• 인터럽트와 이중모드

    ◦  하드웨어 인터럽트 발생, CPU로 인터럽트 전달 (사용자 모드)

    ◦  CPU : 모드 플래그를 관리자 모드로 변경

    ◦  해당 하드웨어 인터럽트 서비스 루틴(ISR)으로 이동 (관리자 모드)

    ◦  인터럽트 처리 (관리자 모드)

    ◦  CPU : 모드 플래그를 사용자 모드로 변경

    ◦  원래의 애플리케이션 위치로 복귀 (사용자 모드)


참고자료

 

운영체제 - YES24

운영체제

www.yes24.com

 

인터럽트(Interrupt) | 👨🏻‍💻 Tech Interview

인터럽트(Interrupt) 정의 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것 지금

gyoogle.dev

 

[운영체제(OS)] 3. 이중모드와 보호

현재 컴퓨터 환경은 여러 사람이 동시에 한 컴퓨터를 사용하는 경우가 많다.(서버 컴퓨터) 그리고 그 외에도 하나의 컴퓨터 내에서 여러 프로그램을 수행하는 것이 일반적이다. 이 때 특정 컴퓨

velog.io

 

'CS Knowledge > 운영체제' 카테고리의 다른 글

[OS] 운영체제와 메모리 관리  (0) 2022.09.22
[OS] 교착 상태(Deadlock) 개념  (6) 2022.09.22
[OS] CPU 스케줄링 알고리즘  (0) 2022.09.16
[OS] CPU 스케줄링 개념  (0) 2022.09.16
[OS] 스레드와 멀티스레드  (0) 2022.09.08