일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 라이브러리
- 데이터베이스
- 기초
- 깃허브
- MySQL
- 파이썬
- vscode
- 판다스
- visual studio code
- matplotlib
- 데이터분석
- OpenCV
- 원격저장소
- 디버깅
- 단축키
- SQL
- 우분투
- 머신러닝
- 아나콘다
- 프로그래머스
- 가상환경
- 리눅스
- 플라스크
- 엑셀
- 역할
- 운영체제
- 디렉토리
- 코랩
- 예제
- 에러
Archives
- Today
- Total
취미와 밥줄사이
[ C ] 메모리의 구조 본문
메모리의 구조
- 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드 되어야함
- 프로그램에서 사용되는 변수들을 저장할 메모리도 필요함
- 컴퓨터의 운영체제는 프로그램읠 실행을 위해 다양한 메모리 공간을 제공
- 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간
- code 영역
- data 영역
- stack 영역
- heap 영역
코드 영역
- 코드를 실행하기 위해 저장되어있는 영역
- 프로그램을 실행시키기 위해 구성되는 것들이 저장되는 영역
- 명령문, 제어문, 함수, 상수들이 이 영역에 저장됨
- 작성한 소스코드가 들어가는 부분
- 텍스트 영역
데이터 영역
- 우리가 작성한 코드에서 전역변수, 정적변수 등이 저장되는 공간
- 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 소멸되는 영역
힙 영역
- 사용자에 의해 관리되는 영역
- 동적으로 할당 할 변수들이 여기에 저장
- 동적할당 영역
- 프로그래머가 할당/해제하는 메모리 공간
스택 영역
- 함수를 호출할 때 지역변수, 매개변수들이 저장되는 공간
- 함수가 종료되면 해당 함수에 할당된 변수들은 메모리에서 해제됨
- 프로그램이 자동으로 사용하는 임시 메모리 영역
- 함수 호출이 완료되면 사라짐
32bit 운영체제 vs 64bit 운영체제
- 둘의 차이점은 비트의 너비(폭)
- 고속도로에 32개의 차선 vs 64개의 차선
- 데이터 처리 단위
- 2^32 경우수 vs 2^64의 경우의 수
- 43억 vs 1844경
- 메모리 한 칸은 1byte의 크기를 가짐
- 64비트 운영체제는 메모리 한 칸의 주소를 64비트로 표현 = 8바이트
- 32비트 운영체제는 메모리 한 칸의 주소를 32비트로 표현 = 4바이트
프로그램 실행 순서
- 프로그램이 실행하게 되면 OS는 메모리(RAM)을 공간을 할당
- 할당해주는 메모리 공간은 4가지( Code, Data, Stack, Heap)
REFERENCE
http://www.tcpschool.com/c/c_memory_structure
https://all-young.tistory.com/17
'C' 카테고리의 다른 글
[ C ] 정적변수란? (0) | 2022.02.08 |
---|---|
[ C ] 포인터의 개념 (0) | 2022.02.07 |
[Selenium] PermissionError: [Errno 13] Permission denied (0) | 2021.05.29 |
[Data Analysis] seaborn figure 사이즈 조절하는 법 (0) | 2021.05.13 |
[Data_Analysis] 공공데이터 분석 - 인천에 어떤 커피 브랜드가 많을까? (0) | 2021.05.13 |