[Today I Learned 12] 1. 동적 메모리 할당

박윤찬·2022년 5월 12일
0

jungle

목록 보기
18/19
post-thumbnail
  • 동적 메모리 할당이란?
    -컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다.
    -동적 메모리 할당을 사용하는 이유는 프로그램을 실행시키기 전에 자료구조의 크기를 알 수 없는 경우들이 있기 때문이다.
  • 동적 메모리 할당기란?
    힙(heap)이라고 말하는 가상메모리 영역을 관리한다.

1. Malloc Lab을 들어가기 전에

malloc lab을 구현하기 전에 알아야할 개념 몇가지를 정리하려고 한다.

목표 1: 처리량 극대화(즉, 처리 속도)
목표 2: 메모리 이용도 최대화(즉, 메모리 활용도)

2. 단편화

1) 내부 단편화

  • 할당된 블록이 데이터 자체보다 더 클 때 발생한다.
  • 정량화하기가 간단하다. (즉, 할당된 블록의 크기와 디들의 데이터 사이의 차이의 합이다.)

2) 외부 단편화

  • 할당 요청을 만족시킬 수 있는 메모리 공간이 전체적으로 공간을 모았을 때는 충분한 크기가 존재하지만, 이 요청을 처리할 수 있는 단일한 가용블록이 없는 경우 발생한다.
  • 내부 단편화보다는 훨씬 더 측정하기 어려운데, 그 이유는 이전 요청의 패턴과 할당기 구현에만 의존하지 않고 미래의 요청 패턴에 의존하기 때문이다.
  • 측정하기 어렵고 예측하기 불가능하기 때문에 할당기들은 대게 많은 수의 더 작은 가용 블록들보다는 더 적은 수의 더 큰 가용 블록들을 유지하려는 방법을 채택한다.
profile
개인 공부를 위한 블로그입니다.

0개의 댓글