티스토리 뷰
Text Segment (code segment) 코드 영역
- 작성한 실행 프로그램의 코드가 기계어(Instruction)로 저장되는 영역
- CPU는 저장된 명령어를 하나씩 가져가서 처리
- 프로그램이 시작할 때 저장되고 끝날 때까지 남아 있다.
- read only
Data Segment 데이터 영역
- Main 함수 호출 전 프로그램의 전역 변수, static 변수 등이 저장
- 프로그램 실행되고 끝날 때까지 남아있고 2개의 영역으로 나뉜다.
- BSS Segment(Block Started by Symbol) - Uninitialized Data Segment
- 초기화 되지 않은 전역, static 변수들 → Runtime 시 OS에 의해 자동으로 초기화
- Initialized Data Segment
- 초기화 된 전역, static 변수로 실행 중 접근, 수정 가능
- ROM에 위치한 영역이지만 RAM에 복사 후 값 수정, 저장 가능
- BSS Segment(Block Started by Symbol) - Uninitialized Data Segment
Heap Segment 힙 영역
- 프로그램 실행 중 사용자에 의해 동적으로 할당/해제 되는 영역
- Runtime 시 메모리를 할당하기 때문에 느린 할당 속도
- Reference type(class, array, delegate…) 데이터 저장
- low address → high address
- Runtime 시 크기 결정
Stack Segment 스택 영역
- 함수 호출 시 할당되는 지역 변수, 파라미터 저장
- Value type(struct, enum, primitive) 데이터 저장
- Stack 구조로 함수 호출 시 push, return 시 pop
- 저장 된 함수 호출 정보 = Stack Frame
- High address → low address
- Compile 시 크기 결정, OS에 따라 다름
- 미리 할당 된 공간이기 때문에 Heap에 비해 빠른 할당 속도
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- initializer_list
- 유니티6
- 카카오코딩테스트
- C#
- STL
- 프로그래머스
- unity6
- 문자열정수변환
- trailing return type
- Event
- C++
- 유니티기초
- STL컨테이너
- Algorithm
- delegate
- emplace
- ModernC++
- 유니온파인드
- 스택영역
- 힙영역
- modern C++
- 알고리즘
- dfs
- 코딩테스트
- 빌더패턴
- range based for
- 이진 변환 반복하기
- 팩토리메서드패턴
- 유니티
- UnionFind
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함