* 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
* 번역하는 것을 컴파일, 번역해주는 것을 컴파일러
* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다.
'게임프로그래밍 > 게임 프로그래머 입문 올인원' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] 분기문, 반복문 (0) | 2024.12.18 |
---|---|
[게임 프로그래머 입문 올인원] 산술 연산, 비교 연산, 논리 연산 (0) | 2024.12.16 |
[게임 프로그래머 입문 올인원] 변수, 정수의 원리, 변수의 마무리 (0) | 2024.12.12 |
[게임 프로그래머 입문 올인원] OT (0) | 2024.12.10 |