CS

[CS] 메모리 할당 방식에 대한 나름의 이해

Dong's Universe 2023. 10. 27. 00:34

크게 두 가지로 나뉜다.

1. 연속 메모리 할당 방식: 물리적으로도 프로세스의 요소들이 연속적으로 배치된다. 고정 분할 방식과 가변 분할 방식이 있다.

고정 분할 방식은 메모리를 동일하게 쪼개 메모리에 올린다. 하지만 프로세스 메모리가 크면 못올라가게 된다. 또한 내부 단편화의 문제가 발생한다.

가변 분할 방식은 프로세스마다 크기에 맞게 할당을 해주는 것이다. 이렇게 되면 외부 단편화의 문제가 생길 수 있다.

배치하는 방법에는 세가지가 있다

최초 적합: 여유 공간을 찾는 즉시 할당한다.

최적 적합: 찾아보고 가장 적은 공간에 배치한다

최악 적합: 찾아보고 가장 큰 공간에 배치한다. 이러면 외부 단편화가 생길 위험이 커진다.

외부 단편화 문제를 해결하는 방법에는 메모리 압축이 있다. 메모리 압축이란 남은 메모리들을 하나로 합치는 것이다.

 

2. 비연속 메모리 할당 방식: 프로세스의 메모리 영역을 나눠서 할당한다. 물리적으로 떨어질 수 있다. 페이징 방식과 세그먼테이션 방식이 있다.

페이징 방식은 논리 메모리를 페이지로 나누고 물리메모리를 프레임으로 나누어 페이지와 프레임을 일대일 대응시키는 것이다. 이때 대응시켜주는 역할을 페이지테이블이 해준다. 장점은 외부 단편화를 줄일 수 있다는 것이지만 단점은 내부 단편화가 생길 수 있다는 것이다. 또한 페이지테이블이라는 오버헤드가 생긴다. 프레임과 페이지를 더 작게 만들수록 내부 단편화는 나아지지만 페이지 테이블 오버헤드가 더 커진다.

페이지테이블에는 세가지 방법이 있다.

계층적 페이징, 해시 페이지 테이블, 역 페이지 테이블

계층적 페이징은 페이징하는 단계를 두 번이상 두는 것이다.

 

세그먼테이션 방식은 프로세스를 코드 데이터 스택으로 나누어서 각각의 영역별로 관리하는 것이다. 이때 메모리의 시작 주소와 할당 길이인 리밋을 정한다. 이 방식의 장점은 역할별로 나누어져 있기에 보호하기에 좋다. 또한 내부단편화가 없다. 하지만 할당 및 해제가 되며 외부 단편화의 문제가 생긴다

 

Reference


https://www.yes24.com/Product/Goods/121769526 

 

기술 면접 대비 CS 전공 핵심요약집 - 예스24

1분 1초가 아쉬운 취업/이직 준비생을 위해기술 면접에 필요한 CS 전공의 핵심 내용만 간추렸다!비전공자는 물론 IT 전공자라도 광범위한 CS 전공 중에 어떤 내용이 출제될지 감을 잡기 어렵다. 서

www.yes24.com