8-가상메모리
8.1 요구 페이징
프로그램 실행시 프로세스를 구성하는 모든 페이지를 한꺼번에 메모리에 올리는게 아닌 당장 사용될 페이지만을 메모리에 올리는 방식
가상 메모리기법에서는 프로세스가 실행되는 동안
일부 페이지는 메모리에 올라와 있고
나머지 페이지는 디스크의 스왑 영역에 존재
특정 프로세스를 구성하는 페이지 중에서 어떤 페이지가 메모리에 존재하고 어떤 페이지가 메모리에 존재하지 않는지 구별하기 위한 방법 필요
요구 페이징에서는 유효-무효 비트를 두어 각 페이지가 메모리에 존재하는지 표시 이 비트는 모든 페이지에 대해 존재해야 하므로 페이지 테이블의 각 항목별로 저장
이 때, CPU가 참조하려는 페이지가 현재 메모리에 올라와있지 않아 비트가 무효로 세팅된 경우 page fault 가 일어났다고 함
8.1.1 요구 페이징의 페이지 부재 처리
CPU가 무효 페이지에 접근시, 주소 변환을 담당하는 하드웨어인 MMU(Memory Management Unit)이 페이지 부재 트랩을 발생시킴
그러면 CPU의 제어권이 커널 모드로 전환
페이지 부재 처리 루틴 호출
부재 상태의 페이지를 메모리에 적재 하기 앞서 페이지 접근 적법한지 판단
접근 위반인 경우 프로세스 종료 (READ 전용인데 WRITE하는 경우)
접근이 적절하다고 판단하면
물리적메모리에 비어있는 frame에 해당 페이지를 읽어옴
만약 비어있는 프레임 없다면 기존 메모리에 올라온 페이지 중 하나 swap out
한편, page fault 발생시킨 프로세스는 CPU 빼앗기고 봉쇄상태됨
디스크입출력 완료되어 인터럽트 발생시 해당 페이지의 비트 유효 설정
프로세스를 준비 큐로 이동
이 프로세스가 다시 CPU 할당 받으면 PCB로부터 중단됐던 명령부터 실행 재개
8.2 페이지 교체
page fault 발생시 요청된 페이지를 디스크에서 메모리로 읽어와야함 물리적 메모리에 빈 프레임 존재하지 않으면, 페이지 중 하나 디스크로 쫓아내 빈 공간 확보하는 작업 필요
이를 페이지 교체라고 함
페이지 교체시 어떤 페이지 쫓아낼지 결정하는 걸 교체 알고리즘 이라함
이 알고리즘의 목표는 페이지 부재율 최소화 하는 것
그래서 미래에 참조될 가능성이 가장 적은 페이지를 선택하여 내쫓는 것이 성능 향상
페이지 적중: 해당 번호의 페이지가 메모리에 이미 올라와 있음
8.2.1 최적 페이지 교체 (Optimal Page Replacement)
OPT라고 부름. 가장 먼 미래에 참조될 페이지를 쫓아내기
미래에 어떤 페이지가 순서로 참조될지 미리 알고 있다는 전제 하에 알고리즘 운영
실제 사용 불가능
8.2.2 FIFO
가장 먼저 올라온 페이지를 우선적 내쫓음
비효율 상황 발생 가능: 메모리가 늘어남에도 page fault 더 늘어남
이를 해결하기 위해 LRU
8.2.3 LRU
페이지의 참조 성향 중 시간 지역성 이라는 것이 있음
최근에 참조된 페이지가 가까운 미래에 다시 참조될 가능성이 높은 성질
이 성질을 이용하여 가장 오래 전에 참조가 이루어진 페이지 내쫓음
8.2.4 LFU
Least Frequently Used는 페이지 참조 횟수 로 결정
과거에 참조 횟수가 가장 적었던 페이지를 내쫓음
최저 참조 횟수가 여러개 존재하는 경우 임의로 하나를 선정해 그 페이지를 내쫓음
성능 향상을 위해 최저 참조 횟수 가진 여러개 중 가장 오래 전에 참조된 페이지를 swap out
참조 횟수 계산 방식
Incache-LFU
페이지가 물리적 메모리에 올라온 후부터 참조횟수 카운트
따라서 swap out 된 후에 다시 들어온 경우 1부터
Perfect-LFU
swap out 여부 관계 없이 과거 총 참조 횟수
perfect-LFU는 참조 횟수 정확히 반영하지만 swap out된 페이지의 참조 횟수 기록해야 하므로 오버헤드가 상대적으로크다
8.2.5 클럭 알고리즘
하드웨어 지원을 통해 운영 오버헤드 줄인 방식 LRU을 근사시킨 알고리즘으로 NRU(Not Recently Used)라고 불림
LRU가 가장 오래 전에 참조된 페이지를 교체 하는 것에 비해
클럭 알고리즘은 오랫동안 참조되지 않은 페이지 중 하나를 교체
교체할 페이지를 선정하기 위해 페이지 프레임들의 참조 비트를 순차적으로 조사
참조 비트는 프레임마다 하나씩 존재
프레임 내의 페이지가 참조 될 때 하드웨어에 의해 1로 자동 세팅
참조 비트가 1인 페이지는 0으로 바꾼 후 그냥 지나감
0인 페이지는 교체
모든 페이지 프레임을 다 조사한 경우 첫 번째 페이지 프레임부터 조사 작업 반복
8.3 페이지 프레임의 할당
Last updated
Was this helpful?