조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다
1. 이벤트 드리븐
- 시스템이나 애플리케이션에서 발생하는 이벤트를 중심으로 동작하는 방식
- 이벤트 발생 시, 콜백 함수가 호출되어 이벤트가 처리됨
- 비동기적 방식으로 동작
- 여러 이벤트가 동시에 발생해도, 각 이벤트를 각각의 스레드에서 처리함
- 다른 이벤트에 영향을 미치지 않음
- 입출력 장치는 자신의 작업이 완료되면, 인터럽트 신호를 발생시켜 CPU에 작업을 요청함
2. 종류
동기적 인터럽트 (사용자 인터럽트)
- 실행중인 명령어로 인해 발생
종류
- 프로그램상의 문제 때문에 발생 (Divide By Zero)
- 프로세스를 의도적으로 중단하기 위해 발생
- 주변장치의 조작에 의해 발생
비동기적 인터럽트
- 하드웨어적인 오류로 인해 발생하는 인터럽트
- 입출력 장치에 의해 트리거됨
3. 인터럽트 처리 과정
인터럽트 발생
현재 프로세스 상태 저장
- 현재 실행중인 프로세스는 일시정지됨
- 현재 프로세스 관련 정보를 PCB에 저장
인터럽트 컨트롤러 실행
- 인터럽트 처리 순서를 결정함
- 어떤 인터럽트를 실행할 것인지 선택함
- 해당 인터럽트 정보를 CPU에 전달
인터럽트 핸들러 호출
- CPU는 인터럽트 백터 테이블을 참조 (인터럽트를 처리할 핸들러 주소가 저장된 테이블)
- CPU는 이 테이블을 참조하여 적절한 핸들러를 호출함
원래 작업 복귀 또는 문맥 교환
- 인터럽트 핸들러가 처리를 마치면 일시 정지된 프로세스가 다시 실행됨
동시 처리
- 인터럽트는 한 번에 하나씩 발생할 뿐만 아니라, 여러개가 동시에 발생하기도 함
- 인터럽트 백터를 이용하여 동시에 발생하는 인터럽트를 하나로 묶어 처리
'OS' 카테고리의 다른 글
[쉽게 배우는 운영체제] 6. 교착상태 (1) | 2024.12.12 |
---|---|
[쉽게 배우는 운영체제] 5-1. 프로세스 동기화 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 4-1. CPU 스케줄링 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 3-2. 프로세스와 스레드: 스레드 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 3-1. 프로세스와 스레드: 프로세스 (0) | 2024.12.11 |