# HW / SW Interrupt

1. **하드웨어 인터럽트(일반적인 인터럽트)**
   1. **일반적인 하드웨어 인터럽트**
      * 하드웨어 장치의 컨트롤러가 CPU의 서비스를 요청하기 위해 발생시키는 인터럽트
   2. **운영체제의 타이머(Timer) 인터럽트**
      * 운영 체제에서는 각 프로그램들이 공평한 시간 동안 CPU를 할당 받을 수 있도록 세팅된 시간 동안 CPU를 사용하고, 사용시간이 종료되면 인터럽트를 발생 시킨다.
2. **소프트웨어 인터럽트(Trap: 트랩)**
   1. **예외 상황(Exception)**
      * 프로그램이 허용되지 않은 연산을 수행하려고 할 때, 자동적으로 발생한다. 운영체제는 예외 상황이 발생했을 때, CPU의 제어권을 획득해 이 상황에 대한 조치를 취한다.
      * ex) 0으로 나누는 연산, 자신의 주소 공간을 넘어서는 메모리 참조 등
      * 예외 상황에 대한 처리 루틴을 자신의 코드 영역에 가지고 있음
   2. **시스템 콜(System Call)**
      * 사용자 프로세스가 운영체제의 서비스를 요청하기 위해 커널의 함수를 호출하는 것이다.
      * 사용자 프로세스가 직접 특권 명령을 수행할 수 없으므로 특권 명령을 수행하려 할 때, 시스템 콜을 사용한다.

&#x20;💡 **Trap, Fault, Abort…?**

intel CPU에서 exception의 분류가

1. trap : INT 명령으로 명시적으로 발생
2. fault : 0으로 나눈 에러
3. abort : 복구 불가능한 에러

→ 이 분류는 그냥 Intel의 용어라고 생각하라고 함
