Skip to main content

02. 컴퓨터의 구조와 성능 향상

1. 컴퓨터의 기본 구성

1-1. 하드웨어 구성

  • CPU & Memory
    • CPU - 명령어 해석하여 실행하는 장치
    • 메모리 - 작업에 필요한 프로그램과 데이터를 저장하는 장소
  • 입출력장치
    • 입력장치 - 외부의 데이터를 컴퓨터로 입력하는 장치
    • 출력장치 - 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치
  • 저장장치 - 메모리에 비해서 느리지만 가격이 저렴하고 전원과 상관 없이 반영구 저장이 가능
  • 메인보드 - 다양한 부품을 연결하고 전원을 공급해 주는 커다란 판
    • 버스 - 메인보드에서 각 장치를 연결하여 데이터가 지나다니는 통로

1-2. 폰노이만 구조

  • 폰노이만 구조 - CPU, 메모리, 입출력장치, 저장장치가 버스로 연결된 구조

    모든 프로그램은 메모리에 올라와야 실행할 수 있다.

1-3. 요리사 모형

  • 프로세스 관리 ↔ 요리 방법 결정
  • 메모리 관리 ↔ 도마 정리
  • 저장장치 관리 ↔ 보관 창고 정리

1-4. 기초 용어 정리

  • 클록 - 컴퓨터에서 일정한 박자를 만들어 내는 것
    • 펄스 & 클록 틱 - 클록에 의해 일정 간격으로 만들어지는 틱
    • 헤르츠(Hz) - CPU의 성능을 나타낼 수 있는 단위
  • 시스템 버스 - 메모리와 주변장치를 연결하는 버스 (메인보드의 동작 속도)
  • 프로그램 - 컴퓨터에 알려줄 작업을 하나로 모은 것
  • 기계어 - 컴퓨터가 이해할 수 있는 언어
  • 어셈블리어 - 0과 1의 이진수를 문자 형태 (전문가만 사용 가능)
  • 저급 언어 - 기계어에 가까운 프로그래밍 언어
  • 고급 언어 - 일반인이 이해할 수 있는 프로그래밍 언어
  • 소스 코드 → 기계어 (기계어 번역 과정)
    • 컴파일
    • 인터프리터
  • 자료 구조
    • 큐 - FIFO
    • 스택 - FILO
    • 배열 - 형태가 같은 자료가 연속적으로 저장되는 형태
    • 연결 리스트 - 데이터를 포인터로 연결

2. CPU와 메모리

2-1. CPU의 구성과 동작

  • CPU(중앙 처리 장치)는 컴퓨터의 두뇌 역할을 하며 연산과 제어를 담당
    • ALU(Arimethtic Logic Unit) - 산술 및 논리 연산
    • CU(Control Unit) - 명령어의 해석 및 실행을 제어
    • 레지스터(Register) - CPU 내부의 작은 기억 장치로 데이터와 명령어, 연산 결과 등을 임시로 저장

2-2. 메모리 종류와 부팅

  • 메모리는 데이터를 저장하는 장치로 주로 RAM(Random Access Memory)과 ROM(Read Only Memory)로 나뉨
    • RAM은 일시적으로 데이터를 저장하며 전원이 꺼지면 데이터가 사라짐 (휘발성)
    • ROM은 초기 부팅 정보나 시스템 기본 소프트웨어 등을 영구적으로 저장 함
      • 컴퓨터가 부팅되면 ROM에 저장된 부트로더(= 부트스트랩)가 CPU에 의해 실행되어 OS를 RAM으로 불러 옴

3. 컴퓨터 성능 향상 기술

3-1. 버퍼(Buffer)

  • 버퍼는 데이터를 임시로 저장하는 메모리 영역으로 두 장치 또는 프로세스 간의 데이터 전송 속도 차이를 조절하는 데 사용 됨

3-2. 저장장치의 계층 구조(Memory Hierarchy)

  • 저장장치의 계층 구조는 속도와 용량, 비용을 고려하여 여러 수준으로 구성됨
    • Register > Cache > RAM > SDD > HDD

3-3. 인터럽트(Interrupt)

  • 인터럽트는 CPU가 현재 처리 중인 작업을 중단하고 긴급하게 처리해야 할 작업(예: 입출력 요청)을 처리한 후 원래 작업으로 돌아가게 하는 기능
    • 쉽게 키보드, 마우스 등을 조작한다던지 작업 명령어 또는 강제 리부트 등

3-4. 직접 메모리 접근(DMA)

  • DMA(Direct Memory Access)는 CPU의 개입 없이 주변장치가 메모리에 직접 접근하여 데이터를 전송할 수 있게 해 데이터 전송 효율이 향상 시키는 기술
    → 메모리 접근 권한은 CPU에게만 있어 입출력 관리자는 접근이 불가하기 때문

3-5. 메모리 맵 입출력(MMIO)

  • 메모리 맵 입출력은 입출력 장치를 메모리 주소 공간에 매핑하여 메모리 접근 방식으로 입출력 장치를 제어하는 기술
    → CPU가 사용하는 메모리 공간과 입출력 관계자의 메모리 공간이 분리되어 있음

3-6. 사이클 훔치기

  • 사이클 훔치기는 CPU와 입출력 관계자가 동시에 메모리에 접근하려 할 때 CPU가 양보해주는 것
    → 입출력 장치의 속도가 CPU보다 느리기 때문

4. 멀티 프로세싱

4-1. 멀티코어 시스템

  • 단일 CPU 칩에 여러 개의 처리 코어를 포함하는 시스템
    • 각 코어는 독립적인 연산 단위로서 작동 (자원 공유 X)
    • 여러 작업을 동시에 처리할 수 있어 성능이 향상

4-2. CPU 멀티스레드

  • 단일 코어가 동시에 여러 스레드를 처리할 수 있게 하는 기술
    • 자원 사용의 효율성을 높이고 처리 성능을 개선
    • 같은 프로세스 안에서 자원 공유 (쓰레드의 Stack만 분리 됨)
      • Multi Threading - 하나의 CPU에서 여러 스레드를 처리(Logical)
      • Hyper Threading - 하나의 CPU에서 CPU가 두개인 것 처럼 사용해 스레드를 동시에 처리(Physical)