내부 단편화 (Internal Fragmentation)
내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다.
위와 같이 100MB의 메모리에 80MB 크기의 프로세스를 올리게 되면,
20MB의 내부 단편화가 발생하게 된다. 즉, 적은 크기의 잔여 메모리가 발생해 해당 메모리를 사용할 수 없게 된다.
외부 단편화 (External Fragmentation)
외부 단편화란 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적(contiguous)이지 않아 발생하는 현상이다.
위와 같이 남아있는 메모리 공간은 50MB+50MB =100MB로 요청한 메모리 공간 80MB보다 크지만, 남아있는 공간이 연속적이지 않아 Process C를 할당할 수가 없게 된다. 따라서 남아있는 메모리 공간이 낭비되게 되는 문제가 발생한다.
Memory Fragmentation 해결 방법
external fragmentation의 해결방안
1) storage compaction(압축) : 주기적으로 삭제 공간을 회수하여 메모리 공간들을 정리하는 방식이다. 비용이 많이 들어 자주 쓸 수 없는 것이 단점이다. 주로 정해진 주기에 따라서 실행된다.
이때 빈 공간을 하나의 연속된 공간으로 만들면(압축) 아래와 같이 된다.
위와 같이 흩어져 있던 공간을 연속된 공간, 즉 하나의 공간으로 만들면 기존에 할당 할 수 없던 프로세스를 할당할 수 있게 된다.
2) Coalescing(통합) : 단편화로 인해 쪼개진 공간들 중 인접한 공간들을 합쳐서 더 크게 만드는 방식이다.
3) placement strategy (배치 전략): 배치를 잘하는 방식을 사용하여 단편화의 발생 가능성을 최대한 줄이는 방식이다. (best-fit, first-fit, worst-fit)
4) paging 기법 사용 : 고정 길이 방식의 대표 유형 1) storage compaction(압축) : 주기적으로 삭제 공간을 회수하여 메모리 공간들을정리하는 방식이다. 비용이 많이 들어 자주 쓸 수 없는 것이 단점이다. 주로 정해진 주기에 따라서 실행 된다.
Internal fragmentation의 해결 방법
1) Segmentation(세그멘테이션) : 가변 길이 방식의 대표 유형
2) 메모리 풀 : 동적 할당의 방식 중 하나. 미리 필요한 만큼 할당 받아서 만들어 둔 다는 것이 동적 할당(즉흥적으로 만들어짐)과 차이점이다.
'CS > OS & 하드웨어' 카테고리의 다른 글
바이오스 (BIOS - Basic Input/Output System) (0) | 2022.11.13 |
---|---|
펌웨어 (Firmware) (0) | 2022.11.13 |
OS가 하는 일 및 컴퓨터 구조 (0) | 2022.10.25 |
프로세서, 메모리, 캐시 개념 및 원리 (메모리 및 버스/연결 관한) (0) | 2022.10.18 |
CPU의 역사 (0) | 2022.08.26 |