본문 바로가기
운영체제

인터럽트

by tryotto 2020. 4. 26.

# 인터럽트 과정


1) 프로세스 수행 중 특수 상황(=인터럽트) 이 발생 

2) 작업 중단 

      - PC, 레지스터를 PCB (process control block) 에 저장

      - CPU 제어를 인터럽트 서비스 루틴에 넘김

3) Context Switching

4) 특수 상황 먼저 처리 (인터럽트 루틴 실행)

5) 원래 상황으로 복구






# PCB 란


- 약어 : Process Control Block

- 위치 : 프로세스에 있는 자료구조

- 저장 정보 : 프로세스 상태, ID 프로세스에 관한 정보

      > 선점형 방식 스케쥴링을 하거나, 멀티레벨 피드백 큐 스케쥴링 구현시,

         현재까지 해당 프로세스가 얼만큼 진행됐는지를 저장하는 필드 (수행시간 필드) 를

         저장해둘 수 있도록 추가돼야 한다





# 인터럽트 종류  - CPU 기준 구분


      1> CPU 외부 인터럽트 

- 입출력 인터럽트

- 전원 이상, 기계 착오, 외부 신호, 타이머 인터럽트

- 비동기 인터럽트


      2> CPU 내부 인터럽트 

- 잘못된 명령, 잘못된 데이터 사용시 발생 

- 프로그램 검사 인터럽트

        ex) 0 으로 나누기, exception, 오버플로우, 할당되지 않은 주소공간 액세스

- 동기 인터럽트





# 인터럽트 종류  -  하드웨어/소프트웨어 기준 구분


      1> 하드웨어 인터럽트 

- 종류 : CPU 외부 인터럽트

- 특징 : 비동기 인터럽트


      3> 소프트웨어 인터럽트 (=트랩)

- 종류 : 예외 (exception), 시스템 콜 (system call)

      1) 예외 : CPU 내부 인터럽트

        2) 시스템 콜 : 프로그램 실행 또는 supervisor 호출시 

            (사용자가 의도적으로 일으킨 인터럽트)

                  - 소프트웨어 이용 중 다른 프로세스 실행시 발생

                  - 이때, 시분할 처리를 위해 자원 할당이 된다

- 특징 : 동기 인터럽트

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

커널별 인터럽트 처리  (0) 2020.04.26
커널 종류  (0) 2020.04.26
DMA 와 메모리  (0) 2020.04.26
선점형/비선점형 스케쥴링 방식  (0) 2020.04.26