메모리 관리는 컴퓨터의 기본 메모리 관리를 담당하는 운영 체제의 중요한 기능입니다. 여기에는 효율적인 메모리 할당, 할당 해제, 재할당을 위한 전략이 포함되어 최적의 성능과 활용도를 보장합니다.
기억장치 관리 전략
반입(Fetch)전략 (★)
요구 반입 (Demand) | 예상 반입 (Ariticipatory) |
실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법 | 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법 |
배치(Placement) 전략 (★)
최초 적합 (First Fit) | 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치 |
최적 적합 (Best Fit) | 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화가 가장 작은 분할 영역에 배치 |
최악 적합 (Worst Fit) | 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역중에서 단편화가 가장 큰 분할 영역에 배치 |
배치 전략 예시
배치 전략의 예를 설명하기 위해 16K 프로그램을 할당해야 하는 메모리 상태 테이블을 고려해 보겠습니다. 우리는 First-Fit, Best-Fit, Worst-Fit의 세 가지 일반적인 배치 전략을 사용합니다. 다음은 사용 가능한 메모리 블록을 보여주는 메모리 상태 테이블입니다.
영역 번호 | 시작 주소 | 크기 |
1 | 0K | 20K |
2 | 20K | 15K |
3 | 35K | 30K |
4 | 65K | 10K |
5 | 75K | 25K |
최적 배치 전략
First-Fit 전략은 프로그램을 수용할 수 있을 만큼 큰 첫 번째 블록을 할당합니다.
16K 프로그램은 첫 번째 블록(20K)을 검사하여 적합한지 찾습니다.
프로그램은 첫 번째 블록에 할당됩니다.
첫 번째 블록의 남은 공간은 20K - 16K = 4K입니다.
First-Fit 이후 업데이트된 메모리 상태 테이블
영역 번호 | 시작 주소 | 크기 |
1 | 0K | 4K |
2 | 20K | 15K |
3 | 35K | 30K |
4 | 65K | 10K |
5 | 75K | 25K |
최적의 배치 전략
Best-Fit 전략은 프로그램을 수용할 수 있을 만큼 충분히 큰 가장 작은 블록을 할당합니다.
16K 프로그램은 모든 블록을 검사하고 가장 작은 적합한 블록이 다섯 번째 블록(25K)임을 찾습니다.
프로그램은 5번째 블록에 할당됩니다.
다섯 번째 블록의 남은 공간은 25K - 16K = 9K입니다.
Best-Fit 이후 업데이트된 메모리 상태 테이블
영역 번호 | 시작 주소 | 크기 |
1 | 0K | 20K |
2 | 20K | 15K |
3 | 35K | 30K |
4 | 65K | 10K |
5 | 75K | 9K |
최악의 배치 전략
Worst-Fit 전략은 프로그램을 수용할 만큼 충분히 큰 가장 큰 블록을 할당합니다.
16K 프로그램은 모든 블록을 검사하여 가장 큰 적합한 블록이 세 번째 블록(30K)임을 찾습니다.
프로그램은 세 번째 블록에 할당됩니다.
세 번째 블록의 남은 공간은 30K - 16K = 14K입니다.
최악 적합 이후 업데이트된 메모리 상태 테이블
영역 번호 | 시작 주소 | 크기 |
1 | 0K | 20K |
2 | 20K | 15K |
3 | 35K | 14K |
4 | 65K | 10K |
5 | 75K | 25K |
교체(Replacement) 전략 (★)
주기억장치 할당 기법
오버레이(Overlay) | 보조기억장치에 저장된 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재시켜 프로그램을 실행 |
스와핑 (Swapping) | 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요하다 싶으면 필요에 따라 다른 프로그램과 교체하는 기법 |
단편화
단편화의 종류
단편화 계산 예시
할당 전 가상 메모리 상태
영역 번호 | 시작 주소 | 크기 |
1 | 0K | 20K |
2 | 20K | 15K |
3 | 35K | 30K |
4 | 65K | 10K |
5 | 75K | 25K |
할당 후 업데이트된 메모리 상태
영역 번호 | 시작 주소 | 사이즈 | 할당된 프로그램 | 남은 공간 |
1 | 0K | 20K | A (12K) | 8K |
2 | 20K | 15K | C (8K) | 7K |
3 | 35K | 30K | B (28K) | 2K |
4 | 65K | 10K | 무료 | 10K |
5 | 75K | 25K | 무료 | 25K |
조각화 계산
단편화 해결 방법
효율적인 메모리 관리는 컴퓨팅 시스템의 성능과 안정성에 필수적입니다. 이러한 전략과 기술을 이해하고 구현함으로써 시스템은 메모리 사용을 최적화하고 조각화를 줄이며 원활한 작동을 보장할 수 있습니다.
2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!
[정보처리기사 실기 공부] 운영체제의 프로세스 (0) | 2024.07.10 |
---|---|
[정보처리기사 실기 공부] 가상기억장치 (0) | 2024.06.12 |
[정보처리기사 실기 공부] 데이터 전환 (0) | 2024.05.25 |
[정보처리기사 실기 공부] 병행 제어와 회복 (0) | 2024.05.20 |
[정보처리기사 실기 공부] 절차형 SQL (0) | 2024.05.20 |