운영체제 & 컴퓨터구조

[OS] #2. Interrupt ( 인터럽트 )

코딩하는상후니 2022. 8. 31. 16:12

 

 


 

 

 
 

* Interrupt ( 인터럽트 )

 
 
=> '끼어들다, '중단시키다'
 
=> CPU 가 하던 일을 중단하고 발생한 상황을 처리한 후 다시 돌아온다.
 
 
 
 
 
 

* Interrupt 종류

 
 
 
 
 

 

 

 

 

 

 

* 인터럽트 동작 순서

 

 

 
만약,
인터럽트가 발생해 CPU 를 다른 곳으로 일하게 한다면 현재 상태를 보존하고 넘어가야 한다.
다시 돌아왔을 때, 그 상태로 되돌아가 작업해야하기 때문이다.
 
 
=> 상태로 저장되는 값들 중에 PCB, PC 가 속해있다.
 
 
=> 인터럽트가 발생하게 되면 현재 진행되고 있는 일을 '일시 정지'
 
이 때, 해당 인터럽트에 대한 처리 로직이 작동하게 되는데
이것은 'ISR ( 인터럽트 서비스 루틴 )' 이라고 한다.
 
=> 'ISR'인터럽트를 요청한 장치마다 다르다.
 
 
 
 
 
 
 
 
 

* 프로그램 카운터 ( PC, Program Counter )

 
 
=> CPU 레지스터 중 하나로 현재 실행하고 있는 기계어의 위치
 
=> 인텔 계열 CPU 에서는 'IP'( Instruction Pointer ) 라고도 부른다.
 
 
 
 
 
 
 
 
 
 
 

* 인터럽트 우선 순위

 

 

 

 

 

 

 

 

* 노스브리지  /  사우스브리지

 
 

 

 
=> 메인 보드에 CPU 성능이 의존성이 생겨버림.
 
=> 'Intel' 사가 노스 브릿지에서 수행하는 일부분을 CPU 가 기능하게 개발함.

 

 
 
 
 
 
 
 
 
 

* 세부 칩셋

 
 
=> CPU 역할의 일부 ( 위의 노스브릿지가 하는 역할 ).
 
=> 'CPU 와 타 장치 ( ex.RAM ) 사이에서 데이터를 중계해주는 역할' 을 하기에
이 칩셋에 따라 성능이 좌지우지됨.
 
 
 
 
 

 

 
 
 
 

* DirectX ( Window )

 

 
 
=> I/O 성능을 극단적으로 끌어올릴 수 있는 인터페이스.
ex) 화면 렌더링...
 
 
 
게임 같은 경우, 그래픽 연산이 엄청나게 많기 때문에
커널안의 여러 단계를 거쳐서 I/O 통신을 수행하게 되면 성능이 매우 저하됨.
( 인터럽트 요청, 완료되었다는 인터럽트...등 단계마다 지연. )
 
 
 
따라서,
여러 단계를 거치지 않고 장치와 직접적으로 통신이 가능하게 해주는 인터페이스
'DirectX' 가 만들어졌다.
 
 
=> 현재는 Window 에선 그래픽 부분을 모두 DirectX 로 대체되어졌다.
 
 
 
 
 
 
 
 

* 시스템 콜은 컨텍스트 스위칭인가 ??

 
 
=> Usermode -> Kernel 의 Switching 을 문맥교환이라 하지 않는다.
 
'문맥교환 ( Context Switching )'
현재 프로세스 or 쓰레드 에서 다른 프로세스 or 쓰레드로 변경되는 과정을 의미한다.
 
=> 단순히 mode 만 switching 하기 때문에 문맥교환보다는 비용이 조금 덜 든다.
 
=> mode swithcing 시, 필요에 따라 문맥교환이 필요할 수 있다.
ex) I/O 입출력 대기...등

 

 

 


 

 

참고 자료