Security

[Security] 가상 메모리(Virtual Memory)

구루싸 2019. 12. 29. 21:44
반응형
SMALL

오늘은 지난 시간에 이어 메모리 시스템 중 가상 메모리(Virtual Memory)에 대해 알아보겠습니다

가상 메모리는 주기억장치의 용량이 적기 때문에 보조기억장치를 마치 주기억장치처럼 사용하여

주기억장치의 공간을 확대하는 효과를 내기 위한 기억장치 관리 방법입니다

이런 효과를 내기 위해 Virtual Address Space를 사용하고

관리 단위에는 페이지(Page)와 세그먼트(Segment)가 있습니다

구분 Paging기법 Segment기법
할당 고정(Static) 분할 가변(Dynamic) 분할
적재 요구 Page만 적재(On-demand) 프로그램 전체 적재(On-demand)
관점 메모리 관리 측면 파일 관리 측면
장점

요구 Page만 적재 Load, 외부 단편화 해결, 교체시간 최소

사용자 관점, 개발/프로그래밍 용이, 내부 단편화 해결, 코드, 데이터 공유 용이
단점 내부 단편화 발생, Thrashing, 잦은 디스크 I/O 발생 외부 단편화 발생, 메인 메모리가 커야함

다음으로 가상 메모리의 관리 정책을 살펴보면 아래와 같습니다

관리 정책

할당(Allocation) 

프로세스에게 할당되는 메모리 블록의 단위를 결정

1. 연속 할당 : 고정 할당(고정된 크기로 할당하며 내부 단편화 발생), 가변 할당(다른 크기로 할당하며 외부 단편화 발생)

2. 비연속 할당 : Paging(가상 메모리 블록을 TLB, MMU, Page table을 이용해 페이지 단위로 관리) , Segmentation(Segment 테이블로 관리)

호출(Fetch)

보조기억장치에서 주기억장치로 적재할 시점 결정(Demand Fetch, Pre Fetch)

배치(Placement)

요구된 페이지를 주기억장치의 어느 곳에 적재할 것인지를 결정(First fit, Best Fit, Worst Fit)

교체(Replacement)

주기억장치 공간 부족 시 교체 대상 결정(Random, FIFO, LRU, LFU, NUR, SCR, Optimal)

지난 글에서 캐시와 메모리 사이에 교체 알고리즘을 학습하였는데

이 가상 메모리에서도 교체를 위해 같은 알고리즘을 사용합니다

여기서 페이지 교체 시에 나타나는 문제점과 해결방안에 대해 살펴보겠습니다

문제점 내용

페이지 부재

(Page Fault)

기억 장치에 적재되지 않은 Page를 사용하려 할 때 발생

스레싱

(Thrashing)

페이지 부재가 너무 빈번하여 CPU가 Process 수행보다 페이지 교체에 더 많은 시간을 소요하는 현상
해결방안 내용
Load Control 일정 시간 동안 새로운 프로세서가 생성되는 것을 지연시키고 Suspend Queue에 대기시킴
Locality 시간과 공간 지역성을 집중적으로 참조하도록 함
Working Set 일정 시간 동안 참조되는 페이지 집합(Working Set)을 주기억장치에 유지하도록 함

PFF

(Page Fault Frequency)

Process의 페이지 부재 빈도에 따라 Residence Set을 조정

PFF가 높으면 Residence Set의 크기는 증가, 낮으면 감소

이상으로 오늘의 학습을 마치겠습니다-_-

반응형
LIST