Swapping이란?
메인메모리에 적재된 프로세스를 하드디스크나 SSD에 내리고, 다른 하나를 메인메모리에 올리는 것
프로세스를 메인메모리에서 내리는 것이 Swap out, 올리는 것이 Swap in
Context Switch가 많이 일어나지만 부족한 메모리 공간을 효율적으로 사용 가능 (마치 메모리가 무한대인 것처럼 동작하며 Virtual Memory Management에서의 핵심)
메모리 단편화란? (Memory Fragmentation)
프로세스들이 메모리에 적재되고 제거되는 일이 반복되다보면, 프로세스들이 차지하는 메모리 틈 사이에 사용 하지 못할 만큼의 작은 자유공간들을 의미한다. 크게 외부단편화와 내부단편화로 나뉜다.
외부단편화
자유공간들을 모두 합치면 충분한 공간이 있지만, 그것들이 작게 분산되어 사용하지 못하는 공간
내부단편화
할당된 공간이 요구된 공간보다 커서 사용되지 않는 남는 공간
메모리 할당 방법
대기중인 프로세스를 실행시키기 위해 메모리 공간에 할당해줘야 한다. 대표적인 3가지 방법이 존재한다.
First-fit (최초 적합)
가장 처음 보이는 빈 공간에 할당
Best-fit (최적 적합)
가장 잘 맞는 공간에 할당. 즉, 모든 빈 공간을 계산했을 때, 프로세스 할당 후 가장 남는 공간이 적은 공간에 할당
Worst-fit (최악 적합)
가장 큰 빈공간에 할당
'CS > 운영체제' 카테고리의 다른 글
[운영체제 OS] Virtual Memory Management (0) | 2021.08.25 |
---|---|
[운영체제 OS] Memory Management (2) (0) | 2021.08.25 |
[운영체제 OS] Memory 구조 (0) | 2021.08.25 |
[운영체제 OS] Kernel Thread vs User Thread (0) | 2021.08.23 |
[운영체제 OS] 동기 VS 비동기 / Blocking vs Non-Blocking (0) | 2021.08.23 |
댓글