[매일매일] 백엔드 기술 일기:연속 메모리 할당 기법이란? 운영체제 메모리 관리 기초 정리
운영체제에서 프로세스에 메모리를 할당하는 방식에는 여러 가지가 있습니다.그중 가장 기본적이고 직관적인 방식이 바로 연속 메모리 할당 기법 (Continuous Memory Allocation) 입니다.이 글에서는 연속 메모리 할당 기법의 개념부터, 단편화 문제, 그리고 대표적인 배치 전략까지 정리해보겠습니다.
🖋️ 연속 메모리 할당 기법이란?연속 메모리 할당 기법은 말 그대로,프로세스에 메모리의 연속된 블록을 할당하는 방식입니다.즉, 하나의 프로세스는 메모리 공간 내에서 연속된 주소 범위에만 존재하게 됩니다.✅ 장점구현이 간단하고 관리가 쉽습니다.할당된 메모리가 연속적이라 접근 속도가 빠릅니다.❌ 단점메모리 단편화 문제가 발생하기 쉽습니다.연속된 큰 공간이 필요하기 때문에 유연성이 떨어질 수 있습니다.
🖋️ 고정 크기 할당 vs 가변 크기 할당연속 메모리 할당에는 두 가지 주요 방식이 있습니다.🔷 고정 크기 할당 (Fixed Partitioning)메모리를 고정된 크기로 여러 파티션으로 나누어 각 프로세스에 할당.파티션보다 작은 프로세스는 남는 공간이 생겨 내부 단편화 발생.🔷 가변 크기 할당 (Variable Partitioning)프로세스가 요청한 크기만큼 메모리를 할당.내부 단편화는 없지만, 여러 번 할당/해제가 반복되면 빈 공간이 흩어져 외부 단편화 발생.
🖋️ 단편화 문제연속 메모리 할당의 가장 큰 문제는 메모리 단편화입니다.단편화에는 두 가지가 있습니다.📌 내부 단편화 (Internal Fragmentation)할당된 파티션 크기 > 프로세스 크기 → 남는 메모리 낭비.주로 고정 크기 할당에서 발생.📌 외부 단편화 (External Fragmentation)사용되지 않는 빈 공간들이 여기저기 흩어져 있어,충분한 총 메모리가 남아 있어도 연속된 공간이 없어 할당 불가.주로 가변 크기 할당에서 발생.
🖋️ 배치 전략: 어디에 프로세스를 배치할까?메모리에 여러 빈 공간이 있을 때, 프로세스를 어느 위치에 배치할지 선택하는 전략이 있습니다.🔷 최초 적합 (First Fit)메모리를 순서대로 검색해, 처음으로 프로세스를 넣을 수 있는 공간에 배치.속도가 빠르고 구현이 간단하지만, 단편화가 심해질 수 있습니다.🔷 최적 적합 (Best Fit)모든 빈 공간을 탐색해, 프로세스가 들어갈 수 있는 가장 작은 공간에 배치.메모리 낭비를 최소화하지만 탐색 시간이 오래 걸립니다.🔷 최악 적합 (Worst Fit)모든 빈 공간을 탐색해, 프로세스가 들어갈 수 있는 가장 큰 공간에 배치.큰 공간을 쪼개어 남은 공간을 활용하려는 전략이지만, 효과는 미미한 경우가 많습니다.
🖋️ 더 알아보기💡 참고 자료:https://www.youtube.com/watch?v=bNFLpMUYqSE
https://wikidocs.net/232217
08-4 메모리 할당방식 [TOC] ### 연속 메모리 할당 연속 메모리 할당 방식에서는 프로세스가 메모리 내에서 연속적인 주소 공간을 차지합니다. 이 방식은 메모리를 효율적으로 사용하고 관리하는 데… wikidocs.net
✍️ 마치며연속 메모리 할당 기법은 기본적이지만, 메모리 단편화라는 근본적인 한계가 있어현대의 운영체제에서는 주로 페이징과 세그멘테이션 같은 더 발전된 기법을 사용합니다.하지만 기본 개념을 이해하는 것은 매우 중요하니 꼭 익혀두시길 추천합니다! 😊참고 및 출처:https://hotechstory.tistory.com/160
운영체제 - 페이징과 세그먼테이션 세그멘테이션(Segmentation)세그멘테이션은 메모리 관리 기법 중 하나로 메모리의 효율적인 사용과 프로그램의 보다 유연한 배치를 가능하게 해 준다. 세그멘테이션은 주소 공간을 논리적으로 분할하여 각각의 세그먼트에 대해 대해 별도의 베이스와 바운드 쌍을 할당하여 메모리 관리 장치에 저장하는 방식이다. 세그먼트(Segment)세그먼트는 특정 길이를 가지는 연속적인 주소 공간을 나타내며 일반적으로는 코드, 스택 및 힙 등과 같이 프로그램이나 데이터의 논리적인 부분을 나타낸다. 세그멘테이션을 사용하면 운영 체제는 각 세그먼트를 메모리… hotechstory.tistory.com