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