-
폴링(Polling) vs 인터럽트(Interrupt)운영체제 2020. 5. 18. 13:38728x90반응형
폴링 방식
폴링이란 CPU가 작업을 진행하다 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 방식이다.
CPU가 직접 일을 하기 때문에 입출력을 하는 동안 다른 일은 못한다. 따라서 입출력이 처리되는 동안 기다려야 되는데 시간이 오래 걸리며 작업 효율이 떨어져 현재는 사용하지 않는다.
또한 정해진 시간이나 주기적으로 체크하는 방식으로 과거에는 작업 개수가 적었을 때 가능했던 방식이 오늘날 다양한 프로세스 처리에는 알맞지 않다.
인터럽트 방식
인터럽트란 어떠한 주변장치들의 입출력이나 하드웨어 문제, 프로그램에서 예외 등이 발생했을 때 CPU에게 이를 알려주는 방식이다.
보통 인터럽트는 인터럽트 벡터를 통해서 발생 여부를 체크한다. vector형태의 자료구조로 구현 가능하다고 한다. 또한 각각의 인덱스 번호가 해당 인터럽트의 종류를 나타내며, 해당 인터럽트에 맞는 처리 방법을 함수 형태로 저장하고 있는 인터럽트 핸들러가 저장된 주소를 포인터로 등록되어있다.
[ 과정 ]
1. CPU가 입출력 관리자(입출력 제어기)에게 입출력 명령을 보냄
2. 입출력 관리자는 메모리에 있는 데이터를 저장장치로 보내거나, 해당 데이터를 메모리로 가져온다.
3. 데이터 전송과정이 완료되면 입출력 관리자가 인터럽트 신호를 CPU에 보낸다.
종류
하드웨어 인터럽트(HW Interrupt)
1. CPU 상의 기능적 문제 발생
2. 타이머에 대한 인터럽트(보통 0번이다.)
3. 컴퓨터 파워 다운, 정전 등
4. 각 장치들에는 IRQ라는 번호가 붙여있다. (ex 1번 키보드, 2번 마우스 ..) 장치에서 발생하는 인터럽트
소프트웨어 인터럽트(SW Interrupt, Trap)
1. 0으로 나누기 (Division by zero)
2. 오버플로우 (Overflow)
3. Exception..
시그널(사용자 요청으로 발생하는 인터럽트)
ex) Ctrl+C 같은 명령어로 프로세스를 끝내는 것
반응형'운영체제' 카테고리의 다른 글
컴퓨터 시스템 정리 (분산 시스템, 병렬 시스템, 클러스터 시스템, Real-Time 시스템, Handled 시스템) (0) 2020.04.20 프로세스의 상태 총 정리 (Process Status) (1) 2020.04.19 PCB(Process Control Block)는 무엇일까? 어디서 쓰나? (0) 2020.04.10 프로그램(Program)과 프로세스(Process),프로세서(Processor) 구분하기!!! (0) 2020.03.19