스와핑
- 대기 상태이거나, 오래 사용하지 않은 프로세스글을 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 해서 생긴 메모리 상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
- 스왑 영역
- 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
- 스왑 아웃
- 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인
- 스왑 영역에 있던 프로세스가 다시 메모리로 돌아오는 것
- 스와핑을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행 가능
메모리 할당
- 최초 적합
- 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
- 프로세스가 적재될 수 있는 공간을 발견하는 즉시 메모리를 할당하는 방식이므로 검색을 최소화하며 결과적으로 빠른 할당이 가능
- 최적 적합
- 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치
- 메모리 공간을 효율적으로 사용하여 내부 단편화를 최소화할 수 있음
- 메모리 할당에 대한 계산 비용이 높아져 시스템 성능에 부담이 될 수 있음
- 최악 적합
- 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치
- 가장 큰 빈 메모리 블록을 사용하기 때문에, 앞으로의 메모리 할당에 대해 유연성을 제공
- 큰 빈 메모리 블럭을 나눔으로써 발생하는 내부 단편화 문제가 심해질 수 있음
외부 단편화
- 연속 메모리 할당 방식에서는 프로세스들이 실행되고 종료되기를 반복하며 메모리 사이 사이에 빈 공간들이 발생
- 프로세스 바깥에 생기는 이러한 빈 공간들은 분명 빈 공간이지만 그 공간보다 큰 프로세스를 적재하기 어려운상황을 초래하여 결국 메모리를 낭비하는 현상
- 해결 방법
- 메모리 압축
- 메모리 내에 저장된 프로세스를 적당히 재배치시켜 여기저기 흩어져 있는 작은 빈 공간들을 하나의 큰 빈공간으로 만드는 방식
- 단점
- 작은 빈 공간들을 하나로 모으는 동안 시스템은 하던 일을 중지해야함
- 메모리에 있는 내용을 옮기는 것은 많은 오버헤드를 야기함
- 어떤 프로세스를 어떻게 움직여야 오버헤드를 최소화할 수 있을지에 대한 명확한 방법을 결정하기 어려움
내부 단편화
- 할당된 공간에 비해 프로세스의 크기가 작아 메모리 공간 중 일부를 사용하지 못하여 메모리가 낭비되는 현상
- 해결 방법
- 메모리 할당이 너무 크게되면 그만큼 내부 단편화가 발생될 확률이 높아짐
- 내부 단편화가 발생하지 않도록 메모리 할당을 잘 조정해서 해주어야함
- 단점
- 메모리 관리 복잡성이 증가
'CS > OS' 카테고리의 다른 글
가상 메모리 (페이징) [혼공컴구] (0) | 2024.01.31 |
---|---|
프로세스 동기화 [혼공컴구] (0) | 2024.01.18 |
스케줄링 알고리즘 [혼공컴구] (1) | 2023.12.22 |
프로세스와 스레드 [혼공컴운] (0) | 2023.12.15 |
프로세스 계층 구조 & 생성 기법 [혼공컴운] (0) | 2023.12.15 |