[운영체제] 가상 메모리 -(5)

Yeongsan Son·2021년 7월 4일
0
post-custom-banner

페이지 교체 정책

페이지 교체 정책이란 물리 메모리에 데이터가 full인 상태에서 다음 실행해야할 프로세스의 페이지와 물리 메모리에서 불피요한 페이지를 교체하는 기법을 말한다.

페이지 교체 알고리즘

FIFO

FIFO 알고리즘을 사용한 페이지 교체 알고리즘을 살펴보자.

FIFO 알고리즘을 사용하면 가장 먼저 넣은 페이지가 가장 먼저 빠져나오게 된다.

OPT(OPTimal Replacement Algorithm)

OPT란 최적 페이지 교체 알고리즘을 말하며 앞으로 가장 오랫동안 사용하지 않을 페이지를 선정하여 교체하는 알고리즘이다. 하지만, 일반 OS에서는 구현하기 불가능하다.

LRU(Least Recently Used)

LRU란 가장 오래 전에 사용된 페이지를 교체하는 알고리즘을 말하며, 과거 기록을 기반으로 페이지를 구별한다. OPT의 구현이 현실적으로 어려우므로 OPT를 대체하기 위해 등장했다.

LFU(Least Frequently Used)

LFU란 가장 적게 사용된 페이지를 교체하는 알고리즘을 말한다.

NUR(Not Used Recently)

NUD이란 최근에 사용하지 않은 페이지부터 교체하는 알고리즘을 말하며, 각 페이지마다 참조(read) 비트(R), 수정(write) 비트(M)을 갖고 (R, M)의 짝으로 페이지의 순서를 구분한다.

  • (0, 0), (0, 1), (1, 0), (1, 1)

스레싱

스레싱은 반복적으로 페이지 폴트가 발생해 과도하게 페이지 교체 작업이 빈번히 일어나서 실제로 어떤 실행도 하지 못하는 상황을 말한다.

세그멘테이션 기법

세그멘테이션이란 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하는 기법을 말한다.

  • Code Segment, Data Segment, Stack Segment, Extra Segment

  • 세그먼트 가상 주소

    • v = (s, d): s 세그먼트 번호, d 블록 내 세그먼트의 변위
  • segment 단위로 물리 메모리 로딩

세그멘테이션과 페이지 비교

  • 내부 단편화(페이지)

    • 페이지 블록(4KB)만큼 데이터가 딱 맞게 채워지지 않을 때 공간이 낭비됨
  • 외부 단편화(세그멘테이션)

    • 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우
  • 세그멘티이션 / 페이징 모두 하드웨어 지원 필요

    • 다양한 컴퓨터 시스템에 이식성을 중요시하는 리눅스는 페이징 기법을 기반으로 구현

출처

profile
매몰되지 않는 개발자가 되자
post-custom-banner

0개의 댓글