반응형
2019년 01월 17일 <프로세스 구조와 힙>
Heap 이란?
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> #include <stdlib.h> int main(){ int *data; data = (int *)malloc(sizeof(int)); *data = 1; printf("%d\n", *data); return 0; } | cs |
Heap라는 공간은 동적 데이터를 저장하는 공간이다. c언어에서는 malloc()을 통해서 heap에 저장한다.
<프로세스 구조와 스텍오버플로우>
stack
heap
data
->BSS : 초기화 되지 않은 전역 변수를 저장
->DATA : 초기값이 있는 전역 변수를 저장
code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> #include <stdlib.h> int global_data1; //BSS에 들어감 int global_data2 = 1; //DATA에 들어감 int main(){ int *data; //지역 변수 HEAP에 data = (int *)malloc(sizeof(int)); *data = 1; printf("%d\n", *data); return 0; } | cs |
> 스택 오버플로우 : 주로 해커들의 공격에 활용되었음
반응형
'군대에서 한것 > Operating System' 카테고리의 다른 글
190128/27/컨텍스트 스위칭 원리 (0) | 2019.01.28 |
---|---|
190102&0109/21~22/인터럽트 종류 & 인터럽트 내부 동작 (0) | 2019.01.02 |
190101/19~20/스케쥴링 알고리즘 조합 & 인터럽트란 (0) | 2019.01.01 |
181225/18/선점형과 비선점형 스케줄러 (0) | 2018.12.23 |
181223/17/프로세스 상태기반 스케줄링 알고리즘 기본 (0) | 2018.12.23 |