Memory API란?
Memory API란 사용자가 메모리를 관리할 수 있도록 제공하는 System Call이다.
대표적인 Memory API
- malloc() : heap 영역에 메모리 공간을 할당한다.
- sizeof() : 할당된 메모리 영역의 크기를 가져온다.
- free() : malloc을 통해 할당된 메모리 공간을 반환한다.
주의사항
char *src = "hello"; // character string
char *dst; // unallocated
strcpy(dst, src); // Segmentation Fault!
1. 메모리 할당 후 접근한다.
int *x = (int*)malloc(sizeof(int)); // memory allocate
printf("*x = %d\n", *x); // uninitialized memory access
2. 메모리 할당 후에는 초기화한다.
3. 사용하지 않는 메모리는 반환한다.
-> 계속 쌓일 경우 Out of memory 발생
4. 사용이 끝난 후 메모리를 반환한다.
-> 접근할 수 없는 메모리 발생
int *x = (int*)malloc(sizeof(int)); // memory allocate
free(x); // free memory
free(x); // undefined error
5. 반환한 메모리를 다시 반환하지 않는다.
'Computer Science > Operating System' 카테고리의 다른 글
Segmentation이란? (0) | 2019.04.23 |
---|---|
Virtual Address Space와 Address Translation (0) | 2019.04.23 |
CPU Scheduling 기법 (0) | 2019.04.22 |
System Call이란? (0) | 2019.04.22 |
Process와 Process API란? (0) | 2019.04.22 |