[C언어 강좌] 동적 메모리 할당, 배열 메모리 영역 (malloc sizeof 이해) 1. 동적 메모리 할당 시스템으로 부터 메모리를 할당받는다는 것은 시스템에서 사용하고 있지 않은 메모리 영역을 배정받고 이에 대한 주소를 얻는 것이다. 동적 메모리는 "절대" 변수를 통해서 접근할 수 없다. 오로지 포인터 변수에 의해서만이 접근할 수 있다. 포인터 변수에 의해서 접근할 수 있는 영역은 malloc()에 의해서 생성될 수 있으며 세부적인 사항에 들어가기 전에 C프로그램에서의 메모리 구조를 먼저 보도록하자. - 텍스트 영역, text segment - 초기화된 데이터 영역, initialized data segment - 비 초기화된 데이터 영역, Uninitialized data segment - 스택,..
외부 단편화와 버디 시스템 (external fragmentation)커널은 연속적인 페이지 프레임 그룹을 할당하는 견고하고 효율적인 정책을 세워야 한다. 이때 메모리 관리와 관련한 유명한 문제인 '버디 시스템 알고리즘 외부 단편화(buddy system external fragmentation)'를 해결해야 한다. 외부 단편화(external fragmentation)는 다른 크기의 연속적인 페이지 그룹을 빈번하게 할당하고 해제하여, 할당한 페이지 프레임 블록 사이에 작은 여유 페이지 프레임 여러 개가 '산재'하는 현상이다. 그 결과 나중에는 큰 크기의 연속된 페이지 프레임 할당을 요청할 때 이를 담을 충분한 여유 페이지가 있어도 메모리를 할당하지 못할 수 있다. 8개의 페이지 프레임이 사용되고 있지 ..