본 게시글은 <쉽게 배우는 운영체제> 조성호 지음.의 연습문제에 기반했습니다.
요구 페이징, Demand paging
미리 가져오기 (캐시 등에 사용된다)
하지만 미리 가져오기는 가져온 데이터가 쓸모 없으면 낭비가 크다
유효 비트
0이면 실제 메모리에 있다!
참조 비트
변경 비트
페이지 부재, Page fault
지역성 (temporay/spatial/sequential locality)
FIFO 페이지 교체 알고리즘
최적 페이지 교체 알고리즘
LRU 페이지 교체 알고리즘, Least Recently Used
LFU 페이지 교체 알고리즘, Least Frequently Used
NUR 페이지 교체 알고리즘, Not Recently Used
2차 기회 페이지 교체 알고리즘
시계 알고리즘
스레싱, Thrashing
작업집합 모델 방식 (working set window 기반)
페이지 부재 빈도 기반 동적 프레임 할당 방식
여기서부터는 심화문제
01 요구 페이징의 의미와 효과를 설명하시오.
요구 페이징은 수행하려는 프로세스의 필요한 모듈만 먼저 올리고, 나머지는 필요 시 메모리로 불러오는 방식이다.
요구 페이징의 장점은 메모리를 효율적으로 관리할 수 있고, 응답 속도가 향상된다.
세그먼테이션 오류는 사용자의 프로세스가 주어진 메모리 공간을 벗어나거나 접근 권한이 없는 곳에 접근하면 발생하는, 사용자 프로세스에 의해 발생하는 오류로, 해당 프로세스를 강제 종료하여 해결한다
반면에 페이지 부재는 해당 페이지가 물리 메모리에 없을 때 발생하고, 메모리 관리자가 스왑 영역에서 해당 페이지를 물리 메모리로 올려서 해결한다
지역성은 기억장치에 접근하는 패턴이 메모리 전체에 고루 분포되는 것이 아니라 특정 영역에 집중되는 성질로, 공간적, 시간적, 순차적 패턴에 따라 공간 지역성, 시간 지역성, 순차적 지역성이 있다.
Least Recently Used
메모리에 올라온 후 가장 오랫동안 사용되지 않은 페이지를 스왑 영역으로 내리는 알고리즘으로, 페이지 접근 시간 (10bit), 카운터, 또는 참조 비트 shift로 구현한다
Not Used Recently
최근에 사용되지 않은 페이지를 교체하는 알고리즘으로, 참조 비트와 변경비트를 통해 최근에 사용된 페이지와 그렇지 않은 페이지를 구분한다.
프로세스 실행 초기에 프레임을 할당하고 그대로 유지하는 방식
프로세스의 크기와 상관없이 동일한 프레임 수를 할당하는 균등 할당 방식과 프로세스의 크기에 따라 프레임 수를 할당하는 비례 할당 방식으로 나뉜다
실행 중의 메모리 요구를 반영하는 프레임 할당 방식으로, 지역성 이론에 기반하여 페이지들을 집합으로 만들어 관리하는 작업집합 모델과 페이지 부재 비율의 상한선과 하한선을 정해 프레임 수를 조절하는 페이지 부재 빈도가 있다