logo
|
Blog

    [컴퓨터 구조 ②] 실행과 저장의 구조

    컴퓨터 구조 겉핥기 중
    김보람's avatar
    김보람
    Jul 25, 2025
    [컴퓨터 구조 ②] 실행과 저장의 구조
    Contents
    4. 데이터 메모리5. 기계어와 프로그램6. 프로그램 메모리7. 프로그램 메모리와 데이터 메모리💡 시나리오: 영상 파일을 플레이할 때🧠 정리: 두 메모리의 실전 역할

    4. 데이터 메모리

    데이터 메모리는 프로그램이 실행 중일 때 숫자, 문자, 배열, 객체 등의 데이터 값들을 저장하는 공간.

    📌 구조와 예시

    • RAM(주기억장치):

      • 데이터를 임시로 저장하고, 전원이 꺼지면 사라짐.

      • 예: 게임에서 캐릭터의 체력, 위치 값 등이 이곳에 저장됨.

    • 주소 기반 접근:

      • 데이터는 모두 특정 "주소"에 저장됨. 예: 0x0000AB10 위치에 50이라는 값 저장.

    • 변수 저장 예시:

      int a = 5; int b = a + 2;
      • a의 값 5는 메모리의 한 주소에 저장되고,

      • b는 a의 값을 읽어서 연산 후 또 다른 주소에 저장됨.

    🧠 기억해야 할 것

    • CPU는 직접 데이터 메모리에 접근 못함 → 레지스터에 불러와서 연산 후 다시 저장

    • 스택(Stack): 함수 호출 시 생기는 지역 변수 저장

    • 힙(Heap): 동적 할당된 메모리 공간 (예: malloc())


    5. 기계어와 프로그램

    컴퓨터는 오직 기계어, 즉 0과 1로 구성된 명령어만 이해할 수 있다.

    📌 명령어 형태

    • 예: 10110000 01100001

      • 앞의 8비트는 명령 종류 (예: 데이터를 레지스터로 이동)

      • 뒤의 8비트는 실제 값이나 주소

    💡 예시로 보는 실행 흐름

    int x = 10;
    x = x + 5;

    이 코드는 아래처럼 동작함:

    1. 기계어로 변환 (컴파일됨)

    2. x에 10 저장 → MOV R1, 10

    3. x + 5 계산 → ADD R1, 5

    4. 결과 다시 x 위치에 저장 → MOV [주소], R1

    🧠 기억할 것

    • 기계어 → CPU 직접 실행

    • 어셈블리어는 사람이 읽기 편한 기계어 형태 (예: MOV AX, 5)

    • 컴파일러가 고급 언어를 기계어로 번역함


    6. 프로그램 메모리

    프로그램 메모리는 실행되는 기계어 코드가 저장된 공간

    📌 어떻게 사용될까?

    • 프로그램 실행 시, 컴파일된 결과가 RAM의 특정 구역(예: 0x400000)에 로드됨.

    • CPU는 Program Counter를 통해 한 줄씩 명령어를 읽음.

    💡 예시

    int main() {
      printf("Hello");
    }

    → 컴파일 후:

    1. printf 관련 코드가 메모리 특정 위치에 저장됨

    2. CPU는 해당 주소로 이동해 실행

    🧠 중요 포인트

    • 이 공간은 보통 읽기 전용

    • 악성코드 방지를 위해 데이터 공간과 분리해 보호함


    7. 프로그램 메모리와 데이터 메모리

    💡 시나리오: 영상 파일을 플레이할 때

    바탕화면의 movie.mp4 파일을 더블클릭해서 영상을 재생한다고 가정해볼때
    컴퓨터 메모리(RAM)에는 다음과 같은 일이 벌어진다

    🔹 1단계: 영상 플레이어 프로그램이 실행됨

    • 예: VLC Media Player 실행

    • 이 프로그램의 기계어 코드(명령어들)가 운영체제에 의해 RAM의 프로그램 메모리 영역에 로드됨

    • 이 메모리는 실행할 코드만 저장하는 공간으로, 예:

      • 파일 열기

      • 화면 렌더링

      • 오디오 디코딩

      • 재생 버튼 처리 등

    → 이 부분이 프로그램 메모리 (명령어 메모리)임

    🔸 2단계: 영상 데이터(.mp4)가 메모리에 로드됨

    • 영상 파일의 실제 내용(화면, 소리, 자막 등)은 별도로 RAM의 데이터 메모리에 로드됨

    • 이는 CPU가 계산하거나 연산하는 데이터이고, 계속 변하거나 처리됨

      • 예: 동영상 프레임 → 디코딩 → 화면 출력

      • 오디오 신호 → 디코딩 → 스피커 출력

    → 이 부분이 데이터 메모리

    🧠 정리: 두 메모리의 실전 역할

    구분

    역할

    예시 (영상 재생 시)

    프로그램 메모리

    명령어 저장

    VLC 프로그램 코드: 화면 그리기, 버튼 클릭 처리 등

    데이터 메모리

    연산 데이터 저장

    영상 파일 내용, 버퍼링된 프레임, 디코딩 중간 결과 등

    Share article
    Contents
    4. 데이터 메모리5. 기계어와 프로그램6. 프로그램 메모리7. 프로그램 메모리와 데이터 메모리💡 시나리오: 영상 파일을 플레이할 때🧠 정리: 두 메모리의 실전 역할

    김보람 | 930802qhfka@gmail.com

    RSS·Powered by Inblog