-
[OS] - InterruptCS/면접준비 2022. 9. 29. 16:06
Interrupt
Program이 실행 중에 예기치 않은 상황이 발생하였을 때 처리 하기 위함
- 상황 발생 -> 실행 중인 작업 중단 -> 발생된 상황 처리
- 지금 수행 중인 일보다 더 중요한 일이(I/O, 우선 순위 연산) 발생하면 해당 일을 먼저 처리해야 한다.
- Internal/External Interrupt는 CPU의 HW신호에 의해 발생한다.
- Software Interrupt는 명령어 수행에 의해 발생한다.
External Interrupt
- I/O, Time Device, 전원 등의 외부적인 요인에 의해 발생하는 경우이다.
Internal Interrupt
- Trap이라고 불리며, 잘못된 명령어 혹은 데이터 사용 시 발생
- 0으로 나누기, Overflow, 명령어 Exception
Software Interrupt
- Process 실행 중 명령에 의해 발생한다.
- User가 Program 실행 시 , Software 이용 중 다른 Process 실행 시
Interrupt 처리 과정
1. Process 동작 중에 Interrupt 발생
2. 수행 중인 Process를 Stop
3. State register/PC 등을 Stack에 잠시 저장 후 Intterupt Service 실행
Polling
- Interrupt가 없다면, Controller는 어떤 작업을 할 시기를 계속 체크해야 한다.
- 체크를 하기 위해 Resource를 사용함으로 성능 저하
인터럽트 방식은 하드웨어로 지원을 받아야 하는 제약이 있지만, 폴링에 비해 신속하게 대응하는 것이 가능하다.
실시간 대응에 필수적이기 때문에 Interrupt를 사용한다.
'CS > 면접준비' 카테고리의 다른 글
[OS] - IPC (0) 2022.09.29 [OS] - System call / PCB (0) 2022.09.29 [OS] - Process vs Thread (1) 2022.09.29 [Database] - Join (1) 2022.09.21 [Database] - Key (0) 2022.09.20