01.요구 페이징demand paging
1 요구 페이징의 개요
'요구 페이징: 사용자가 요청할 때 해당 페이지를 메모리로 가져오는 것
프로세스의 일부만 메모리로 가져오는 이유? 메모리를 효율적으로 관리하기 위해서
2 페이지 테이블 엔트리PTE 구조와 플래그 비트
'페이지가 스왑 영역에 있는 경우
-요구 페이징으로 인해 처음부터 물리 메모리에 올라가지 못한 경우
-메모리가 꽉 차서 스왑 영역으로 옮겨 온 경우
'플래그 비트
-접근 비트: 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트
-변경 비트: 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트
-유효 비트: 페이지가 실제 메모리에 있는지를 나타내는 비트
3 페이지 부재와 지역성locality
3.1 페이지 부재
프로세스가 페이지를 요청했을 때 그 페이지가 메모리에 없는 상황
1.프로세스에 대한 내부테이블을 검사해서 그 메모리 참조가 유효/무효 인지 알아 낸다.
2.무효한 페이지에 대한 참조라면 프로세스는 중단된다. 유효한 참조인 경우 메모리에 없으면 디스크로부터 가져와야 한다.
3.빈 공간, 자유 프레임(free frame)을 찾는다.
4.디스크에 새로이 할당된 프레임으로 해당 페이지를 읽어 들이도록 요청
5.디스크 읽기가 끝나면 이 페이지가 메모리에 있다는 것을 알리기 위해 페이지 테이블을 갱신하며 프로세스가 유지되고 있는 내부테이블을 수정한다.
6.트랩에 의해 중단되었던 명령을 다시 수행하며 프로세스는 그 페이지가 항상 메모리에 있엇던 것처럼 간주하여 해당 페이지를 접근할 수 있다.
->필요한 모든 페이지가 적재되고 나면 더 이상 부재 오류가 발생하지 않는데, 이것이 순수 요구 페이징(pure deman paging)
3.2 지역성
'CPU가 참조하는 주소가 지역에 모여져 있다는 의미
'기억장치에 접근하는 패턴이 메모리 전체에 고루 분포되는 것이 아니라 특정 영역에 집중되는 성질
'페이지 교체 알고리즘이 쫓아낼 페이지를 찾을 때는 지역성을 바탕으로 한다.
1) 공간 지역성 : 특성 클러스터들의 기억 장소들에 대해 참조가 집중적으로 이루어지는 경향으로, 참조된 메모리의 근처의 메모리를 참조. 2) 시간 지역성 : 최근 사용되었던 기억 장소들이 집중적으로 액세스 되는 경향으로, 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높다. 3) 순차 지역성 : 데이터가 순차적으로 액세스 되는 경향. 프로그램 내의 명령어가 순차적으로 구성되어있다는 것이 대표적인 경우. |
02.페이지 교체 알고리즘
1 FIFOFirst In First Out
'가장 간단한 알고리즘으로, 메모리에 올라온 지 가장 오래된 페이지를 교체한다.
'각 페이지가 올라온 시간을 페이지에 기록하거나, 페이지가 올라온 순서를 큐(Queue)에 저장하는 방식 등을 사용할 수 있다.
2 최적optimal 페이지 교체 알고리즘
'앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 알고리즘
'최적 알고리즘은 수행하기 전에 선행되어야 할 전제조건: 프로세스가 앞으로 사용할 페이지를 미리 알아야 한다는 것.
ㄴ> 이 전제 조건이 실제 활용에서는 알 방법이 없기 때문에 최적 알고리즘은 구현이 불가능한 알고리즘 이다.
3 LRULeast Recently Used
'가장 오래 사용되지 않은 페이지를 교체하는 알고리즘이다.
'최적 알고리즘은 실제 구현이 불가능하므로, 최적 알고리즘의 방식과 비슷한 효과를 낼 수 있는 방법을 사용한 것이 LRU 알고리즘이다.
'최근 최소 사용 페이지 교체 알고리즘이라고도 한다.
4 LFULeast Frequently Used
'참조 횟수가 가장 작은 페이지를 교체하는 알고리즘이다. 만약 교체 대상인 페이지가 여러 개 일 경우, LRU 알고 리즘을 따라 가장 오래 사용되지 않은 페이지로 교체한다.
'최소 빈도 사용 알고리즘이라고도 한다.
03.스레싱과 프레임 할당
1 스레싱
'하드디스크의 입출력이 너무 많아져서 잦은 페이지 부재로 작업이 멈춘 것 같은 상태
'스레싱 발생 지점: CPU 사용률이 계속 증가하다가 메모리가 꽉 차면 CPU가 작업하는 시간보다 스왑 영역으로 페이지를 보내고 새로운 페이지를 메모리에 가져오는 작업이 빈번해져서 CPU가 작업할 수 없는 상태에 이르게 되는 시점
2 프레임 할당 방식
'정적 할당: 프로세스 실행 초기에 프레임을 나누어준 후 그 크기를 고정하는 방식
'동적 할당: 프로세스를 실행하는 중에 프레임을 나누어주기도 하고 회수하기도 하는 방식
+전역 교체와 지역 교체의 비교 ...
[OS] 페이징 알고리즘에 대해 알아보자
이번년도에 꼭 취업에 성공하려는 취준생으로서 OS 공부를 다시 해야한다고 생각했어요. 주변 지인들과 이미 취업한 친구들로부터 엄청나게 들리는 OS 의 중요성...! 대학교 3학년데 OS 과목을 수강했지만 재미..
참고 자료
쉽게 배우는 운영체제, 조성호
https://seungahyoo.tistory.com/70
https://eunhyejung.github.io/os/2018/07/24/operatingsystem-study15.html
'OS' 카테고리의 다른 글
[운영체제] 가상 메모리의 기초 (0) | 2021.01.22 |
---|---|
[운영체제] 물리 메모리 관리 (0) | 2021.01.22 |
[운영체제] 교착상태 (0) | 2021.01.22 |
[운영체제] CPU 스케줄링 (0) | 2021.01.22 |
[운영체제] 프로세스와 스레드 (0) | 2021.01.22 |