2 min read

<운영체제>Interrupt and Polling

<운영체제>Interrupt and Polling

본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성되었습니다.


<Interrupt Comparison>

  1. External Interrupt(외부 인터럽트)

    • 비동기적(asynchronous) : 키보드의 ctrl + c 처럼 컴퓨터 내부의 clock과 상관없이 발생
    • 컴퓨터 시스템 외부에서 발생!
  2. Internal Interrupt(내부 인터럽트)

    1. Fault : 현재 명령어 저장 -> ISR -> fault를 발생시킨 명령으로 다시 돌아옴
      ex) page fault, memory space fault
    2. Trap : 현재 명령어 저장 -> ISR -> trap을 발생시킨 다음 명령어로 돌아간다.
      ex) system call(함수 호출), exception handling(예외처리)
    3. Abort : ISR -> 현재 작업 자체를 취소한다(심각한 수준)
      ex) divided by zero 등

<Interrupt Handling>

  • The operating system preserves the state of the CPU by storing registers and the program counter.  -> 현재 진행 중인 상태를 레지스터에 저장한다.
  1. Vectored Interrupt System
    : 앞에서 나온 intrrupt를 이용하여 컴퓨터에서 발생한 이벤트를 처리하는 방식
  2. Polling System
    : Determines state of device through handshaking, busy waiting -> CPU가 해당 디바이스 계속 관찰하면서 상태를 체크하는 방식
    • 장점 : fast response, no context switching overhead(작업 변환시 소요되는 시간이 없다.)
    • 단점 : waste of CPU cycle
    • 요구조건 : 빠른처리속도의 I/O device, 짧은 I/O service routine, 드물게 발생하는 이벤트여야 polling이 유리함
출처 -> https://www.geeksforgeeks.org/difference-between-interrupt-and-polling/