* Interrupt ( 인터럽트 )
=> '끼어들다, '중단시키다'
=> CPU 가 하던 일을 중단하고 발생한 상황을 처리한 후 다시 돌아온다.
* 인터럽트 동작 순서
만약,
인터럽트가 발생해 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 입출력 대기...등
참고 자료
'운영체제 & 컴퓨터구조' 카테고리의 다른 글
[OS] #5. 프로세스 ( Process ) 와 쓰레드 ( Thread ) (0) | 2022.09.04 |
---|---|
[OS] #4. CPU ( 중앙 처리 장치 ) (0) | 2022.09.02 |
[OS] #3. DMA ( Direct Memory Access ) (0) | 2022.09.02 |
[OS] #0. 백그라운드 프로세스 ( Background Process ) (0) | 2022.08.30 |
[OS] #1. 하드웨어 / 소프트웨어 통신 (0) | 2022.08.29 |