[크래프톤 정글 5기] week06 malloc-lab 주차 여섯번째 날, 페이징/세그먼테이션, DMA
페이징과 세그먼테이션
세그먼테이션(Segmentation)
- 메모리를 “세그먼트”단위로 나누는 방법
- 각 세그먼트는 시작 길이와 주소를 가지며, 다른 유형의 데이터(코드, 데이터, 스택 등)을 위해 사용됨
- 메모리를 유연하게 관리할 수 있게 하며, 프로그램의 논리적 구조를 반영함
페이징(Paging)
- 메모리를 동일한 크기의 블록인 “페이지”로 나누는 방법
- 각 페이지는 가상 메모리 주소와 매핑되고, 페이지 테이블을 통해 물리적 메모리 주소로 변환됨
- 메모리 관리를 단순화시키고 낭비를 줄이며, 프로그램 간 메모리 충돌을 방지함
세그먼테이션 : 장점
- 메모리를 논리적 단위로 나눠, 프로그램 구조를 반영한다.
- 세그먼트별 보호/공유가 용이하다.
세그먼테이션 : 단점
- 외부 단편화 발생 가능성
- 메모리 관리가 복잡해질 수 있음
페이징 : 장점
- 외부 단편화 문제 해결
- 메모리 관리가 상대적으로 단순함
페이징 : 단점
- 내부 단편화 가능성
- 페이지 테이블 관리에 추가적인 메모리 필요
DMA(Direct Memory Access)
- CPU 중재 없이 주변장치가 메모리에 직접 접근할 수 있는 기능
- 주변장치 : HDD, 사운드카드, 그래픽카드, NIC, USB 컨트롤러, 키보드, 마우스 등 입출력장치 등등..
- 주변장치와 메모리의 데이터 전송 과정에서 CPU가 필요하지 않으므로, CPU는 다른 작업에 더 힘을 쏟을 수 있다.
- 주변장치를 DMA로써 동작하게 하는 것이 일반적으로 성능 향상과 이어지게 된다.
- 특히 I/O 작업이 많으면 성능 향상이 두드러진다.
-> CPU 부하가 감소하여 전체 시스템 효율 향상
-> 데이터 전송 속도가 향상됨으로써, 전반적인 시스템 응답 시간 단축