paging

    [운영체제] 비연속할당(Noncontiguous allocation) - 페이징(Paging)

    목차 🤔 페이징(Paging)이란? 🙉 페이지 테이블(Page table)과 주소 변환 🙈 페이징의 문제점 내부 단편화(Internal fragmentation) 페이지 테이블의 크기 🤔 페이징(Paging)이란? 기존 Segmentation과 Contiguous allocation의 경우, 남은 메모리 총량이 충분해도 작은 Hole들을 활용하지 못하는 외부 단편화 문제가 있었습니다. 특히, First-fit의 경우 50% rule에 의해 메모리의 1/3이 낭비되는 문제가 발생하기도 하였습니다. 이러한 문제들의 공통적인 특징은 가변 분할이었습니다. 프로세스마다, 세그먼트마다 크기가 각기 다르다보니 메모리에는 각기 다른 Hole들이 발생하였고, 이러한 Hole들은 대부분 낭비된다는 문제였습니다. 그래서 등..

    [운영체제] Contiguous Allocation의 문제점 - External Fragmentation(외부단편화)

    목차 💥 Contiguous allocation의 문제점 🤔 External Fragmentation이란? 👀 Compaction(압축)을 활용한 외부 단편화 해결 💥 Contiguous allocation의 문제점 이전 포스팅에서 Contiguous allocation은 프로세스를 메모리에 분할해서 적재하지 않고 한 번에 통째로 적재하는 방법론이라고 설명했습니다. Contiguous allocation은 CPU의 MMU(Memory Management Unit)가 논리 주소를 물리 주소로 translation 함에 있어 단순함을 제공해준다는 장점이 있었습니다. 그러나, 단지 단순함때문에 값비싼 HW자원 중 하나인 Memory를 낭비하는 문제가 발생했습니다. 🤔 External Fragmentation이..