--목차--
메모리 관리 배경
메모리 관리 전략 종류
--------
1. 메모리 관리 배경
각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 있다.
운영체제만이 운영체제 메모리 영역과 사용자 메모링 영역의 접근에 제약을 받지 않는다.
2. 메모리 관리 전략 종류
1) Swapping
메모리의 관리를 위해 사용되는 기법. 표준 swapping 방식은 round-robin과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조기억장치(하드디스크)로 내보내고 다른 프로세스의 메모리를 불러들일 수 있다.
(swap =
주기억장치로 불러오는 과정: swap in
보조기억장치로 내보내는 과정: swap out
swap은 디스크 전송시간 필요. 현재는 메모리 공간 부족시 swapping 시작.)
2) Fragmentation
프로세스들이 메모리에 적재되고 제거되는 일이 반복되면, 프로세스들이 차지하는 메모리 틈 사이에 사용하지못할 만큼의 작은 자유공간들이 늘어나게 되는 것이 Fragmentation(단편화)이다.
외부 단편화: 메모리 공간 중 사용하지 못하게 되는 일부분. RAM에서 사이사이 남는 공간들을 모두 합치면 충분한 공간이 되는 부분들이 분산되어 있을 때 발생.
내부 단편화: 프로세스가 사용하는 메모리 공간에 남는 부분.
압축: 외부 단편화를 해소하기 위해 프로세스가 사용하는 공간들을 한쪽으로 몰아 자유공간을 확보하는 방법론. 작업효율이 좋지 않음.
3) Paging
하나의 프로세스가 사용하는 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 방법.
외부 단편화와 압축 작업을 해소하기 위해 생긴 방법론.
RAM은 Frame이라는 고정 크기로 분리.
논리 메모리(프로세스가 점유하는)는 메이지라 불리는 고정 크기의 블록으로 분리.(페이지 교체 알고리즘에 들어가는 페이지)
논리 메모리는 물리 메모리(RAM)에 저장될 때, 연속되어 저장될 필요가 없고 물리 메모리의 남는 프레임에 적절히 배치됨으로써 외부 단편화를 해결가능한 큰 장점 존재.
하나의 프로세스가 사용하는 공간은 여러 개의 페이지로 나뉘어 관리(논리 메모리에서). 개별 페이지는 순서에 상관없이 물리 메모리에 있는 프레임에 매핑되어 저장.
단점: 내부 단편화 문제의 비중 증가.
4) Sementation
서로 다른 크기의 논리적 단위인 세그먼트(Segment)로 분할 사용자가 2개의 주소로 지정 세그먼트 테이블에는 각 세그먼트의 기준과 한계 저장.
지정 세그먼트 테이블: 세그먼트 번호 + 변위
세그먼트 기준: 세그먼트의 시작 물리 주소
세그먼트 한계: 세그먼트의 길이
단점: 서로 다른 크기의 세그먼트들이 메모리에 적재 및 제거되는 일이 반복. 자유 공간들이 많은 수의 작은 조각들로 나눠져 못 쓰게 될 수 있음.(외부 단편화 현상 발생)