크래프톤 정글/TIL

[크래프톤 정글 5기] week06 malloc-lab 주차 여섯번째 날, 페이징/세그먼테이션, DMA

양선규 2024. 4. 30. 15:50
728x90
반응형

페이징과 세그먼테이션

세그먼테이션(Segmentation)

- 메모리를 세그먼트단위로 나누는 방법

- 각 세그먼트는 시작 길이와 주소를 가지며, 다른 유형의 데이터(코드, 데이터, 스택 등)을 위해 사용됨

- 메모리를 유연하게 관리할 수 있게 하며, 프로그램의 논리적 구조를 반영함

 

페이징(Paging)

- 메모리를 동일한 크기의 블록인 페이지로 나누는 방법

- 각 페이지는 가상 메모리 주소와 매핑되고, 페이지 테이블을 통해 물리적 메모리 주소로 변환됨

- 메모리 관리를 단순화시키고 낭비를 줄이며, 프로그램 간 메모리 충돌을 방지함

 

세그먼테이션 : 장점

- 메모리를 논리적 단위로 나눠, 프로그램 구조를 반영한다.

- 세그먼트별 보호/공유가 용이하다.

세그먼테이션 : 단점

- 외부 단편화 발생 가능성

- 메모리 관리가 복잡해질 수 있음

 

페이징 : 장점

- 외부 단편화 문제 해결

- 메모리 관리가 상대적으로 단순함

페이징 : 단점

- 내부 단편화 가능성

- 페이지 테이블 관리에 추가적인 메모리 필요

 

 

DMA(Direct Memory Access)

- CPU 중재 없이 주변장치가 메모리에 직접 접근할 수 있는 기능

- 주변장치 : HDD, 사운드카드, 그래픽카드, NIC, USB 컨트롤러, 키보드, 마우스 등 입출력장치 등등..

- 주변장치와 메모리의 데이터 전송 과정에서 CPU가 필요하지 않으므로, CPU는 다른 작업에 더 힘을 쏟을 수 있다.

- 주변장치를 DMA로써 동작하게 하는 것이 일반적으로 성능 향상과 이어지게 된다.

- 특히 I/O 작업이 많으면 성능 향상이 두드러진다.

 

-> CPU 부하가 감소하여 전체 시스템 효율 향상

-> 데이터 전송 속도가 향상됨으로써, 전반적인 시스템 응답 시간 단축

728x90
반응형