https://www.youtube.com/watch?v=V4lp6iGoUFY&list=PLXvgR_grOs1DGFOeD792kHlRml0PhCe9l&index=5
인터럽트의 종류
입출력 인터럽트 (I/O interrupt)
- 입출력 장치가 데이터 전송을 "요구" 하거나, 전송이 "끝나" 다음 동작이 수행되어야 할 경우
- 입출력 데이터에 이상이 있는 경우
내부 인터럽트
잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.
프로그램 검사 인터럽트 (Program Check Interrupt)
- Division by zero : 컴퓨터의 연산은 덧셈,뺄셈으로 작동한다. 0으로 나눌 경우 무한루프에 빠지게 되며 CPU 가 하드웨어적 손실을 입게 됨
- Overflow/Underflow
- 기타 Exception
컴퓨터의 핵심은 CPU, 주기억장치 RAM과 함께동작 (밀접한 연관)
이 둘 간의 CPU 가 RAM을 직접 통제할 것이냐 간접으로 할것이냐 두 가지 선택지가 있는데, 현재는 간접적인 방식이 채택 되었다.
여기서 사용되는 것이 메모리 매니저이다.
메모리 매니저
메모리 매니저 (칩 연산장치 기능)
메모리매니저를 예전에는 "브릿지 칩셋" 이라고 불렀다.
브릿지가 하는 일은 IO management , RAM과 IO 관리.
CPU-> 메모리 매니저 -> RAM (역도 성립) 의 순서로 실행이 이루어지는데 이 메모리매니저가 입출력 관리자이다.
CPU 와 RAM의 성능을 최대화 하려면, 메모리매니저도 성능이 좋아야한다. 그런데 이 메모리매니저의 영향을 받다 보면 의존성이 자꾸 생기니, CPU가 RAM까지 컨트롤 하는 방향으로 진화하게 되었다. 현재는 아래와 같이 Intel Core에서 DDR5, DDR4 (RAM) 까지 관리하는 것을 확인할 수 있다.
인터럽트 동작 순서
인터럽트가 발생하면 하던 일을 멈춘다. CPU 가 연산을 하고 있었는데 연산을 중단(일시정지)한다. 인터럽트가 발생하면 인터럽트 처리 코드가 작동한다. 그 처리 코드를 ISR이라고 부름 (각 인터럽트 마다의 서비스 루틴을 작동) 코드가 완료될 때까지 정지.
1. 인터럽트 요청
2. 프로그램 실행 중단
3. 현재의 프로그램 상태 백업 : Process Control Block, PC(Program Counter) 등
4. 인터럽트 처리루틴 실행 : 인터럽트를 요청한 장치를 식별한다
5. 인터럽트 서비스 루틴 (ISR) 실행
IO 성능의 체감
Hello World를 출력할 때 하드웨어가 제어하는 Driver는 비디오카드.
내가 Hello World를 출력하는데, 출력할 것은 Data이며 종착지는 비디오 카드(주변기기) 이다.
어떻게 전달할 것인가에서 차이가 생긴다.
RAM이 이런 데이터를 출력할 때는 Printf같은 함수를 이용하는데, 내부(Kernel)에서 SystemCall을 한 뒤(항상 그런 것은 아니지만 RAM 에게 Hello World가 전달된다). 이렇게 되면 모니터에 Hello World가 출력되는 데에 많은 단계를 거쳐야 한다.
고성능 장치가 동작할 때는 CPU 혼자 모든 일을 처리하지 않고, Kernel 에 함수를 Call 한 이후 바로 user에게 반환한다. 그럼 이 루틴이 실행되는 동안 (반환하는 동안) 출력장치에 데이터를 찍어 처리 속도가 빨라진다.
인터럽트(Interrupt)의 개념과 종류
인터럽트는 컴퓨터 구조에서 CPU의 활동에 많은 영향을 끼치는 중요한 개념이다. 어느 전산 시험, 어느 회차에서도 관련 문제가 꼭 등장하므로 인터럽트에 대해서만 확실히 이해하고 가도 몇 문
raisonde.tistory.com
'운영체제' 카테고리의 다른 글
[운영체제] CPU 도 예측하고 미리 움직인다 (2) (2) | 2024.07.20 |
---|---|
[운영체제] CPU 도 예측하고 미리 움직인다 (1) (4) | 2024.07.20 |
[운영체제] DMA 와 고성능 소켓 (0) | 2024.07.19 |
[운영체제] 컴퓨터는 3층집이다 (0) | 2024.06.28 |
[운영체제] 원격코드 실행 원리 : 운영체제 이론의 시작 (0) | 2024.06.27 |