OS 이벤트 처리 경로

인터럽트와 I/O 이벤트 흐름표

장치 이벤트는 CPU를 잠깐 커널로 끌어온 뒤, 긴급 처리와 지연 처리를 나누고, 필요하면 스케줄러를 통해 대기 중인 프로세스를 깨웁니다.

event1

장치 이벤트

키보드, 디스크, 네트워크 카드가 작업 완료나 입력 발생을 CPU에 알립니다.

trap2

상태 저장

CPU는 현재 PC와 레지스터를 저장하고 IDT를 통해 핸들러 주소를 찾습니다.

isr3

상반부

ISR은 장치 상태 확인, 버퍼 기록, ACK 같은 긴급 작업만 짧게 수행합니다.

defer4

하반부

프로토콜 처리, 파일 시스템 갱신, 소켓 전달은 나중에 일반 컨텍스트에서 실행됩니다.

wake5

대기 해제

I/O를 기다리던 프로세스가 준비 큐로 이동하고, 타임 슬라이스 정책을 적용받습니다.

tick6

선점 판단

타이머 인터럽트가 실행 시간을 갱신하고 필요하면 다른 프로세스로 전환합니다.

방식
CPU 역할
데이터 이동
적합한 상황
PIO
상태를 반복 확인하며 직접 복사
장치에서 CPU를 거쳐 메모리로 이동
짧고 예측 가능한 대기
Interrupt
요청 후 다른 작업을 하다가 완료 시 처리
완료 신호마다 커널 핸들러 개입
일반 파일, 네트워크 이벤트
DMA
전송 설정 후 완료 인터럽트만 처리
장치 컨트롤러가 메모리에 직접 전송
대용량 디스크, NIC, GPU