[OS] 가상기억장치(Virtual Memory)와 구현 방법(Paging, Segmentation)

Jeyeon Kim·2023년 10월 18일
0

운영체제

목록 보기
9/12

가상기억장치(Virtual Memory)란?

보조기억장치의 일부를 주 기억장치 처럼 사용하는 것으로, 주 기억장치의 용량보다 더 큰 프로그램을 실행하기 위해 사용한다.
이때 주소를 변환하는 주소 Mapping 작업이 필요하며 이 작업은 가상 기억장치에 저장된 프로그램의 주소를 주 기억장치의 주소로 변환하는 작업이다.
이 가상 기억장치의 구현 방법은 페이징(Paging), 세그먼테이션(Segmentation)으로 두 가지가 있다.


페이징(Paging) 기법

프로그램과 주 기억장치의 영역을 고정 크기로 나눈 후 프로그램의 나눠진 조각을 주 기억장치의 나눠진 영역에 적재시켜 실행한다.
고정된 크기로 나누기 때문에 외부 단편화(External Fragmentation)은 발생하지 않지만, 고정된 크기에 그보다 작은 프로그램의 조각이 적재되어 내부 단편화(Internal Fragmentation)은 발생할 수 있다.
이때 주소 변환을 위해 페이지의 위치 정보를 가지고 있는 Page Map Table(PMT)가 필요하며 PMT는 운영체제의 커널에 적재된다.
종류 : 직접 매핑, 연관 매핑, 직접 연결 매핑


세그먼테이션(Segmentation) 기법

주 기억장치의 영역을 사전에 분할하지 않으며 프로그램을 세그먼트(Segment)라는 논리적 크기 단위로 분할하여 적재된다.
세그먼트는 가변적 크기를 가지기 때문에 고유한 이름과 크기를 갖고 Segment Map Table(SMT)에 정보를 저장하여 매핑한다.
가변적 크기를 가지고 주 기억장치에 적재되기 때문에 적재 후 사용하지 않는 남는 공간이 발생하는 내부 단편화(Internal Fragmentation) 문제는 발생하지 않으나, 세그먼트가 들어갈 충분한 빈 공간이 존재하지 않아 적재되지 못하는 외부 단편화(External Fragmentation) 문제는 발생할 수 있다.


페이지 교체 기법

프로그램이 특정 페이지를 요청하였을 때 주 기억 장치에 해당 페이지가 없을 경우 보조 기억 장치에서 불러와 적재해야 한다. 이때 주 기억 장치의 여유 프레임이 없다면 어떤 프레임을 선택하여 교체할 것인지 결정하는 알고리즘이 필요하다.

OPT(Optimal Replacement, 최적 교체)

미래에 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법이다.
페이지 부재(Page Fault) 횟수가 가장 적게 발생하는 최적의 알고리즘이지만 미래를 예측해야하기 때문에 실현성이 없다.
해당 알고리즘은 다른 교체 기법의 성능 평가 용도로 사용된다.

페이지 부재 횟수 = 6회

FIFO(First-In-First-Out, 선입선출)

가장 먼저 들어온 페이지를 가장 먼저 교체하는 기법이다.

페이지 부재 횟수 = 9회

LRU(Least Recently Used, 최근 참조 미발생 교체)

적재되어있는 페이지 중 최근에 참조가 되지 않은 페이지를 교체하는 기법이다.

페이지 부재 횟수 = 8회

LFU(Least Frequently Used, 적은 참조 교체)

적재되어있는 페이지 중 참조 횟수가 가장 적은 페이지를 교체하는 기법이다.

페이지 부재 횟수 = 8

NUR(Not Used Recently)

LRU와 비슷한 알고리즘으로 최근 미사용 페이지를 교체한다. 하지만 최근 여부를 확인하는 참조 비트(Reference Bit), 변형 비트(Modify Bit)를 사용한다.

참조되었을 경우 참조 비트를 1로, 변형되었을 경우 변형 비트를 1로 변경하는데, 참조비트는 주기적으로 0으로 초기화된다.

profile
Computer software engineering

0개의 댓글