정글 44일차

윤종성·2024년 8월 13일
0

오늘 배운 것들

1. 힙 정렬

그냥 최대(최소)힙 만들어서 루트를 하나씩 빼면 된다.
배열 내에서 최대 값을 맨 뒤로 보내서 제자리 정렬로 구현해야 한다.

2. 페이징과 세그멘테이션

세그멘테이션(Segmentation)과 페이징(Paging)은 가상 메모리의 페이지를 어떤 방식으로 분할할 지에 대한 정책이다.

페이징

가상 메모리를 동일한 크기의 '페이지'로 나눈다.
각 페이지는 가상 메모리 주소와 매핑되며, 페이지 테이블을 통해 물리적 메모리 주소로 변환됩니다.

  • 장점:
    - 외부 단편화에서 자유로움.(페이지가 모두 같은 크기)
    - 메모리 관리가 상대적으로 단순함.
  • 단점:
    - 내부 단편화 발생 가능성이 있음.(페이지 내 미 사용 공간)
    - 페이지 테이블 관리에 추가적인 메모리가 필요.
세그멘테이션

메모리를 세그먼트로 나눈다.
세그먼트는 가상 메모리의 코드, 데이터, 스택 공간을 의미한다.

  • 장점:
    - 메모리를 논리적 단위로 나누어 프로그램의 구조를 반영함.
    - 세그먼트 별 보호와 공유가 용이함.
  • 단점:
    - 외부 단편화 발생 가능성이 있음.
    - 메모리 관리가 복잡.

3. 문제풀이

수레 움직이기

https://school.programmers.co.kr/learn/courses/30/lessons/250134

4. malloc-lab

묵시적 가용 리스트 구현
명시적 가용 리스트 구현중, 구조체를 사용하면 편리하다.

profile
알을 깬 개발자

0개의 댓글