게임프로그래밍/게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 컴퓨터 구조

shine94 2024. 12. 12. 05:24

* CPU, RAM, SSD

 

(1) CPU

 : 컴퓨터의 중앙에서 모든 데이터를 처리하는 장치

 

* CPU가 이해할 수 있는 명령어들의 모음을

  명령어의 집합(Instruction Set) 또는 명령어 집합 구조(Instruction Set Architecture), opcode라고 한다

 

* CPU 명령어 체계는 CISC, RISC가 있다

 

(2) RAM은  4가지 영역으로 나눌 수 있다

 : Code(Text) 영역, Data 영역, Heap 영역, Stack 영역

 

코드(Code) 영역(=Text)

   프로세스가 실행할 코드매크로 상수가 기계어 형태로 저장된 공간

   CPU는 코드 영역에 저장된 명령어를 하나씩 가져와서 실행

   컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only로 지정

   → 이 영역은 세분화하면 code와 rodata 영역으로 나뉘기도 함

        1) code(=text) - 오직 읽기 전용

            우리가 작성한 코드가 컴파일된 후 기계어로 번역되어 저장되어 있는 곳

             EIP 레지스터를 통해 읽어서 코드가 실행됨

            프로그램이 끝날 때까지 메모리에 남아 있음

        2) rodata(read only data) - 오직 읽기 전용

            읽기전용인 데이터가 들어 있음

            ㄴ 주로 상수, 상수형 문자열, printf의 중괄호 부분이 들어감

데이터(Data) 영역

   코드에서 선언한 전역변수정적변수(static)가 저장되는 영역

   프로그램 시작과 함께 할당되며, 프로그램이 종료되면 소멸

   실행 도중에 값이 변경될 수 없게 Read-Write로 지정

    → 이 영역은 세분화 하면 BSS와 data로 나뉨 

        1) BSS

            초기화 값이 없는 전역변수

        2) data

            초기화 값이 있는 전역변수

스택(Stack) 영역

   함수의 호출과 관계되는 지역변수매개변수가 저장되는 영역

   함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸

   이렇게 스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 함

힙(Heap) 영역

   사용자가 직접 메모리 관리할 수 있는 '그리고 해야만 하는' 메모리 영역

   사용자에 의해 메모리 공간이 동적으로 할당되고 해제

 

(3) SSD

 : 보조 기억 장치

 

* 컴퓨터를 구동시키는 핵심 부품은 CPU

 

* 번역하는 것을 컴파일, 번역해주는 것을 컴파일러

 

 

 

 

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다.

   강의_바로가기

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Rookiss | 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로

www.inflearn.com