컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등 여러 중요한 부품들로 조립되어 있습니다.

🧠 CPU (Central Processing Unit)
컴퓨터의 '두뇌'입니다. 산술논리연산장치(ALU), 제어장치(CU), 레지스터로 이루어져 있습니다. 하는 일은 메모리에 저장된 명령어를 가져와 해석하고 실행하는 것입니다. 관리자 역할을 하는 운영체제(커널)가 프로그램을 메모리에 올려 '작업(프로세스)'으로 만들어주면, CPU가 이 작업을 실제로 처리합니다. 중간중간 '인터럽트'라는 신호에 따라 하던 일을 잠시 멈추고 다른 일을 하기도 합니다.
🛂 제어장치 (CU, Control Unit)
CPU 안에서 '지휘자'나 '교통경찰' 역할을 하는 부품입니다. 컴퓨터의 다른 부품들(입출력장치 등)이 서로 신호를 주고받는 것을 통제하고, 명령어를 읽어서 '이건 덧셈이네', '이건 저장해'처럼 해석한 뒤, 작업 순서를 결정해줍니다.
⚡ 레지스터 (Register)
CPU 칩 내부에 있는 '초고속 임시 보관함'입니다. CPU와 바로 붙어있어서, 일반 메모리(RAM)보다 수십~수백 배나 빠릅니다. CPU가 계산할 데이터를 잠시 저장해두거나, 계산 결과를 잠시 보관하는 용도로 씁니다. CPU는 데이터를 직접 들고 있을 수 없어서, 꼭 이 레지스터를 거쳐야 합니다.
🧮 산술논리연산장치 (ALU, Arithmetic Logic Unit)
CPU 안에서 실제 '계산'을 담당하는 부품입니다. 덧셈, 뺄셈 같은 '산술 연산'과 '그리고(AND)', '또는(OR)' 같은 '논리 연산'을 수행하는 계산기라고 생각하면 쉽습니다.
🔄 CPU의 연산 처리
- (제어장치가) 메모리에서 계산할 값을 가져와 '레지스터'(초고속 보관함)에 싣습니다.
- (제어장치가) '산술논리연산장치'(계산기)에게 '레지스터에 있는 값으로 계산해!'라고 명령합니다.
- (제어장치가) 계산이 끝난 결과를 다시 레지스터에서 '메모리'로 옮겨서 저장합니다.
🚨 인터럽트 (Interrupt)
CPU가 한창 일을 하고 있을 때, "잠깐! 이것부터 처리해!" 하고 알리는 '긴급 신호'입니다. 예를 들어 사용자가 키보드를 누르거나(IO 디바이스), 0으로 숫자를 나누려 하거나(오류), 프로그램에 문제가 생겼을 때 발생합니다. 인터럽트 신호가 오면, CPU는 하던 일을 멈추고 '인터럽트 벡터'(긴급 상황 매뉴얼)를 찾아가서, 정해진 '인터럽트 핸들러 함수'(긴급 상황 처리반)를 실행합니다. 인터럽트에도 '더 급한 일'(우선순위)이 있어서 순서대로 처리되며, 크게 하드웨어/소프트웨어 인터럽트로 나뉩니다.
- 용어 설명:
- 인터럽트 핸들러 함수:
말 그대로 인터럽트(긴급 신호)가 발생했을 때, 그 상황을 '처리(핸들링)'하기 위해 미리 만들어 둔 함수(프로그램)입니다. (전문 용어로 커널 내부의 IRQ를 통해 호출되며, request_irq() 같은 함수로 등록해 둡니다.)
- 인터럽트 핸들러 함수:
⌨️ 하드웨어 인터럽트
키보드를 누르거나, 마우스를 움직이는 것처럼 컴퓨터 '부품(하드웨어)'이 CPU에게 보내는 긴급 신호입니다. 이 신호가 오면 CPU는 하던 일을 멈추고, 운영체제(시스템콜)에게 '키보드 좀 처리해줘!'라고 요청합니다. 그러면 운영체제는 해당 장치(키보드)의 '로컬 버퍼'(임시 저장 공간)에 접근해서 데이터를 가져오는 등 필요한 일을 처리합니다.
🚦 소프트웨어 인터럽트 (trap)
프로그램(소프트웨어)이 실행되다가 '오류'가 나거나, 프로그램이 스스로 운영체제의 기능을 부르기 위해 '시스템콜'을 요청할 때 발생하는 신호입니다.
⚙️ DMA 컨트롤러(Direct Memory Access Controller)
I/O 장치(하드디스크 등)가 CPU를 거치지 않고 '직접' 메모리에 데이터를 옮길 수 있게 도와주는 '전용 일꾼'입니다. 원래는 모든 데이터 이동에 CPU가 관여해야 해서 바빴는데(인터럽트 폭주), DMA가 이 일을 대신해주면서 CPU의 부담을 획기적으로 줄여줍니다. CPU는 다른 중요한 계산을 계속할 수 있게 되죠. (단, CPU와 DMA가 동시에 같은 곳에서 작업하며 꼬이지 않도록 합니다.)
📝 메모리 (memory)
데이터나 명령어 등을 '기억'하는 부품입니다. 보통 'RAM(램)'을 말합니다. CPU가 '계산'을 담당한다면, 메모리는 '기억'을 담당합니다.
공장에 비유하자면 CPU는 일꿀이고, 메모리는 작업장이며, 작업장의 크기가 곧 메모리의 크기입니다. 작업장이 클수록 창고에서 물건을 많이 가져다놓고 많은 일을 할 수 있듯이 메모리가 크면 클수록 많은 일을 동시에 할 수 있습니다.
⏱️ 타이머 (timer)
컴퓨터의 '시계' 장치입니다. 특정 작업이 정해진 시간을 넘기지 않도록 '시간제한'을 거는 역할을 합니다. 예를 들어, 어떤 프로그램이 CPU를 너무 오래 독차지하는 것을 막기 위해 "딱 0.1초만 써!" 하고 시간을 잽니다. 시간이 다 되면 인터럽트를 발생시켜 CPU를 다른 프로그램에게 넘겨줍니다.
🎮 디바이스 컨트롤러 (device controller)
키보드, 하드디스크 등 각각의 '입출력(IO) 장치'에 붙어있는 '미니 CPU'입니다. CPU가 모든 장치를 일일이 챙기기 힘드니, 이 컨트롤러들이 자기 장치를 직접 제어합니다. 옆에 붙은 '로컬 버퍼'는 해당 장치에서 발생하는 데이터를 잠시 저장해두는 '작은 임시 메모리'입니다.
'Computer Science > Operating System' 카테고리의 다른 글
| 🚦 CPU 스케줄링 알고리즘 (0) | 2025.11.18 |
|---|---|
| 🧵 프로세스와 스레드 (0) | 2025.11.18 |
| 🗂️ 메모리 관리 (0) | 2025.11.05 |
| 💾 메모리 계층 (0) | 2025.11.05 |
| 🧑⚖️ 운영체제의 역할과 구조 (0) | 2025.11.05 |