-
[Operating System] 가상 메모리 : 연속 메모리 할당Operating System 2024. 5. 20. 13:53
연속 메모리 할당 방식과 한계, 스와핑에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 연속 메모리 할당 >
프로세스들이 메모리 내에서 연속적으로 할당되는 방식을 연속 메모리 할당이라고 합니다.
: 프로세스 A는 A의 크기만큼 메모리 할당,
B는 A 다음 B의 크기만큼 할당,
C는 B 다음 C의 크기만큼 할당, ...
< 연속 메모리 할당 방식 >
프로세스는 메모리의 빈 공간에 할당 되어야 합니다.
빈 공간이 여러 개 있을 시 최초 적합, 최적 적합, 최악 적합 3가지 방식으로 메모리 할당을 진행할 수 있습니다.
[ 최초 적합 (first-fit) ]
: 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
[ 장점 ] 검색 최소화, 빠른 할당
[ 최적 적합 (best-fit) ]
: 운영체제가 메모리 내의 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 적재하는 방식
[ 장점 ] 검색 최소화, 빠른 할당
[ 최악 적합 (worst-fit) ]
: 운영체제가 메모리 내의 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 큰 공간에 적재하는 방식
[ 장점 ] 검색 최소화, 빠른 할당
< 스와핑 >
현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역(스왑 영역)으로 쫓아내고 그렇게 생긴 빈 공간에 새 프로세스 적재하는 방식
프로세스가 요구하는 메모리 공간 크기가 실제 물리 메모리 크기보다 크더라도 실행 가능하다는 장점이 있습니다.01스와핑 이미지 - 스왑 인(Swap In) : 스왑 영역에 있던 프로세스가 다시 메모리에 적재되는 과정
- 스왑 아웃(Swap Out) : 당장 사용되지 않는 프로세스를 보조기억 장치의 스왑 영역으로 이동시키는 과정
+. free, top 명령어를 통해 스왑 영역의 크기를 확인할 수 있습니다.
< 외부 단편화 >
사실, 프로세스를 연속적으로 메모리에 할당하는 방식은 외부 단편화 (external fragmentation) 라는 문제가 발생하기 때문에 메모리를 효율적으로 사용하는 방법이 아닙니다.
외부 단편화란 프로세스들이 실행되고 종료되길 반복하며 메모리 사이 사이에 빈 공간이 발생하는데, 프로세스들이 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 외부 단편화라고합니다.외부 단편화 예시 2가지
[ 해결 1 : 메모리 압축 ]
: 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식.
프로세스를 적당히 재배치시켜 흩어져 있는 작은 빈 공간들을 하나의 빈 공간으로 만드는 방법입니다.
[ 단점 ] :
→ 프로세스를 재배치하는 과정에서 많은 오버헤드 야기
→ 재배치하는 동안 프로세스 작업 중단
메모리 압축 이미지
[ 해결 2 : 가상 메모리 기법, 페이징 ]
페이징 기법은 내용이 많아 다음 글에 따로 정리하였습니다.
: https://begin-to-end-project.tistory.com/228
[Operating System] 가상 메모리 : 페이징
연속 메모리 할당 방식과 한계, 스와핑에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >
begin-to-end-project.tistory.com
'Operating System' 카테고리의 다른 글
[Operating System] 가상 메모리 : 쓰기 시 복사와 계층적 페이징 (0) 2024.06.22 [Operating System] 가상 메모리 : 페이징 (0) 2024.06.13 [Operating System] 교착 상태 : 교착 상태 해결 방법 (0) 2024.05.20 [Operating System] 교착 상태 : 교착 상태란 (0) 2024.05.20 [Operating System] 프로세스 동기화 : 동기화 기법 (0) 2024.05.20