인터럽트(Interrupt)

특정 프로세스가 실행 중이면 해당 프로세스가 CPU를 점유합니다.

예를 들어 사용자가 카카오톡을 실행하고 있다고 가정하면 이 경우 카카오톡이 CPU를 점유합니다.

이제 다른 프로세스를 실행하고 싶다고 가정합니다. 다음은 Chrome의 예입니다.

이제 실행 중인 두 프로세스가 교대로 CPU를 점유하므로 사용자는 두 프로세스가 동시에 실행되고 있는 것처럼 착각할 수 있습니다.

이 시점에서 프로세스는 어떻게 CPU를 점유합니까? 프로세스가 자발적으로 다른 프로세스에 양보합니까?

실제로 운영 체제를 다루어본 사람이라면 누구나 CPU를 점유하는 프로세스의 주요 부분이 운영 체제라는 것을 알고 있으며 이를 스케줄링이라고 합니다.

그러나 궁극적으로 운영 체제는 스케줄링을 수행하기 위해 CPU를 할당해야 하며 프로세스는 운영 체제에 CPU를 자발적으로 양보하지 않습니다.

또한, 이 상황에서 사용자가 키보드 입력을 하면 어떻게 될까요? 컴퓨터가 잘 작동하고 있음을 보여주기 위해서는 키 입력을 받는 과정이 즉각적이어야 하고 입력 요소가 실시간으로 화면에 표시되어야 합니다. 이 시점에서도 실행 중인 프로세스가 자발적으로 CPU를 포기하는 것은 아닙니다.

위의 문제를 해결하기 위해 운영 체제에서 사용하는 방법이 있는데, 방해하다그것은 말한다.

방해하다

인터럽트는 컴퓨터 시스템에서 발생하는 일종의 이벤트입니다.

인터럽트가 발생하면 실행 중인 프로세스가 중지되고 CPU가 커널 모드로 업그레이드되며 인터럽트에 대한 핸들러가 발생합니다.

인터럽트에는 하드웨어 인터럽트와 소프트웨어 인터럽트의 두 가지 주요 유형이 있습니다.

하드웨어 인터럽트

하드웨어 인터럽트는 하드웨어에서 발생하는 이벤트에 대한 인터럽트입니다.

입력 장치(키보드, 마우스)의 인터럽트 및 타이머 인터럽트를 예로 들 수 있습니다.

서두에서 언급한 키보드 입력이 발생하면 실행 중인 프로세스를 중지하고 사용자 입력을 수락하기 위해 입력 장치 인터럽트가 발생합니다.

또한 타이머 인터럽트는 CPU 스케줄링에 사용되는데, 특정 프로세스가 CPU를 점유한 후 일정 타임 슬라이스가 경과하여 타이머 인터럽트가 발생하면 운영 체제에 제어권이 넘어가고 운영 체제는 다음 프로세스를 결정하여 처리한다. 되다.

하드웨어 인터럽트는 외부 요인에 의해 발생하는 인터럽트이므로 언제 발생할지 예측할 수 없으므로 비동기 프로세스를 갖습니다.

하드웨어 인터럽트 방해하다 혼자서도 부를 수 있습니다.

소프트웨어 인터럽트

소프트웨어 인터럽트는 소프트웨어 내부에서 발생하는 인터럽트입니다.

예를 들면 숫자를 0으로 나누는 오류, 스택 오버플로 또는 프로그램 내에서 의도적으로 생성된 인터럽트가 있습니다.

소프트웨어 인터럽트가 일반적입니다. 예외그리고 특별한 예외로 잡다존재하는

일반적인 예외는 의도하지 않게 발생하지만 트랩은 의도적으로 발생합니다.

트랩을 생성하는 이유는 다음과 같이 운영 체제에 특정 작업을 요청하기 위한 것입니다. B. 시스템 콜.

보안상의 이유로 사용자 모드에서 실행되는 프로세스는 파일 I/O 또는 프로세스 생성과 같은 작업을 직접 수행할 수 없습니다.

프로세스는 운영체제에 대한 시스템 호출을 통해 이를 요청하는데 이때 트랩이 생성되어 커널 모드로 권한을 상승시키고 인터럽트가 발생했기 때문에 제어를 운영체제에 위임한다.

결과적으로 운영 체제는 제어 하에 파일 I/O 및 프로세스 생성과 같은 작업을 수행하고 그 결과를 기존 프로세스로 반환합니다.

하드웨어 인터럽트와 달리 소프트웨어 인터럽트는 동기적으로 실행됩니다.

참조

OSTEP(Operating System Three Easy Pieces), 2015 – Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau

https://www.baeldung.com/cs/os-trap-vs-interrupt

https://www.javatpoint.com/trap-vs-interrupt-in-operating-system

운영 체제의 트랩 대 인터럽트 – javatpoint

운영 체제 자습서, 운영 체제 유형, 프로세스 관리 소개, 프로세스 속성, CPU 계획, 오버헤드가 있는 FCFS, FCFS 계획 등이 포함된 운영 체제의 트랩 대 인터럽트

www.javatpoint.com