Skip to content

C 언어를 이용한 Malloc Lab 구현 ( implicit, explicit )

Notifications You must be signed in to change notification settings

yusokk/malloclab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

C 언어를 이용한 Malloc Lab

  • 참여자 : 김용기, 김유석, 이승민
  • 프로젝트 기간 : 2021.01.15 ~ 2021.01.21
  • 명시적 메모리 할당 :
    • C 표준 라이브러리는 malloc 패키지라고 하는 명시적 할당기 제공
    • Malloc 함수를 호출해 블록을 할당하며, free 함수를 호출해 블록을 반환
    • 동적 메모리 할당을 사용하는 이유 : 종종 프로그램을 실제 실행시키기 전에는 자료 구조의 크기를 알 수 없는 경우들이 있기 때문
  • Implicit 방식 동적 메모리 할당 :
    • 가용 블록이 헤더 내 필드에 의해 묵시적으로 연결
    • 단순성이 장점
    • 블록을 배치하는 것과 같은 가용 리스트를 탐색해야 하는 연산들의 비용이 힙에 있는 전체 할당된 블록과 가용 블록의 수에 비례 (범용성이 떨어짐)
    • 블록 구성 :
      • 1워드 헤더(블록 크기, 가용 상태)
      • 데이터
      • 추가적인 패딩(외부 단편화 극복 전략, 정렬 요구사항 만족)
    • 더블 워드 정렬
    • First fit, next fit, best fit 중 first fit 적용
    • 경계 태그를 통한 상수 시간 내 블록 연결
  • Explicit :
    • 가용 블록의 본체는 프로그램에서 필요하지 않기 때문에 이 자료구조를 구현하는 포인터들은 가용 블록의 본체 내에 저장 가능
    • Predecessor와 successor 포인터를 포함하는 이중 연결 가용 리스트 구성
    • LIFO tnstjdml first fit이 아닌 리스트를 주소 순으로 관리하는 형태로 구현

About

C 언어를 이용한 Malloc Lab 구현 ( implicit, explicit )

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages