KR101260444B1 - 페이지 교체 방법 - Google Patents

페이지 교체 방법 Download PDF

Info

Publication number
KR101260444B1
KR101260444B1 KR1020060027095A KR20060027095A KR101260444B1 KR 101260444 B1 KR101260444 B1 KR 101260444B1 KR 1020060027095 A KR1020060027095 A KR 1020060027095A KR 20060027095 A KR20060027095 A KR 20060027095A KR 101260444 B1 KR101260444 B1 KR 101260444B1
Authority
KR
South Korea
Prior art keywords
page
group
area
global
task
Prior art date
Application number
KR1020060027095A
Other languages
English (en)
Other versions
KR20070096494A (ko
Inventor
진영택
박윤원
조율원
홍성수
이재수
Original Assignee
재단법인서울대학교산학협력재단
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인서울대학교산학협력재단, 삼성전자주식회사 filed Critical 재단법인서울대학교산학협력재단
Priority to KR1020060027095A priority Critical patent/KR101260444B1/ko
Publication of KR20070096494A publication Critical patent/KR20070096494A/ko
Application granted granted Critical
Publication of KR101260444B1 publication Critical patent/KR101260444B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

적어도 하나의 태스크를 운영하는 오퍼레이팅 시스템의 페이지 교체 방법은, 상기 태스크에 의해서 페이지가 참조될 때 상기 페이지의 참조 정보를 기록하고, 상기 참조 정보에 근거해서 상기 페이지를 자주 사용하는 페이지 그룹 및 자주 사용하지 않는 페이지 그룹으로 분류하며, 상기 태스크에 의해서 요구되는 페이지가 메인 메모리에 존재하지 않는 페이지 폴트가 발생했을 때 상기 자주 사용하지 않는 페이지 그룹 내 소정 페이지를 상기 요구되는 페이지로 교체한다. 이러한 페이지 교체 방법은 주기성을 가지는 응용 프로그램에서 페이지 교체를 원활하게 지원할 수 있다.

Description

페이지 교체 방법{PAGE REPLACEMENT METHOD}
도 1은 본 발명의 바람직한 실시예에 따른 오퍼레이팅 시스템과 오퍼레이팅 시스템에 의해서 액세스되는 메인 메모리의 구성을 보여주는 도면;
도 2a 및 도 2b는 페이지들이 각각 참조되는 경우들을 예시적으로 보여주는 도면들;
도 3은 주기적 태스크로부터 메인 메모리에 대한 페이지 요구가 발생할 때 본 발명의 바람직한 실시예에 따른 오퍼레이팅 시스템의 제어 수순을 보여주는 도면; 그리고
도 4는 페이지 폴트가 발생했을 때 본 발명의 바람직한 실시예에 따른 지역 페이지 관리자에 의해서 페이지 교체가 수행되는 과정을 보여주는 플로우차트이다.
*도면의 주요 부분에 대한 설명
100 : 오퍼레이팅 시스템 110 : 전역 페이지 관리자
120 : 지역 페이지 관리자 130 : 기본 지역 페이지 관리자
200 : 메인 메모리 210 : 전역 페이지 영역
220 : FAP 영역 230 : IFAP 영역
240 : 기본 페이지 영역 250 : 페이지 테이블
본 발명은 운영 체제(operating system)에 관한 것으로, 구체적으로는 운영체제의 페이지 교체 방법에 관한 것이다.
운영체제의 가상 메모리 관리자가 사용하는 기법 중의 하나인 요구 페이징(demand paging) 기법은 가상 메모리와 물리 메모리(즉, 메인 메모리)를 페이지라는 균등한 크기의 조각으로 나눈 후, 가상 페이지들이 접근되는 경우에만 해당 페이지를 메인 메모리로 읽어 들이는 기법이다. 물리 메모리가 전부 채워졌을 경우에는 물리 메모리에 존재하는 페이지를 새롭게 읽어 들여야 하는 페이지로 교체하게 된다. 그런데 이러한 페이지 교체는 통상 두 번의 디스크 접근을 필요로 하므로 시스템의 성능을 저하시킬 우려가 있다. 따라서 가능한 한 페이지 적중률을 높여 페이지 교체를 줄일 수 있는 효과적인 페이지 교체 기법을 필요로 한다. 기존에 범용 운영체제에서 페이지 교체 기법으로 많이 사용되는 기법으로는 LRU(latest recently used)와 LFU(least frequently used)가 있다.
LRU 기법은 최근에 참조된 페이지가 다시 참조될 가능성이 크다는 점에 착안하였다. 페이지 테이블에 복사되어 있는 사용 횟수 레지스터의 값은 가장 최근에 호출된 시간을 나타내므로 페이지가 호출되면 모든 페이지의 사용 횟수 레지스터 값을 탐색하여 가장 적은 값을 가진 페이지가 요구 페이지로 교체된다. 즉, LRU 기법은 가장 오랫동안 참조되지 않은 페이지를 요구 페이지로 교체한다. LRU 기법은 많은 경우에 좋은 성능을 보이며 작업 세트(working set)의 변화에 잘 적응하지 만, 주기성을 가지는 페이지 참조 유형에 적합하지 않다. 그 이유는 주기성을 가지는 페이지 참조의 경우에는 최근에 참조된 페이지보다 오래전에 참조된 페이지가 다시 참조될 가능성이 더 높기 때문이다. 또한, LRU 기법은 구현에 있어서 막대한 오버헤드를 초래한다. 순수 LRU를 구현하기 위해서는 각 페이지들이 참조될 때마다 매번 그때의 시간을 페이지 테이블에 기억시켜야 하기 때문이다.
LFU 기법은 과거에 여러 번 참조된 페이지가 앞으로도 참조될 가능성이 크다는 점에서 착안하였다. 구체적으로 LFU 기법은 과거의 누적 페이지 참조 횟수가 가장 작은 페이지를 요구 페이지로 교체한다. LFU 기법은 확률적 참조 유형, 즉 각 페이지들이 일정한 확률로 참조되는 유형을 갖는 페이지 참조에서 우수한 성능을 보이나, 작업 세트의 변화에 잘 적응하지 못하는 문제점을 갖는다. 작업 세트가 변화하여 페이지들의 참조 확률이 변해도 과거에 누적된 참조 횟수 기록 때문에 이 변화에 잘 적응하지 못하기 때문이다. 또한, LFU 기법도 LRU의 경우와 마찬가지로 구현에 있어서 막대한 오버헤드를 초래한다. 순수 LFU의 구현을 위해서는 각 페이지들이 참조될 때마다 매번 참조 횟수가 페이지 테이블에 반영되어야 하기 때문이다.
따라서 본 발명의 목적은 주기성을 가지는 응용 프로그램을 원활하게 지원할 수 있는 페이지 교체 방법을 제공하는 데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 적어도 하나의 태스크를 운영하는 오퍼레이팅 시스템의 페이지 교체 방법은: 상기 태스크에 의해서 페이지가 참조될 때 상기 페이지의 참조 정보를 기록하는 단계, 상기 참조 정보에 근거해서 상기 페이지를 자주 사용하는 페이지 그룹 및 자주 사용하지 않는 페이지 그룹으로 분류하는 단계, 그리고 상기 태스크에 의해서 요구되는 페이지가 메인 메모리에 존재하지 않는 페이지 폴트가 발생했을 때 상기 자주 사용하지 않는 페이지 그룹 내 소정 페이지를 상기 요구되는 페이지로 교체하는 단계를 포함한다.
상기 태스크가 주기적 태스크일 때 상기 분류 단계는 상기 주기적 태스크의 1주기가 종료되면 수행된다.
상기 페이지의 참조 정보는 페이지 테이블에 저장된다.
상기 오퍼레이팅 시스템은 상기 주기 태스크를 운영하기 위한 지역 페이지 관리자를 포함하며, 상기 지역 페이지 관리자는 메인 메모리의 상기 주기 태스크와 관련 있는 상기 자주 사용하는 페이지 그룹을 저장하기 위한 영역 및 자주 사용하지 않는 페이지 그룹을 저장하기 위한 영역을 액세스한다.
상기 오퍼레이팅 시스템은 적어도 하나의 비주기 태스크를 운영하기 위한 기본 지역 페이지 관리자를 더 포함한다.
상기 오퍼레이팅 시스템은 복수 개의 태스크들을 운영하기 위한 전역 페이지 관리자를 더 포함하며, 상기 전역 페이지 관리자는 상기 메인 메모리의 상기 복수 개의 태스크들과 관련있는 전역 페이지 영역을 액세스한다.
상기 페이지 교체 방법은, 상기 페이지 폴트가 발생했을 때 상기 지역 페이 지 관리자에 의해서 상기 요구되는 페이지가 상기 전역 페이지 영역에 존재하는 지를 조사하는 단계, 그리고 상기 요구되는 페이지가 상기 전역 페이지 영역에 존재할 때 상기 전역 페이지 영역 내 상기 요구되는 페이지를 상기 자주 참조되는 페이지 그룹으로 분류하는 단계를 더 포함한다.
또한, 상기 페이지 교체 방법은, 상기 요구되는 페이지가 상기 전역 페이지 영역에 존재하지 않을 때 상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 많은 지를 판별하는 단계와, 상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 상기 자주 참조되는 페이지 그룹에 포함되는 페이지의 수보다 소정의 수만큼 클 때 상기 자주 사용하지 않는 페이지 그룹에 포함된 소정 페이지를 상기 요구되는 페이지로 교체하는 단계, 그리고 상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 상기 자주 참조되는 페이지 그룹에 포함되는 페이지의 수보다 소정의 수만큼 크지 않을 때 상기 전역 페이지 영역에 포함된 소정 페이지를 상기 요구되는 페이지로 교체하는 단계를 포함한다.
상기 요구되는 페이지와 교체되는 상기 자주 사용하지 않는 페이지 그룹 내 상기 페이지는 선입선출 방식으로 선택된다.
상기 페이지 교체 방법은, 상기 참조 정보가 없는 상기 페이지를 상기 자주 사용하는 페이지 그룹으로 분류하는 단계를 더 포함한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 오퍼레이팅 시스템과 오퍼레이팅 시스템에 의해서 액세스되는 메인 메모리의 구성을 보여주는 도면이다. 오퍼레이팅 시스템(100)은 전역 페이지 관리자(global page management, 110), 지역 페이지 관리자(local page management, 120) 그리고 기본 지역 페이지 관리자(basic local page management, 130)를 포함한다.
최상위 수준의 전역 페이지 관리자(110)는 하나의 오퍼레이팅 시스템 내에 오직 하나만 존재하며, 메인 메모리 내 페이지 프레임들을 다른 지역 페이지 관리자에게 할당하거나 해제하는 기능을 수행한다.
지역 페이지 관리자(120)는 주기 태스크(periodic task)마다 하나씩 할당된다. 기본 지역 페이지 관리자(130)는 비주기 태스크(non-periodic task)들의 페이지 교체를 수행하며, 하나의 오퍼레이팅 시스템 내에 오직 하나만 존재한다. 기본 지역 페이지 관리자가 사용하는 페이지 교체 기법으로는 통상의 페이지 교체 기법, 예컨대 LRU, LFU, 선입선출(이하 FIFO, First-In First-Out) 및 세그먼트(segment) FIFO 중 어느 하나이다. 오버헤드를 최소화하면서 LRU에 가까운 성능을 내기 위해서 세그먼트 FIFO가 가장 적합하다.
메인 메모리(200)는 전역 페이지 관리자(110)에 의해서 관리되는 전역 페이지 영역(210), 지역 페이지 관리자(120)에 의해서 관리되는 자주 사용되는 페이지(frequently accessed page, FAP) 영역(220) 및 가끔 사용되는 페이지(infrequently accessed page, IFAP) 영역(230) 그리고 기본 지역 페이지 관리자(130)에 의해서 관리되는 기본 페이지 영역(240)을 포함한다. 도 1에서는 지역 페이지 관리자(120)가 하나인 것으로 표기되고 설명되나, 오퍼레이팅 시스템(100) 내 지역 페이지 관리자(120) 그리고 메인 메모리(200)의 FAP 영역(220)과 IFAP 영역(230)은 복수 개씩 존재할 수 있다.
최상위 수준의 전역 페이지 관리자(110)는 지역 페이지 관리자(120)의 요청에 응답해서 지역 페이지 관리자(120)에게 전역 페이지 영역(210) 내 페이지 프레임을 할당하여 주고, 전역 페이지 영역(210) 내 채워진 페이지 프레임의 개수가 일정 수준을 유지하도록 지역 페이지 관리자(120)에게서 페이지 프레임을 반납받는다. 이때 페이지 프레임 반납을 요청할 지역 페이지 관리자(120)는 여러 기준에 의해서 선택할 수 있다. 그 예로써 지역 페이지 관리자(120)에 연관된 태스크의 우선 순위, 연관된 태스크가 보유한 페이지 중 가끔 사용되는 페이지의 개수 등을 사용할 수 있다. 반납된 페이지는 전역 페이지 관리자(110)가 관리하는 전역 페이지 영역(210)에 저장된다. 단 전역 페이지 관리자(110)에게 반납된 페이지의 내용은 삭제되지 않으며, 지역 페이지 관리자(120)에게 할당될 때까지 유지된다. 따라서 전역 페이지 영역(210)의 내용은 지역 페이지 관리자(120)가 요청하는 경우 재사용될 수 있다. 이 실시예에서 전역 페이지 영역(210)은 FIFO 방식으로 운영된다.
본 발명의 실시예에 따른 페이지 교체 방법은 응용 태스크의 페이지들을 자주 사용되는 페이지(FAP) 그룹과 자주 사용되지 않는 페이지(IFAP) 그룹으로 나누어 관리한다. 자주 사용되지 않는 페이지 그룹(IFAP)에는 후술할 기준에 의해서 자주 사용되지 않는다고 판단된 페이지들이 포함되며, 자주 사용되는 페이지(IFAP) 그룹에는 그 이외의 모든 페이지들이 포함된다. 또한, 자주 사용되는 페이지(IFAP) 그룹에는 아직 참조 유형이 알려지지 않는 페이지, 즉 새로이 참조되어 과 거의 참조 기록이 없는 페이지들도 함께 포함된다. 바람직한 다른 실시예에서는 아직 참조 유형이 알려지지 않은 페이지들을 별도의 그룹으로 관리할 수도 있기 때문에 도 1에 제시된 실시예는 본 발명에 있어서 페이지 그룹 관리의 일 실시예로서 이해되어야 한다. FAP 영역(220)과 IFAP 영역(230)은 원소들 간의 순서를 설정하기 위해서 FIFO 방식으로 관리된다.
본 발명에 따른 페이지 교체 기법에서는 페이지의 참조 유형을 구분하기 위해서 매 주기에서 검출한 페이지 참조 여부를 사용한다. 페이지 참조 여부는 도 1에 도시된 페이지 테이블(250)에 기입된다. 구체적으로 페이지가 처음 참조되어 메인 메모리에 적재되면 자주 사용되는 페이지로 구분된다. 자주 사용되는 페이지로 구분된 페이지들은 소정의 주기수 동안 전혀 참조되지 않으면, 자주 사용되지 않는 페이지로 재분류 된다. 즉, 페이지가 다음과 같은 수학식 1을 만족하면 자주 사용되지 않는 페이지(IFAP)로 분류된다.
fw < 1 ⇔ fw = 0 (∵ fw는 음이 아닌 정수)
수학식 1에서 w는 소정의 주기를 의미하고, fw는 현재 시점으로부터 w주기 만큼 경과했을 때 페이지의 참조 횟수를 의미한다.
이와 유사하게 자주 사용되지 않는 페이지(IFAP)로 분류된 페이지가 소정의 사간 동안 두 번 이상 참조되면, 자주 사용되는 페이지로 재분류된다. 이는 수학식 2와 같이 표현된다.
fw > 1 ⇔ fw ≥ 2 (∵ fw는 음이 아닌 정수)
또한, 수학식 1과 수학식 2에 의해서 현재 시점으로부터 w주기만큼 경과한 후 단 한 번 참조된 페이지는 현재 자신이 속한 집합에 계속 남아 있음을 알 수 있다.
도 2a 및 도 2b는 페이지들(P1, P2)이 각각 참조되는 경우들을 예시적으로 보여주고 있다.
도 2a에 도시된 바와 같이 자주 참조되는 페이지(FAP) 그룹으로 분류된 페이지(P1)가 w 주기보다 짧은 주기동안 참조되지 않다가 다시 자주 참조되는 경우 t1에서 참조된 총 횟수는 1이다. 이 경우 t1에서 FAP 영역(220)으로부터 페이지를 바로 방출하는 것은 부적절하다. 왜냐하면, t1이후에 페이지(P1)이 자주 참조되기 때문이다.
도 2b는 자주 참조되지 않는 페이지(IFAP)로 분류된 페이지(P2)가 t2에서 참조되는 경우를 보여주고 있다. 자주 참조되지 않는 페이지(IFAP)로 분류된 페이지(P2)가 t2에서 참조되었다고 이를 바로 자주 사용되는 페이지(FAP) 그룹으로 분류하게 되면, 다시 오랫동안 참조되지 않을 페이지를 한동안 메인 메모리에 유지하게 되므로 바람직하지 않다.
참조 횟수 계산에 반영되는 주기(w)는 일반적으로 시스템 관리자에 의해 미리 설정되는데, 선택적으로 상황에 따라 조정될 수도 있다. 이를테면 자주 참조되는 페이지(FAP) 그룹에 속한 페이지 수와 자주 참조되지 않는 페이지(IFAP) 그룹에 속한 페이지 수의 상대적인 비율을 일정하게 유지하기 위해서 지역 페이지 관리자 (120)가 주기(w)를 동적으로 조정할 수도 있고, 응용 프로그램별로 사용자가 시간(w)을 적절히 조절할 수도 있다.
지역 페이지 관리자(120)가 수학식 1 및 수학식 2에 근거해서 페이지들을 분류하는 의사 코드(pseudo code)의 예는 다음과 같다.
-----------------------------------------------------------------------
1. update_page_status {
2. for each page p being used by the current task {
3. if(is_in_FAP(p)) {
4. if(page_referenced(p)){
5. counter(p) = w;
6. }
7. else {
8. if(counter(p) == 0) {
9. move_page_to_IFPA(p);
10. }
11. else counter(p) = counter(p) - 1;
12. }
13. }
14. else {
15. if(page_referenced{p)) {
16. if(counter(p) > 0) {
17. move_page_to_FAP(p);
18. } else {
19. move_page_to_IFAP(p);
20. }
21. counter(p) = w;
22. }
23. else {
24. if(counter(p) != 0) counter(p) = counter(p) - 1;
25. }
26. }
27. clear_referenced(p);
28. }
29. }
-----------------------------------------------------------------------
위 소스 코드에서 왼쪽의 숫자는 설명의 편의를 위한 라인(line)을 표시하는 것으로서 실제 소스 코드에는 포함되지 않는다. 이와 같은 소스 코드는 일 예에 불과하며, 다양하게 변경될 수 있다.
라인 3의 is_in_FAP(p)는 페이지 p가 FAP 영역(220)에 있는 지를 조사하는 함수이고, 라인 15의 page_referenced(p)는 페이지 테이블(250)에 저장된 페이지 p 의 참조 비트가 '1'인 지를 조사하는 함수이다. 라인 21의 counter(p)는 페이지 p에 연관된 카운터 변수를 얻는 함수이다. 라인 9 및 19의 move_page_to_IFAP(p)와 라인 17의 move_page_to_FAP(p)는 해당 페이지(p)를 각각 IFAP 영역(230)과 FAP 영역(220)으로 이동하는 함수인데, 이 함수들은 페이지(p)가 이미 해당 영역에 저장되어 있는 경우에는 그 위치를 집합의 가장 뒤로 옮긴다. 마지막으로 라인 27의 clear_referenced(p)는 페이지 테이블(250) 내 페이지(p)의 참조 비트를 클리어하는 함수이다. 상기 의사 코드는 카운터를 이용한 페이지 분류 방법을 개략적으로 나타낸 것으로서 실제로 구현함에 있어서는 집합 원소의 관리, 카운터를 유지하는 방법을 포함한 여러 요소들이 추가적으로 고려되어야 한다. 또한, 페이지 분류를 위해서 상기 카운터를 이용한 의사 코드 외에 참조된 주기를 기록하는 방법으로도 구현이 가능하다.
상기 의사 코드에서 페이지 분류의 실시예는 참조 비트가 지원되지 않는 ARM과 같은 프로세서에도 적은 오버헤드로 적용이 가능하다. 이것은 상기 의사 코드의 참조 비트를 검사하는 부분과 참조 비트를 클리어하는 부분을 유효 비트를 검사하고 유효 비트를 클리어하는 것으로 각각 대체하는 것에 의해 가능하다. 단 참조 비트를 이용할 경우에는 첫 번째 참조가 일어나면 하드웨어가 참조 비트를 켜주는 반면, 유효 비트를 이용할 경우에는 첫 번째 참조가 일어날 때 페이지 폴트가 발생하게 된다. 이어 페이지 폴트를 처리하는 오퍼레이팅 시스템의 모듈에서 해당 페이지가 참조되었음을 별도의 공간에 표시해두고, 유효 비트를 '1'로 설정한다. 이때 페이지 참조가 기록되는 공간은 바람직하게는 카운터가 기록되는 공간과 같다. 그 리고 이러한 페이지 폴트를 모조 페이지 폴트라고 따로 부르는데 보통의 페이지 폴트와 다른 점은 모조 페이지 폴트에서는 보통의 페이지 폴트와는 달리 해당 페이지가 메모리에 존재한다는 점이다. 따라서 적은 오버헤드로 모조 페이지 폴트를 처리할 수 있게 되므로, 참조 비트가 지원되지 않는다고 하더라도 적은 오버헤드로 페이지를 분류하는 것이 가능해진다.
각 주기 태스크들은 그 주기의 수행을 끝날 때마다 오퍼레이팅 시스템에게 그 사실을 시스템 콜 등의 형태로 알려주어야 한다. 이때 도 1의 지역 페이지 관리자(120)는 앞서 언급한 의사 코드를 이용하여 페이지 분류를 수행한다. 이어서 지역 페이지 관리자(120)가 페이지 교체를 수행하는 방법에 관해서 구체적으로 설명한다.
도 3은 주기적 태스크로부터 메인 메모리(200)에 대한 페이지(p) 요구가 발생할 때 본 발명의 바람직한 실시예에 따른 오퍼레이팅 시스템의 제어 수순을 보여주고 있다.
단계 300에서 태스크에 의해서 소정 페이지(p)에 대한 접근이 요청된다.
단계 302에서 지역 페이지 관리자(120)가 호출된다.
단계 304에서 태스크에 의해서 요구된 페이지(p)가 메인 메모리(200)의 FAP 영역(220)에서 검색되지 않으면 페이지 폴트가 발생하여 단계 320에서 페이지 교체 동작이 수행된다.
태스크에 의해서 요구된 페이지(p)가 메인 메모리(200)의 FAP 영역(220)에서 검색되면 단계 306으로 진행한다.
단계 306에서 페이지 참조 정보가 페이지 테이블(250)에 기입된다.
단계 308에서 현재의 페이지 요구가 주기적 태스크의 끝이면 그 제어는 단계 310으로 진행한다. 단계 310에서 지역 페이지 관리자(200)는 페이지(p)를 FAP 그룹 또는 IFAP 그룹으로 분류한다. 페이지(p)는 참조 정보에 근거해서 FAP 그룹 또는 IFAP 그룹으로 분류된다.
도 4는 페이지 폴트가 발생했을 때 본 발명의 바람직한 실시예에 따른 지역 페이지 관리자(120)에 의해서 페이지 교체가 수행되는 과정을 보여주는 플로우차트이다.
단계 410에서 지역 페이지 관리자(120)는 전역 페이지 관리자(110)에게 전역 페이지 영역(210) 내 요구되는 페이지(p)가 존재하는 지를 검색할 것을 요청한다. 만일 전역 페이지 영역(210) 내 요구되는 페이지(p)가 존재하면 전역 페이지 관리자(110)로부터 페이지 프레임을 할당받는다. 단계 470에서 FAP 영역(220)의 카운트 값을 변경하고, 단계 480에서 페이지 테이블(250)을 변경한다. 이로써 전역 페이지 영역(210) 내 저장되어 있던 요구되는 페이지(p)는 FAP 그룹으로 분류된다.
만일 전역 페이지 영역(210) 내 요구되는 페이지(p)가 존재하지 않으면 단계 430에서 IFAP 영역(230)에 저장된 페이지들의 수가 FAP 영역(220)에 저장된 페이지들의 수보다 충분히 많은 지를 판별한다. IFAP 영역(230)에 저장된 페이지들의 수와 FAP 영역(220)에 저장된 페이지들의 수의 비교는 수학식 3과 같은 방식으로 수행된다.
Figure 112006020966496-pat00001
수학식 3에서 length(IFAP)와 length(FAP)는 각각 IFAP 그룹 및 FAP 그룹에 속한 페이지들의 수를 의미한다. 그리고 임계값 r은 시스템 관리자에 의해 미리 설정되거나 선택적으로 변경될 수 있다.
만일 IFAP 영역(230)에 저장된 페이지들의 수가 FAP 영역(220)에 저장된 페이지들의 수보다 충분히 많으면 단계 440에서 IFAP 영역(230) 내 페이지 프레임들 중 소정 페이지 프레임을 요구되는 페이지(p)를 저장하기 위해 선택한다. 이때 IFAP 영역(230) 내 페이지 프레임들 중 페이지가 가장 먼저 저장된 페이지 프레임이 선택된다. 단계 450에서 선택된 페이지 프레임에 요구되는 페이지(p)가 저장된다.
만일 IFAP 영역(230)에 저장된 페이지들의 수가 FAP 영역(220)에 저장된 페이지들의 수보다 충분히 많지 않다면 단계 450에서 전역 페이지 영역(210) 내 페이지 프레임들 중 소정 페이지 프레임을 선택한다. 이때 전역 페이지 영역(210) 내 페이지 프레임들 중 페이지가 가장 먼저 저장된 페이지 프레임이 선택된다. 단계 450에서 선택된 페이지 프레임에 요구되는 페이지(p)가 저장된다.
IFAP 영역(230) 또는 전역 페이지 영역(210)에 새로운 페이지(p)가 저장되었고, 새로 저장된 페이지(p)는 자주 사용되는 페이지(FAP) 그룹에 포함되므로 단계 470에서 FAP 영역(470)에 대한 카운트 값을 변경한다.
단계 480에서 변경된 카운트 값이 페이지 테이블(250)에 반영된다.
상술한 바와 같이 본 발명의 페이지 교체 방법은 페이지 교체를 위해서 참조된 주기의 수(w)를 사용한다. 특히, 최근의 주기들에서 얼마나 참조되었는 지의 정보가 페이지 테이블(250)에 저장되므로 페이지 교체 방법의 환경 적응도가 높다. 또한, 매 주기의 끝마다 페이지들의 참조 여부를 조사해서 페이지들을 FAP 그룹 또는 IFAP 그룹으로 분류하므로 오버헤드가 최소화된다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이와 같은 본 발명에 의하면 주기성을 가지는 응용 프로그램을 원활하게 지원할 수 있는 페이지 교체 방법이 제공된다. 본 발명의 페이지 교체 방법의 환경 적응도가 높으며 오버헤드가 최소화된다.

Claims (10)

  1. 적어도 하나의 태스크를 운영하는 오퍼레이팅 시스템의 페이지 교체 방법에 있어서:
    상기 태스크에 의해서 페이지가 참조될 때 상기 페이지의 참조 정보를 일정주기동안 기록하는 단계와;
    상기 참조 정보에 근거해서 상기 페이지를 자주 사용하는 페이지 그룹 및 자주 사용하지 않는 페이지 그룹 중 어느 하나로 분류하는 단계; 그리고
    상기 태스크에 의해서 요구되는 페이지가 메인 메모리에 존재하지 않는 페이지 폴트가 발생했을 때 상기 자주 사용하지 않는 페이지 그룹 내 소정 페이지를 상기 요구되는 페이지로 교체하는 단계를 포함하고,
    상기 일정 주기는 선택적으로 조정되는 것을 특징으로 하는 페이지 교체 방법.
  2. 제 1 항에 있어서,
    상기 태스크가 주기적 태스크일 때 상기 분류 단계는 상기 주기적 태스크의 1주기가 종료되면 수행되는 것을 특징으로 하는 페이지 교체 방법.
  3. 제 1 항에 있어서,
    상기 페이지의 참조 정보는 페이지 테이블에 저장되는 것을 특징으로 하는 페이지 교체 방법.
  4. 제 2 항에 있어서,
    상기 오퍼레이팅 시스템은 상기 주기 태스크를 운영하기 위한 지역 페이지 관리자를 포함하며;
    상기 지역 페이지 관리자는 메인 메모리의 상기 주기 태스크와 관련있는 상기 자주 사용하는 페이지 그룹을 저장하기 위한 영역 및 자주 사용하지 않는 페이지 그룹을 저장하기 위한 영역을 액세스하는 것을 특징으로 하는 페이지 교체 방법.
  5. 제 4 항에 있어서,
    상기 오퍼레이팅 시스템은 적어도 하나의 비주기 태스크를 운영하기 위한 기본 지역 페이지 관리자를 더 포함하는 것을 특징으로 하는 페이지 교체 방법.
  6. 제 4 항에 있어서,
    상기 오퍼레이팅 시스템은 복수 개의 태스크들을 운영하기 위한 전역 페이지 관리자를 더 포함하며;
    상기 전역 페이지 관리자는 상기 메인 메모리의 상기 복수 개의 태스크들과 관련있는 전역 페이지 영역을 액세스하는 것을 특징으로 하는 페이지 교체 방법.
  7. 제 6 항에 있어서,
    상기 페이지 폴트가 발생했을 때 상기 지역 페이지 관리자에 의해서 상기 요구되는 페이지가 상기 전역 페이지 영역에 존재하는 지를 조사하는 단계; 그리고
    상기 요구되는 페이지가 상기 전역 페이지 영역에 존재할 때 상기 전역 페이지 영역 내 상기 요구되는 페이지를 상기 자주 참조되는 페이지 그룹으로 분류하는 단계를 더 포함하는 것을 특징으로 하는 페이지 교체 방법.
  8. 제 7 항에 있어서,
    상기 요구되는 페이지가 상기 전역 페이지 영역에 존재하지 않을 때 상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 많은 지를 판별하는 단계와;
    상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 상기 자주 참조되는 페이지 그룹에 포함되는 페이지의 수보다 소정의 수만큼 클 때 상기 자주 사용하지 않는 페이지 그룹에 포함된 소정 페이지를 상기 요구되는 페이지로 교체하는 단계; 그리고
    상기 자주 참조되지 않는 페이지 그룹에 포함되는 페이지의 수가 상기 자주 참조되는 페이지 그룹에 포함되는 페이지의 수보다 소정의 수만큼 크지 않을 때 상기 전역 페이지 영역에 포함된 소정 페이지를 상기 요구되는 페이지로 교체하는 단계를 포함하는 것을 특징으로 하는 페이지 교체 방법.
  9. 제 8 항에 있어서,
    상기 요구되는 페이지와 교체되는 상기 자주 사용하지 않는 페이지 그룹 내 상기 페이지는 선입선출 방식으로 선택되는 것을 특징으로 하는 페이지 교체 방법.
  10. 제 1 항에 있어서,
    상기 참조 정보가 없는 상기 페이지를 상기 자주 사용하는 페이지 그룹으로 분류하는 단계를 더 포함하는 것을 특징으로 하는 페이지 교체 방법.
KR1020060027095A 2006-03-24 2006-03-24 페이지 교체 방법 KR101260444B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060027095A KR101260444B1 (ko) 2006-03-24 2006-03-24 페이지 교체 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060027095A KR101260444B1 (ko) 2006-03-24 2006-03-24 페이지 교체 방법

Publications (2)

Publication Number Publication Date
KR20070096494A KR20070096494A (ko) 2007-10-02
KR101260444B1 true KR101260444B1 (ko) 2013-05-06

Family

ID=38803324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060027095A KR101260444B1 (ko) 2006-03-24 2006-03-24 페이지 교체 방법

Country Status (1)

Country Link
KR (1) KR101260444B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101994672B1 (ko) 2012-12-04 2019-07-01 삼성전자 주식회사 저장 장치 및 저장 장치의 동작 방법
KR101897370B1 (ko) * 2016-12-22 2018-09-11 이화여자대학교 산학협력단 페이지 교체 방법 및 페이지 교체 장치

Also Published As

Publication number Publication date
KR20070096494A (ko) 2007-10-02

Similar Documents

Publication Publication Date Title
US7096321B2 (en) Method and system for a cache replacement technique with adaptive skipping
US9767140B2 (en) Deduplicating storage with enhanced frequent-block detection
US10725669B2 (en) Incremental snapshot based technique on paged translation systems
CA2610180C (en) Managing memory pages
US10725903B2 (en) Unified paging scheme for dense and sparse translation tables on flash storage systems
EP0463874A2 (en) Cache arrangement for file system in digital data processing system
US11816027B2 (en) Translation lookup and garbage collection optimizations on storage system with paged translation table
US10235287B2 (en) Efficient management of paged translation maps in memory and flash
US20060069876A1 (en) Method and system of clock with adaptive cache replacement and temporal filtering
US6842826B1 (en) Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache
US7058766B2 (en) Method and system of adaptive replacement cache with temporal filtering
US10353813B2 (en) Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
KR101260444B1 (ko) 페이지 교체 방법
US7080206B2 (en) System and method for adaptively loading input data into a multi-dimensional clustering table
KR20040076313A (ko) 버퍼 캐시 분할 관리 방법
Banerjee et al. A New Proposed Hybrid Page Replacement Algorithm (HPRA) in Real Time Systems.
JP3751814B2 (ja) キャッシュメモリ制御方式
US20080270676A1 (en) Data Processing System and Method for Memory Defragmentation
Riaz-ud-Din Adapting ACME to the database caching environment: a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Information Systems at Massey University

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 7