1. 메모리 단편화 Memory Fragmentation
(1) 메모리 단편화란?
분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반납하면서 사용되지 않고 남는 기억장치의 빈 공간 조각을 말한다.
- 내부 단편화 : 분할된 영역이 할당될 프로그램의 크기보다 크기 때문에 프로그램이 할당된 후 사용되지 않고 남아있는 빈 공간
- 외부 단편화 : 분할된 영역이 할당된 프로그램의 크기보다 작기 때문에 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남아 있는 불할된 전체 영역
2. 연속 메모리 할당
(1) 연속 메모리 할당 방식
- First-fit (최초 적합) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
- Best-fit (최적 적합) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 적게 남기는 분할 영역에 배치
- Worst-fit (최악 적합) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
(2) 예시
Hole: 100 /500 / 600 / 300 / 200 KB
프로세스: 212 417 112 426 KB
First, Worst Fit은 426KB 짜리 프로세스를 넣지 못한다.
(2) 할당 방식 성능 비교
- 속도 : first-fit 가 빠르다
- 메모리 이용률 : first-fit, best-fit 가 좋다
Fist, Best Fit을 사용해도 외부 단편화가 없어지지는 않는다.
외부 단편화로 인해 1/3 만큼은 사용 불가하다.
(3) 단편화 해결 방법
- 압축 방법 Compaction : 분산되어있는 Hole을 결합하여 하나의 큰 가용 공간을 만드는 작업이다. 이 작업에 대해 최적 알고리즘은 없고, 부담이 크다.
- 페이징: 외부 단편화를 해결할 수 있다. 프로세스를 나누어 주기억장치에 할당하고, 주소를 변환하는 방법이다. MMU 내의 재배치 레지스터 값을 바꿈으로서 CPU 는 프로세스가 연속된 메모리 공간에 위치한다고 착각하게된다. MMU는 페이지 테이블이 된다.
- 페이지 : 프로세스를 나눈 조각
- 프레임 : 메모리를 나눈 조각
'CS > OS' 카테고리의 다른 글
[운영체제] 페이징 Paging (0) | 2024.12.13 |
---|---|
[운영체제] 가상 기억장치 (0) | 2024.12.13 |
[운영체제] 8. 메모리 효율적 사용(동적 적재, 동적 연결, 스와핑) (0) | 2024.12.13 |
[운영체제] 8. 프로그램을 메인 메모리에 올리기 (MMU) (0) | 2024.12.13 |
[운영체제] 8. 주기억장치 관리 개요 (0) | 2024.12.11 |