메모리 관리 개념
중앙 처리 장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리하는 기법
메모리 관리 기본 사항
- 가상 메모리 : 실제 메모리 주소가 아닌 가상의 메모리 주소를 부여하는 방식
- 메모리 관리 장치(MMU) : CPU가 메모리에 접근하는 것을 관리하는 하드웨어, 가상 메모리 주소를 실제 메모리 주소로 변환
- 메모리 관리자 : 기억 장치의 어느 부분이 사용 중인지 또는 아닌지를 조사하여 필요할 때마다 할당 후 회수하는 작업 수행
메모리 관리 기법
- 반입 기법 : 메모리 적재 시기 결정
- 요구 반입 기법 : 다음에 실행될 프로세스가 참조 요구가 있을 경우에 적재
- 예상 반입 기법 : 시스템의 요구를 예측하여 미리 메모리에 적재
- 배치 기법 : 메모리 적재 위치 결정
- 최초 적합 : 프로세스가 적제될 수 있는 가용 공간 중 첫 번째 분할에 할당
- 최적 적합 : 가용 공간 중 가장 크기가 비슷한 공간을 선택하여 할당
- 최악 적합 : 가용 공간 중 가증 큰 공간에 할당
- 할당 기법 : 메모리 적재 방법 결정
- 연속 할당 기법 : 각 프로세스를 주기억장치 공간 내에서 인접하게 연속하여 저장
- 단일 분할 할당 기법 : 오버레이, 스와핑
- 다중 분할 할당 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법
- 분산 할당 기법 : 하나의 프로세스를 여러 개의 조각으로 나누어 배치, 주로 가상 기억 장치에서 사용
- 페이징 기법 : 가상 기억 장치 내의 프로세스를 일정한 크기의 페이지 프레임으로 분할하여 주기억장치의 분산된 공간에 적재
- 세그멘테이션 기법 : 가상 기억 장치 내의 프로세스를 가변적인 크기의 블록으로 나누고 메모리 할당
- 페이징/세그멘테이션 혼용기법 : 하나의 세그먼트를 정수 배의 부분 페이지로 다시 분할
- 교체 기법 : 메모리 교체 대상 결정
- FIFO(First In First Out) : 선입선출
- LRU(Least Recently Used) : 사용된 시간 확인, 가장 오랫동안 사용되지 않은 페이지 선택(프로그램 지역성 원리 적용)
- LFU(Least Frequently Used) : 사용된 횟수 확인, 참조 횟수가 가장 적은 페이지 선택
- OPT(OPTimal Replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체, Page Fault 횟수가 가장 적게 발생
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지 선택, LRU의 시간 오버헤드 감소 가능, 페이지마다 참조 비트와 변형 비트 사용
- SCR(Second Chance Replacement) : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지 교체 방지 기법
* Page Fault : 주기억장치에 참조 스트링이 없을 때 발생
페이징 기법과 세그멘테이션 기법
|
페이징 기법 |
세그멘테이션 기법 |
논리 주소 |
페이지 번호(p)와 변위(d)로 구성 |
세그먼트 번호(s)와 변위(d)로 구성 |
물리 주소 |
페이지 테이블에서 실제 메모리 기준 주소(프레임)를 찾고 변위 더하기 |
기준과 한계로 이루어진 세그먼트 테이블에서 시작를 찾고 변위 더하기 |
장점 |
공유 페이지 이용, 다중 처리 프로그래밍 가능 |
가변적인 데이터 구조와 모듈 처리 |
단점 |
페이지 매핑 하드웨어 비용 소모, 내부 단편화 현상 발생 가능 |
외부 단편화 현상 발생 가능 |
페이지 크기에 따른 페이징 기법의 장단점
|
페이지 크기가 작은 경우 |
페이지 크기가 큰 경우 |
페이지 테이블 크기 |
증가 |
감소 |
주 기억 장치 공간 |
낭비 |
절약 |
입출력 시간 |
증가 |
감소 |
내부 단편화 |
감소 |
증가 |
기억 장치 효율 |
특정 참조 구역성만 포함 -> 좋음 |
낭비 |
디스크 접근 시간 |
증가 |
감소 |
입출력 시간 |
증가 |
감소 |
메모리 단편화
분할된 주기억장치 프로세스를 할당, 반납 과정에서 사용되지 못하고 낭비되는 기억장치가 발생하는 현상
- 내부 단편화 : 분할된 공간에 프로세스를 적재한 후 남은 공간
- 해결방안
- Slap Allocator : 페이지 프레임을 할당받아 공간을 작은 크기로 분할하고, 메모리 요청 시 작은 크기로 메모리를 할당/해제
- 통합 : 인접한 단편화 영역을 찾아 하나로 통합
- 압축 : 메모리의 모든 단편화 영역을 하나로 압축
- 외부 단편화 : 할당된 크기가 프로세스 크기보다 작아 사용하지 못하는 공간
- 해결방안
- 버디 메모리 할당 : 요청한 프로세스 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2n의 크기로 분할하여 메모리 할당
- 통합
- 압축
페이징 기법의 문제점 및 해결방안
- 페이징 기법의 문제점
- 스레싱 : 어떤 프로세스의 Page Fault로 인해 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상
- 페이징 기법의 문제점 해결방안
- 워킹 세트 : 각 프로세스가 많이 참조하는 페이지 집합을 주기억장치 공간에 계속 상주
- 장점 : Page Hit증가, CPU 활용율 최적화
- 단점 : 복잡한 워킹 세트 추적 관리, 워킹 세트 크기 설정 모호함
- 페이지 부재 빈도(PFF) : 페이지 부재율의 상한과 하한을 정해서 직접 예측하고 조절
- 장점 : 부하가 적고, 직접적으로 페이지 부재율 조절 가능
- 단점 : 프로세스를 중지시키는 과정 발생, 페이지 참조가 새로운 지역성으로 이동 가능
지역성
- 지역성 개념 : 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조
- 지역성 유형
- 시간 지역성 : 최근에 사용된 기억 장소들이 집중적으로 액세스
- 공간 지역성 : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스
- 순차 지역성 : 데이터가 순차적으로 액세스
TODO