728x90
반응형
시스템 프로그래밍의 꽃인 멀티 스레딩을 배우기 전 메모리 구조를 잘 알아야
임계영역과 뮤텍스를 좀 더 쉽게 이해할 수 있다..!!
stack 과 heap 공간의 차이를 알면 코딩테스트를 준비할 때에도 도움이 될 수 있다.
(stack / heap 의 메모리 공간 제한이 있는 경우가 있다)
메모리
0과 1로된 CPU 명령어를 저장한다.
메모리 공간을 각 프로세스마다 나누어서 사용하고, 프로세스마다 세부적인 공간을 가진다.
프로세스 구성
하나의 프로세스는 text / data / bss / stack / heap 으로 구성되어있다.
text | 코드 영역 |
data | 초기화된 전역변수 |
bss | 초기화 안된 전역변수 |
heap | malloc으로 만든 변수 |
stack | 지역변수 |
위와 같이 세그먼트가 구성되어있다.
int data = 32; //초기화된 전역변수
int bss; // 초기화 안된 전역변수
int main(){
int stack = 31; //지역변수
int *heap = (int *)malloc(4); //malloc으로 만든 변수
return 0;
}
728x90
반응형
'임베디드' 카테고리의 다른 글
[Thread] POSIX 멀티스레드 예시 작성하기 (0) | 2022.04.19 |
---|---|
[Thread] 멀티프로세스와 멀티스레드 (0) | 2022.04.18 |
[시스템] 폰노이만 구조와 캐시메모리 (0) | 2022.04.16 |
[C언어] Byte / Bit 단위 데이터 파싱 (0) | 2022.04.12 |
[C언어] 문자열 파싱 2 - sscanf sprintf strtok strchar strstr strtol (0) | 2022.04.11 |