Paging vs Segmentation

Paging vs. Segmentation Paging과 Segmentation은 운영체제의 메모리 관리 기법이다. Paging: 프로세스의 주소 공간을 고정 크기의 페이지로 나누어 관리한다. 물리적 메모리를 같은 크기의 프레임으로 나눈다. 외부 단편화 문제를 해결하고 메모리 할당을 단순화한다. Segmentation: 프로세스를 논리적 단위인 세그먼트로 나누어 관리한다. 각 세그먼트의 크기는 가변적이다. 프로그램의 논리적 구조를 반영하여 메모리를 관리한다. Paging과 Segmentation 비교 특성 Paging Segmentation 분할 단위 고정 크기 페이지 가변 크기 세그먼트 주소 변환 페이지 테이블 사용 세그먼트 테이블 사용 외부 단편화 없음 발생 가능 내부 단편화 발생 가능 거의 없음 메모리 활용 효율적 유연함 구현 복잡도 상대적으로 간단 복잡함 공유와 보호 페이지 단위 세그먼트 단위 사용자 관점 투명함 프로그램 구조 반영 할당/해제 속도 빠름 상대적으로 느림 테이블 크기 큼 작음 참고 및 출처

October 5, 2024 · 1 min · Me

세그먼테이션 (Segmentation)

세그먼테이션 (Segmentation) 세그먼테이션(Segmentation)은 운영체제의 메모리 관리 기법 중 하나로, 프로세스를 논리적 단위인 세그먼트로 나누어 관리하는 방식이다. 세그먼테이션의 기본 개념을 이해하기 위해, 먼저 프로그램의 구조를 생각해보자. 일반적인 프로그램은 코드 영역, 데이터 영역, 스택 영역 등 서로 다른 목적을 가진 영역들로 구성된다. 세그먼테이션은 이러한 논리적 단위들을 각각의 세그먼트로 관리한다. Source: https://www.geeksforgeeks.org/segmentation-in-operating-system/ 세그먼테이션의 주요 구성 요소와 작동 방식 세그먼트 테이블(Segment Table): 1 2 3 4 5 6 7 8 9 10 struct SegmentTableEntry { uint32_t base; // 세그먼트의 시작 주소 uint32_t limit; // 세그먼트의 크기 bool present; // 메모리 존재 여부 struct { bool read; // 읽기 권한 bool write; // 쓰기 권한 bool execute; // 실행 권한 } protection; }; 주소 변환 과정: 논리적 주소는 다음과 같이 구성된다: ...

October 1, 2024 · 2 min · Me

페이징 (Paging)

페이징 (Paging) 먼저 페이징이 필요한 배경을 이해해보자. 초기 컴퓨터 시스템에서는 프로그램 전체가 물리 메모리에 연속적으로 적재되어야 했다. 이는 두 가지 큰 문제를 발생시켰다: 큰 프로그램은 메모리에 적재하기 어려웠다. 메모리 단편화(fragmentation)가 심각했다. 이러한 문제를 해결하기 위해 페이징이 도입되었다. 페이징의 기본 개념은 프로그램의 논리적 주소 공간과 물리적 메모리를 동일한 크기의 작은 단위로 나누어 관리하는 것이다. 이때 논리적 주소 공간의 단위를 ‘페이지(page)‘라 하고, 물리적 메모리의 단위를 ‘프레임(frame)‘이라고 한다. Source: https://www.geeksforgeeks.org/paging-in-operating-system/ 페이징 시스템의 주요 구성 요소 페이지 테이블(Page Table): ...

October 1, 2024 · 4 min · Me