본문 바로가기
Computer Science/Operating System

Memory API란?

by JuHy_ 2019. 4. 22.

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