CPU(Central Processing Unit)은 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석하여 실시하는 일꾼이다. CPU의 구성은 다음과 같다.
- 제어장치(Control Unit)
프로세스 조작을 지시하는 장치로, I/O장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.- 레지스터(Register)
레지스터는 CPU안에 있는 매우 빠른 임시기억장치이다. CPU는 자체적으로 데이터를 저장할 방법이 없어, 레지스터를 거쳐 데이터를 전달한다. CPU와 직접 연결되어있어, 속도가 매우 빠르다.- 산술논리연산장치(Arithmetic Logic Unit)
덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리 곱과 같은 논리 연산을 계산하는 디지털 회로이다.
인터럽트는 CPU를 잠깐 정지시키는 것이다. 키보드, 마우스 등 I/O 디바이스로 인한 인터럽트, 0을 숫자로 나누는 산술연산에서의 인터럽트, 프로세스 오류 등으로 발생한다.
컴퓨터에 문제가 발생하거나, 중요한 일이 생기면 즉시 처리해야한다. 이 때 인터럽트는 컴퓨터가 현재 하고 있는 일을 잠시 멈추고 해당 일을 해결하는데 도움을 주는 역할을 한다.
인터럽트가 발생되면 인터럽트 핸들러 함수가 모여있는 인터럽트 벡터로 가서 인터럽트 핸들러 함수를 실행시킨다. 인터럽트는 총 2가지로 나뉜다.
- 하드웨어 인터럽트
하드웨어 인터럽트는 키보드를 연결하거나, 마우스를 연결할 때 I/O 디바이스에서 발생하는 인터럽트를 의미한다.- 소프트웨어 인터럽트
소프트웨어 인터럽트는트랩
이라고도 한다. 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발생한다.
DMA(Direct Memory Access) 컨트롤러
는 I/O 디바이스가 메모리에 직접 접근할 수 있도록 도와주는 장치를 의미한다.
CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에 CPU 부하를 막아주며, CPU의 일을 부담하는 보조 일꾼이라 생각하면 된다.
메모리(Memory)는 데이터나 상태, 명령어 등을 기록하는 장치를 말하며 보통 RAM(Random Access Memory)
를 일컬어 메모리라고도 한다.
CPU는 계산을 담당하고, 메모리는 기억을 담당한다.