[OS]폴링(Polling), 인터럽트(Interrupt)

2025. 3. 17. 23:34·CS/운영체제

폴링 방식(Polling)

CPU가 직접 입출력장치에서 데이터를 가져오거나 내보내는 방식

CPU가 입출력장치의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 데이터를 처리

반복적인 모니터링 작업으로 인해 작업 효율이 떨어짐

인터럽트 방식(Interrupt)

입출력 관리자가 대신 입출력을 해주는 방식

CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영하여 시스템의 효율을 높임

데이터의 입출력이 이루어지는 동안 CPU가 다른 작업을 할 수 있음

인터럽트

입출력 관리자가 CPU에 보내는 이벤트 신호

마우스를 움직이거나 클릭, 키보드 입력 등

인터럽트 번호

많은 주변장치 중 어떤 것에 이벤트가 발생되었는지를 CPU에 알려주기 위해 사용하는 번호

윈도우 운영체제에서는 IRQ라 부름

인터럽트 벡터

여러 개의 입출력 작업을 한꺼번에 처리하기 위해 여러 개의 인터럽트를 하나의 배열로 만든 것

인터럽트 방식의 동작 과정

1. CPU가 입출력 관리자에게 입출력 명령을 보내고, CPU는 다른 일을 처리한다.(=폴링)

2. 입출력 관리자는 명령받은 데이터를 메모리에 가져다 놓거나 메모리에 있는 데이터를 저장장치로 옮긴다.

3. 데이터 전송이 완료되면 입출력 관리자는 완료 신호를 CPU에 보낸다.(=인터럽트)

4. 0과 3의 인터럽트가 발생한 것을 확인하고 인터럽트 벡터를 통해 인터럽트 핸들러를 호출하여 처리한다.(= 인터럽트 서비스 루틴(ISR))

직접 메모리 접근(DMA, Direct Memory Access) 

입출력 관리자가 CPU의 허락 없이 메모리에 접근할 수 있는 권한

인터럽트 방식의 시스템의 필수요소

메모리는 CPU의 작업 공간이지만, 데이터 전송을 지시받은 입출력 관리자는 직접 메모리 접근 권한이 있어야만 작업을 처리할 수 있음

메모리 매핑 입출력(MMIO, Memory Mapped I/O) 

CPU의 데이터와 입출력장치의 데이터가 혼재하면 메모리 복잡 & 관리 어려움 

CPU가 사용하는 메모리 공간과 직접 메모리 접근(DMA)의 메모리 공간을 분리 

즉, 메모리의 일정 공간을 입출력에 할당하는 기법

사이클 훔치기(Cycle Stealing)

CPU와 직접 메모리 접근(DMA)이 동시에 메모리에 접근하면 CPU가 양보함

CPU의 작업 속도보다 입출력장치의 속도가 느리기 때문에 직접 메모리 접근에 양보하는 것

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

[OS]일괄 작업 방식, 시분할 방식  (0) 2025.03.22
[OS]멀티 프로세스(Multi Process), 멀티 코어(Multi-Core)  (0) 2025.03.22
[OS]성능 향상 기법  (0) 2025.03.17
[OS]메모리 보호  (0) 2025.03.17
[OS]메모리의 종류  (0) 2025.03.17
'CS/운영체제' 카테고리의 다른 글
  • [OS]일괄 작업 방식, 시분할 방식
  • [OS]멀티 프로세스(Multi Process), 멀티 코어(Multi-Core)
  • [OS]성능 향상 기법
  • [OS]메모리 보호
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[OS]폴링(Polling), 인터럽트(Interrupt)
상단으로

티스토리툴바