728x90
컴퓨터 시스템에서 프로세스의 메모리를 효율적으로 할당하고 관리하는 방법
메모리 관리 전략의 주요 목표
- 효율성: 메모리를 최대한 효율적으로 할당하고, 불필요한 공간 낭비를 줄입니다.
- 보호: 각 프로세스가 서로 독립된 메모리 공간을 사용하게 하여 데이터의 무결성을 유지하고, 권한 없는 접근을 방지합니다.
- 유연성: 메모리 자원을 동적으로 할당하고 회수하여 다양한 크기의 프로세스를 지원합니다.
- 성능 최적화: 메모리 접근 시간을 줄이고, 시스템 전반의 성능을 최적화합니다.
주요 메모리 관리 전략
메모리 관리 전략은 주로 고정 분할(Fixed Partitioning), 가변 분할(Variable Partitioning), 가상 메모리(Virtual Memory) 등으로 분류됩니다.
1. 고정 분할(Fixed Partitioning)
- 개념: 물리 메모리를 여러 고정 크기의 블록으로 나누어 각 프로세스에 할당하는 방식입니다.
- 특징:
- 구현이 간단하고, 초기 운영체제에서 많이 사용되었습니다.
- 고정 크기 때문에 프로세스 크기보다 큰 메모리 공간이 할당될 수 있어 내부 단편화가 발생합니다.
- 제한된 수의 프로세스만 메모리에 올릴 수 있어 효율이 낮습니다.
2. 가변 분할(Variable Partitioning)
- 개념: 프로세스의 크기에 따라 가변적인 크기의 메모리 공간을 할당하는 방식입니다.
- 특징:
- 외부 단편화가 발생할 수 있으나, 내부 단편화를 줄일 수 있습니다.
- 메모리 압축이나 가비지 컬렉션 등을 통해 외부 단편화를 해소할 수 있습니다.
- 메모리 할당 알고리즘(최적 적합, 최악 적합, 최초 적합 등)을 사용하여 메모리 공간을 효율적으로 분배합니다.
3. 페이징(Paging)
- 개념: 프로세스를 일정 크기의 페이지(Page)로 나누고, 메모리 역시 페이지 프레임(Page Frame)으로 나눈 뒤, 페이지 단위로 메모리에 할당하는 방식입니다.
- 특징:
- 외부 단편화가 발생하지 않으며, 페이지 단위로 메모리를 분배해 효율적입니다.
- 각 프로세스는 페이지 테이블(Page Table)을 통해 물리 메모리의 위치를 참조합니다.
- 메모리 오버헤드가 발생할 수 있으며, 마지막 페이지에서 내부 단편화가 발생할 수 있습니다.
4. 세그멘테이션(Segmentation)
- 개념: 프로세스를 논리적인 크기 단위(코드, 데이터, 스택 등)로 나누어, 각 세그먼트를 가변 크기로 메모리에 할당하는 방식입니다.
- 특징:
- 논리적 단위로 메모리를 관리하여, 프로그램 구조와 일치하는 메모리 할당이 가능합니다.
- 외부 단편화가 발생할 수 있으며, 동적 메모리 할당을 위해 세그먼트 테이블(Segment Table)을 사용합니다.
5. 가상 메모리(Virtual Memory)
- 개념: 프로세스가 실제로 필요한 부분만 메모리에 올려 물리 메모리보다 큰 주소 공간을 제공하는 기법입니다.
- 특징:
- 주로 페이징이나 세그멘테이션과 결합하여 사용됩니다.
- 프로세스가 필요로 하는 메모리만 가져오므로 메모리 절약 효과가 크며, 다수의 프로그램이 동시에 실행 가능합니다.
- 페이지 부재(Page Fault)가 발생할 때 디스크에서 데이터를 가져오고, 필요 없는 페이지는 스왑 아웃(Swap Out) 처리하여 물리 메모리와 디스크를 오가며 효율적으로 메모리를 관리합니다.
메모리 관리 장치(MMU)의 역할
메모리 관리 장치(MMU)는 프로세스가 요청한 가상 메모리 주소를 물리 메모리 주소로 변환해주는 하드웨어 장치입니다. 이를 통해 운영체제는 가상 메모리와 물리 메모리를 매핑하여, 각 프로세스가 독립된 메모리 주소 공간을 사용할 수 있도록 합니다.
- 주소 변환: MMU는 가상 주소를 물리 주소로 변환하여 프로세스가 실제 물리 메모리에 접근할 수 있도록 합니다.
- 메모리 보호: 각 프로세스가 자신에게 할당된 메모리만 접근하도록 보호합니다.
- 페이지 테이블 관리: MMU는 페이지 테이블을 참조하여 페이지 정보를 관리하고, 가상 메모리와 물리 메모리의 매핑을 유지합니다.
- 캐싱과 TLB (Translation Lookaside Buffer): 주소 변환 속도를 높이기 위해 TLB라는 캐시 메모리를 사용하여, 자주 참조되는 페이지 테이블 항목을 캐싱합니다.
요약
- 고정 분할과 가변 분할은 메모리를 분할하는 기법으로, 외부 또는 내부 단편화를 줄이기 위한 전략입니다.
- 페이징과 세그멘테이션은 프로세스를 작은 단위로 나누어 물리 메모리에 배치하는 방식입니다.
- 가상 메모리는 물리 메모리보다 큰 주소 공간을 제공하여 메모리 사용을 최적화합니다.
- MMU는 가상 주소를 물리 주소로 변환하여, 가상 메모리를 관리하고 각 프로세스의 메모리 접근을 제어합니다.
효율적인 메모리 관리 전략은 시스템 성능에 큰 영향을 미치며, 프로세스의 실행 속도와 자원 활용을 최적화하는 중요한 요소입니다.
728x90
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 가상 메모리(Virtual Memory) (0) | 2024.10.31 |
---|---|
[운영체제] IPC(Inter Process Communication) (0) | 2024.10.31 |
[운영체제] 메모리 단편화(Memory Fragmentation) (0) | 2024.10.31 |
[운영체제] 페이지 교체 알고리즘 (0) | 2024.10.31 |
[운영체제] CPU 스케줄링 (0) | 2024.10.31 |