GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (166) N
    • 크래프톤 정글 (79) N
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 글쓰기
컴퓨터 시스템 : CSAPP 9장 정리 - 9.10 가비지 컬렉터 기초

컴퓨터 시스템 : CSAPP 9장 정리 - 9.10 가비지 컬렉터 기초

9.10 가지비 컬렉션 (Garbage Collection)명시적 할당자(예: C의 malloc 패키지)에서는 프로그램이 malloc과 free 호출을 통해 힙 블록을 직접 할당하고 해제한다. 따라서 프로그램이 더 이상 필요 없는 블록을 명시적으로 해제하지 않으면 메모리 누수가 발생한다.예를 들어, 다음과 같은 C 함수가 있다고 가정한다:void garbage() { int *p = (int *)Malloc(15213); return; /* 이 시점에서 p는 쓰레기가 된다 */}이 경우, p는 함수가 끝날 때 더 이상 참조되지 않지만, 개발자가 free(p) 호출을 빠뜨렸기 때문에 이 블록은 프로그램이 종료될 때까지 힙 공간을 차지하게 된다.가지비 컬렉터는 이런 문제를 해결하기 위해 만들어졌다..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 29.
  • textsms

컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.14 분리 가용 리스트

9.9.14 분리 가용 리스트 (Segregated Free Lists)명시적 가용 시트 문제점 :단일 연결 리스트로 모든 가용 블록을 관리하면, 원하는 크기의 블록을 찾기 위해 모든 블록을 선형 탐색해야 해서 시간이 오래 걸린다.해결책:"분리 저장소 (Segregated Storage)"라는 기법을 사용하여, 크기별로 여러 개의 가용 리스트를 유지한다. 즉, 비슷한 크기의 블록들끼리 따로 모아서 관리하는 것이다.기본 아이디어가능한 블록 크기 전체를 여러 '크기 클래스(size class)'로 나누어 분류한다.예를 들면:{1}, {2}, {3, 4}, {5–8}, ..., {1025–2048}, {2049–4096}, {4097–∞}작은 블록은 세밀하게 구분하고, 큰 블록은 대략적인 크기별로 묶을 수도 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 29.
  • textsms

컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.13 명시적 가용 리스트 Part.2

이전 포스팅에 이어서 명시적 가용 리스트를 구현해 보겠다.2025.04.27 - [크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리] - 컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.13 명시적 가용 리스트 Part.1 컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.13 명시적 가용 리스트 Part.19.9.13 명시적 가용 리스트 (Explicit Free Lists)1. 명시적 가용 리스트의 필요성암시적 가용 리스트(Implicit Free List)는 구현이 쉽지만, 힙에 블록이 많아질수록 malloc 호출 시 모든 블록을 순차적으로 탐www.gowoong.comexstend_heapextend_heap 함수의 경우 변경이 없다. 그래서 해당 함수는 이전 포스팅을 확인하라coa..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 27.
  • textsms
컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.13 명시적 가용 리스트 Part.1

컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.13 명시적 가용 리스트 Part.1

9.9.13 명시적 가용 리스트 (Explicit Free Lists)1. 명시적 가용 리스트의 필요성암시적 가용 리스트(Implicit Free List)는 구현이 쉽지만, 힙에 블록이 많아질수록 malloc 호출 시 모든 블록을 순차적으로 탐색해야 한다. 이로 인해 탐색 시간이 길어져 성능이 크게 저하된다. 이를 해결하기 위해 명시적 가용 리스트를 사용한다.2. 명시적 가용 리스트란 무엇인가가용 블록을 포인터를 통해 직접 연결하여 관리하는 리스트를 의미한다.가용 블록의 내부(payload) 공간에이전 가용 블록을 가리키는 포인터(pred)다음 가용 블록을 가리키는 포인터(succ)를 저장하여 이중 연결 리스트(doubly linked list) 형태로 구성한다.이 방식을 사용하면 가용 블록만 빠르게 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 27.
  • textsms

컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.12 종합 설계 : 간단한 할당기의 구현 Part.2

2025.04.27 - [크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리] - 컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.12 종합 설계 : 간단한 할당기의 구현 Part.1 컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.12 종합 설계 : 간단한 할당기의 구현 Part.1CSAPP 9.9.12 '간단한 할당기의 구현(Putting It Together: Implementing a Simple Allocator)'할당기를 만드는 것은 까다로운 작업이다. 블록 포맷, 가용 리스트 포맷, 배치 정책, 분할 정책, 통합 정책 등 다양한 선www.gowoong.com이전 포스팅에 이어서 묵시적 가용 리스트를 사용하는 할당기를 구현해 보겠다.CSAPP 9.9.12 '간단한 할당기의 구현(..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 27.
  • textsms
컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.12  종합 설계 : 간단한 할당기의 구현 Part.1

컴퓨터 시스템 : CSAPP 9장 정리 - 9.9.12 종합 설계 : 간단한 할당기의 구현 Part.1

CSAPP 9.9.12 '간단한 할당기의 구현(Putting It Together: Implementing a Simple Allocator)'할당기를 만드는 것은 까다로운 작업이다. 블록 포맷, 가용 리스트 포맷, 배치 정책, 분할 정책, 통합 정책 등 다양한 선택지가 존재하기 때문이다. 또한 안전한 타입 시스템 밖에서 포인터 캐스팅과 산술 연산 같은 오류를 유발하기 쉬운 저수준 프로그래밍을 해야 하는 것도 도전 과제다.간단한 할당기라도 코드 양은 많지 않지만, 디테일이 매우 섬세하여 실수가 용납되지 않는다. 고급 언어에 익숙한 학생들은 이 스타일의 프로그래밍을 처음 접할 때 벽에 부딪히는 경우가 많다. 이를 극복하기 위해, 묵시적 가용 리스트(implicit free list) 와 즉시 경계 태그 통..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/9장 가상 메모리
  • · 2025. 4. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (166) N
    • 크래프톤 정글 (79) N
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #AWS 자격증
  • #aws #iot
  • #IOT
  • #saa-c03
  • #Cloud Practitioner
  • #serverless
  • #CLF-C01
  • #AWSKRUG
  • #AWS Community Day
  • #AWS
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바