KR100354274B1 - 주전산기의페이지디렉토리공유방법 - Google Patents

주전산기의페이지디렉토리공유방법 Download PDF

Info

Publication number
KR100354274B1
KR100354274B1 KR1019980034387A KR19980034387A KR100354274B1 KR 100354274 B1 KR100354274 B1 KR 100354274B1 KR 1019980034387 A KR1019980034387 A KR 1019980034387A KR 19980034387 A KR19980034387 A KR 19980034387A KR 100354274 B1 KR100354274 B1 KR 100354274B1
Authority
KR
South Korea
Prior art keywords
page
shared
memory
page directory
shared memory
Prior art date
Application number
KR1019980034387A
Other languages
English (en)
Other versions
KR20000014803A (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 KR1019980034387A priority Critical patent/KR100354274B1/ko
Publication of KR20000014803A publication Critical patent/KR20000014803A/ko
Application granted granted Critical
Publication of KR100354274B1 publication Critical patent/KR100354274B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

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

Abstract

본 발명은 다중처리기상에서 많은 페이지 테이블의 소비를 방지하고 페이지 테이블의 일관성 유지가 용이토록 한 주전산기의 페이지 디렉토리 공유기법에 관한 것으로서, 이러한 본 발명은 공유 메모리가 생성된 상태에서 프로세스의 공유 메모리 접근이 시도되면 공유 메모리의 물리 페이지 프레임을 매핑시키기 위해 페이지 테이블을 만들고 공유 페이지 디렉토리를 형성시키는 단계와; 형성된 공유 페이지 디렉토리 엔트리를 해당 프로세스의 페이지 디렉토리 엔트리(Page Directory Entry:PDE)로 복사하는 단계와; 공유 페이지 디렉토리 엔트리가 지시하는 페이지 테이블(Page Table)을 통해 주소 변환을 수행하는 단계를 순차 실행시킴으로써, 다수의 프로세스가 공유 메모리에 접근을 시도하는 경우 하나의 페이지 테이블만을 형성시켜 주소 변환이 가능하므로 페이지 테이블의 부족 현상을 방지할 수 있고, 또한 페이지 테이블 사용에 따른 오버헤드도 줄일 수 있다.

Description

주전산기의 페이지 디렉토리 공유방법{Method for sharing page directory in main computer}
본 발명은 다중처리기상에서 메모리 관리 유니트(MMU : Memory Management Unit)를 위한 공유페이지 디렉토리 기법으로서 다수의 사용자 요구를 처리해야하는 프로그램에서 많은 페이지 테이블의 소비를 방지하고 페이지 테이블의 일관성 유지가 용이토록 주전산기의 페이지 디렉토리 공유방법에 관한 것이다.
일반적으로, 다수의 사용자 요구를 처리해야하는 프로그램에서는 메모리의 일정한 부분을 공유함으로써, 프로그램 운용에 필요한 정보를 상호 교환하게 된다.
이러한 메모리의 일정한 부분을 공유하는 것은 공유 메모리(shared memory)를 통해 이루어진다. 공유 메모리는 운영체제에서 가상 기억 시스템(Virtual Memory System)을 통해 구현된다.
여기서, 가상 기억 시스템은 가상 주소 공간과 실제 주소 공간을 완전히 구분하여 사용자는 가상 주소 공간에서 프로그램을 하며, 운영 체제에서 이와 실제 주소 공간의 연결을 맺어준다. 이때 전자를 구성하고 있는 기억 장소를 가상 기억 시스템, 후자를 구성하는 것을 실제 또는 물리적 기억 시스템이라고 한다.
가상 기억 시스템은 주기억장치의 용량보다 훨씬 큰 가상 공간을 사용자가 쓸 수 있게 하는 것인데, 이것은 바인딩 타임(binding time)을 늦추어서 프로그램의 재배치를 용이하게 하며, 오버레이(overlay) 문제를 자동적으로 해결하자는 취지에서 개발되었다.
가상 기억 시스템의 개념을 간략히 설명하면 다음과 같다.
N을 프로그램의 주소 공간이라 하고, M을 주기억 장소 공간이라고 할 때 이들의 관계는 매핑f에 의해 정의된다.
f : N -> M
따라서 프로그램상의 주소 x가 주기억 장소 y에 적재되어 있으면, y는 y=f(x)에 의해 주어진다. f는 보통 표의 형태로 나타나게 된다.
그러나, 이를 단어 단위로 하면 이 표의 크기는 M의 용량과 일치하게 되므로 표의 크기가 너무 커진다. 뿐만 아니라 실제로 가상 공간은 대부분의 경우 디스크에 존재하게 되는데, 디스크에서는 한 단어 단위가 아니라 단어의 집합인 블록 단위로 주소가 주어지므로 실제에 있어서 이러한 매핑(mapping)은 블록 단위로 일어난다. 이러한 블록을 페이지(page)라 한다. 따라서 가상 기억 시스템은 페이지 단위로 구성되어 있으며 주기억 장소 역시 이와 같은 단위로 구분되는데 이를 페이지 프레임(page frame)이라 한다.
한편, 다중프로세서상의 운영체제는 가상 주소(virtual address)를 실제 주소로 변환하기 위하여 2단계 페이지 테이블(2-level page table)을 통해 변환하는 메모리 관리 유니트(MMU)를 이용한다. 다수의 사용자 요구를 처리해야 하는 프로그램에서 프로그램에 필요한 정보를 서로간에 이용하기 위해 공유메모리를 사용할 때, 운영체제는 많은 페이지 테이블의 사용으로 인한 메모리의 소비와 페이지 테이블 일관성(consistency) 유지를 위한 시간 소비 등에 직면하게 된다. 이러한 자원을 소비하면 운영체제의 성능을 저하시키게 된다.
이를 좀 더 상세히 살펴보면 다음과 같다.
첨부한 도면 도1은 메모리관리 유니트(MMU)를 사용하는 운영체제의 가상 메모리 시스템 구성도로서, 이는 3개의 프로세스가 8M바이트 크기의 메모리를 공유하는 방법을 도시한 것이다.
여기서, 참조번호 1,2,3은 3개의 프로세스(프로세스A - 프로세스C)에 각각 대응하는 페이지 디렉토리이고, 4 내지 9는 페이지 테이블이고, 10은 8M바이트 크기의 공유 메모리이다.
여기서, 공유 메모리(10)는 4M바이트 단위의 2개의 메모리(10a)(10b)로 구현된다.
이와 같이 구현되는 메모리 관리 유니트(MMU)를 사용하는 운영체제의 가상 메모리 시스템의 동작을 설명하면 다음과 같다.
먼저, 하나의 프로세스(프로세스A)가 공유 메모리(10)를 자신의 주소 공간에 부착하면 운영체제는 공유 메모리(10)에 속한 물리 페이지를 매핑하기 위하여 페이지 테이블(4)(5)을 할당하도록 한다.
예를 들어, 8M 바이트의 공유 메모리(10)를 자신의 주소 공간에 부착하기 위해서는 8M 바이트의 물리 페이지를 주소 변환하기 위해 2개의 페이지 테이블(4)(5)을 할당해야 가상 주소를 물리 주소로 변환할 수 있다.
주소 변환을 위해 운영체제는 프로세스 단위로 페이지 테이블을 할당한다. 따라서 위의 예와 같이 8M 바이트의 물리 메모리를 세 개의 프로세스(프로세스A - 프로세스C)가 공유하려고 한다면(공유 메모리), 각각의 프로세스는 자신들의 가상주소 변환을 위해 각각 2개의 페이지 테이블을 주소 변환을 위해 사용하게 된다.
즉, 도1에서 프로세스A는 페이지 테이블(4)(5)을 사용하고, 프로세스B는 페이지 테이블(6)(7)을 사용하며, 프로세스C는 페이지 테이블(8)(9)을 사용하여 공유 메모리(10)를 공유하게 된다.
그런데, 대규모의 공유 메모리를 많은 사용자들이 접근할 때 메모리 관리 유니트(MMU)를 기반으로 하는 운영체제는 각각의 사용자(프로세스)에 대해 공유메모리에 대한 주소변환을 하기 위해 각각의 페이지 테이블을 할당하게 되므로 많은 페이지 테이블 할당으로 메모리의 소비가 커진다는 단점이 있었으며, 또한 테이블 부족 현상이 발생되는 문제점도 발생한다.
또한, 페이지 테이블의 일관성을 유지하는 오버헤드가 증가하는 문제점도 있다.
즉, 공유 메모리를 위해 할당된 물리 메모리를 매핑시키기 위해 공유 메모리를 접근하는 모든 프로세스가 주소변환을 위해 각각의 페이지 테이블을 유지할 때, 그 중 한 프로세스에 의한 페이지의 변경이나 페이징에 의해 페이지가 스왑(swap)된 경우 해당 프로세스의 페이지 테이블을 변경해야 하므로 오버헤드가 증가하는 문제점을 발생한다. 그리고 공유 메모리를 접근하는 다른 모든 프로세스들의 페이지 테이블을 변경해 주어야만 페이지 테이블의 일관성을 유지하게 되는데 이 작업에 따른 오버헤드가 커지게 된다.
이에 본 발명은 상기와 같은 메모리 관리 유니트(MMU)를 기반으로 하는 운영체제에서의 가상 기억 시스템에서 발생되는 제반 문제점을 해결하기 위해서 제안된 것으로,
본 발명은 인텔 펜티엄 프로세스(Intel Pentium Processor)를 탑재한 다중처리기상에서 공유페이지 디렉토리를 구현하여 여러 프로세스가 공유 메모리를 사용하는데 있어서 발생되는 중복된 페이지 테이블의 소비를 방지하고 페이지 테이블의 일관성 유지가 용이토록 한 주전산기의 페이지 디렉토리 공유방법을 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 의한 방법은,
공유 메모리가 생성된 상태에서 프로세스의 공유 메모리 접근이 시도되면 공유 메모리의 물리 페이지 프레임을 매핑 시키기 위해 하나의 공유 페이지 테이블을 만들고 공유 페이지 디렉토리를 형성시키는 단계와;
상기 형성된 공유 페이지 디렉토리의 공유 페이지 디렉토리 엔트리를 해당 프로세스의 페이지 디렉토리 엔트리로 복사하는 단계와;
상기 공유 페이지 디렉토리 엔트리가 지시하는 페이지 테이블을 통해 주소 변환을 수행하며, 상기 공유 페이지 디렉토리를 통해 주소 변환을 수행하는 중에 공유 메모리 해제가 요구되면 상기 형성한 공유 페이지 디렉토리를 무효화시키고 공유 페이지 디렉토리를 반환하는 단계로 이루어짐을 특징으로 한다.
도1은 종래 메모리 관리 유니트(MMU)를 사용하는 운영체제의 가상 메모리 시스템 구성도,
도2는 본 발명이 적용되는 공유페이지 디렉토리를 구현한 운영체제의 가상 메모리 시스템 구성도,
도3은 본 발명에 의한 주전산기 운영체제의 페이지 디렉토리 공유방법을 보인 흐름도.
도4는 본 발명을 단일 프로세서 환경에서 오라클 in-memory TPCB 벤치마크로 성능 테스트를 한 결과도,
도5는 본 발명을 다중 프로세서 환경에서 오라클 in-memory TPCB 벤치마크로 성능 테스트를 한 결과도.
<도면의 주요 부분에 대한 부호의 설명>
11 - 13 : 페이지 디렉토리
14,15: 페이지 테이블
16 : 공유 메모리
17 : 공유 페이지 디렉토리
이하, 본 발명의 바람직한 실시예를 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
첨부한 도면 도2는 본 발명이 적용되는 운영체제의 가상 기억 시스템 개략 구성도이다.
여기서, 참조번호 11,12,13은 3개의 프로세스(프로세스A - 프로세스C)에 각각 대응하는 페이지 디렉토리이고, 14,15는 페이지 테이블이고, 16은 8M바이트 크기의 공유 메모리이다.
또한, 17은 본 발명에서 새롭게 형성되는 공유 페이지 디렉토리이다.
여기서, 공유 메모리(16)은 기존과 같이 4M바이트 단위의 2개의 메모리(16a)(16b)로 구현된다.
이와 같이 이루어지는 본 발명이 적용되는 운영체제의 가상 기억 시스템을 참조하여 본 발명에 의한 페이지 디렉토리 공유방법을 첨부한 도면 도2 내지 도3에 의거 상세히 설명하면 다음과 같다.
먼저, 본 발명의 전체적인 개념은 기존 가상 시스템의 문제점, 즉 공유 메모리를 접근하려는 각각의 프로세스가 물리 페이지 프레임을 자신의 주소 공간에 매핑 시키기 위해 각각의 페이지 테이블을 만들고, 이에 따라 자신의 페이지 디렉토리 엔트리로써 페이지 테이블을 지시함으로써 대규모의 프로세스와 데이터를 다루는 프로그램에서 페이지 테이블의 과도한 소비와 페이지 테이블 일관성을 유지하기 위해 소요되는 시간 등의 문제점을 해결하기 위해서 공유 메모리를 접근하는 프로세스들의 페이지 디렉토리 엔트리를 공유하는 것이다. 이렇게 함으로써 공유 메모리를 부착하는 프로세스마다 각각 할당되던 페이지 테이블들이 단 하나의 페이지 테이블 그룹만을 필요로 하게 되어 공유 메모리를 부착하는 프로세스가 증가하더라도 단 하나의 페이지 테이블 그룹으로서 각각의 프로세스는 공유 메모리에 대한 주소 변환이 가능하게 된다. 따라서, 프로세스 주소 공간 전체에 대해서 공유 페이지 디렉토리 엔트리가 생성되는 것이 아니며, 공유 메모리는 사용하는 주소 공간에 대해서만 공유 페이지 엔트리가 생성된다.
이러한 개념을 구현한 본 발명의 실시예를 설명한다.
먼저, 도2에 도시된 바와 같이 공유 메모리가 생성이 되면 이 공유 메모리의 물리 페이지 프레임을 매핑 시키기 위해 페이지 테이블 그룹을 만들고, 페이지 디렉토리 내부의 페이지 디렉토리 엔트리(17)가 페이지 테이블(14)(15)을 포인팅하게 한다. 여기서 페이지 디렉토리를 공유 페이지 디렉토리라고 한다.
다시 말해, 임의의 프로세스(프로세스A)가 공유 메모리(16)에 접근하려고 시도를 하면, 공유 페이지 디렉토리(17)를 형성하고, 공유 페이지 디렉토리 엔트리를 해당 프로세스(프로세스A)의 페이지 디렉토리(11) 엔트리로 복사한다.
마찬가지로 공유 메모리(16)에 접근하려는 또 다른 프로세스(프로세스B 및 프로세스C)들도 공유 페이지 디렉토리(17)의 엔트리를 각각의 해당 페이지 디렉토리(12, 13) 엔트리로 복사를 하게 된다.
이와 같이 공유 페이지 디렉토리(17)의 엔트리가 공유 메모리(16)에 접근하는 각 프로세스들의 페이지 디렉토리(11 - 13) 엔트리들에 복사가 되면, 공유 메모리(16)에 접근하는 프로세스로부터 공유 메모리(16)의 물리 페이지 프레임에 접근하기 위한 주소 변환은 각 프로세스의 페이지 디렉토리에 복사된 공유 페이지 디렉토리(17)의 엔트리가 가리키는 페이지 테이블을 통해 이루어진다. 공유 페이지 디렉토리의 역할은 동일한 공유 메모리를 요구하는 프로세스가 있을 때, 해당 프로세스가 필요로하는 페이지 테이블 정보를 제공해주기 위해서 존재하는 것이며, 공유 페이지 디렉토리 엔트리 값이 프로세스의 페이지 디렉토리에 복사된 이후는 기존의 방법과 동일하게 주소 변환이 일어나게 된다. 따라서 공유 페이지 디렉토리 기법을 사용하지 않는 방식과 비교해서 추가되는 오버헤드가 없게 된다.
즉, 본 발명은 프로세스가 공유 메모리의 물리 페이지 프레임에 접근하기 위한 주소 변환을 위한 페이지 테이블들을 그룹화하고, 그 그룹화된 페이지 테이블을 공유하기 위해서 공유 페이지 디렉토리를 형성한 후 각 프로세스가 그 공유 페이지 디렉토리를 공유토록 한다.
따라서 공유 메모리(16)를 접근하려는 프로세스마다 공유 메모리(16)의 물리 페이지 프레임에 접근하기 위한 주소 변환을 위한 페이지 테이블이 중복되어 할당되지 않고, 공유 페이지 디렉토리의 엔트리들이 프로세스들에 의해 공유되는 것이다.
한편, 프로세스가 공유 메모리를 분리(detach) 또는 해제(free)할 때는 다음과 같다.
즉, 프로세스가 공유 메모리를 분리할 때 그 프로세스의 페이지 디렉토리 엔트리는 무효화(invalidate)되고, 그 프로세스는 자신의 주소 공간으로부터 공유 메모리 영역을 분리한다.
또한, 공유 메모리를 완전히 해제, 즉 공유 메모리를 사용하는 프로세스가 존재하지 않을 경우에는 공유 페이지 디렉토리는 무효화되고 공유 페이지 디렉토리는 반환(파괴)된다.
이와 같이 공유 페이지 디렉토리를 사용하면 공유 메모리를 접근하는 프로세스의 수와 비례하여 증가하던 페이지 테이블이 불필요하게되고, 단지 하나의 페이지 테이블만을 필요하게 된다. 따라서 기존의 메모리 관리 유니트(MMU)를 사용하는 운영체제에서 대규모 공유 메모리를 위해 과도하게 소비되던 페이지 테이블로 인한 메모리 사용량을 줄일 수 있어 페이지 테이블 부족현상을 해결할 수 있다.
또한 공유 페이지 디렉토리를 사용함으로써 페이지 테이블의 일관성을 유지하는 오버헤드를 감소시키게 된다.
즉, 기존의 메모리 관리 유니트(MMU)를 사용하는 운영체제에서는 공유 메모리를 위해 할당된 물리 메모리를 매핑 시키기 위해 공유 메모리를 접근하는 모든 프로세스가 주소 변환을 위해 각각의 페이지 테이블을 유지할 때, 그 중 한 프로세스에 의한 페이지의 변경이나 페이징에 의해 페이지가 스왑된 경우 해당 프로세스의 페이지 테이블을 변경해야 한다.
또한 그 공유 메모리를 접근하는 다른 모든 프로세스들의 페이지 테이블을 변경해 주어야만 페이지 테이블의 일관성을 유지하게 되어 이 작업에 따른 오버헤드가 공유 메모리를 접근하는 프로세스 수의 증가에 따라 선형적으로 증가하게 되어 있다.
반면에 본 발명과 같이 공유 페이지 디렉토리를 사용하면 프로세스의 수에 관계없이 하나의 페이지 테이블을 유지하기 때문에 페이지 테이블의 일관성을 유지하는 것이 용이해진다.
또한, 공유 페이지 디렉토리를 통해 구현된 공유 메모리에서는 단 하나의 페이지 테이블 그룹이 사용되기 때문에 기존의 메모리 관리 유니트(MMU)를 사용하는 운영체제보다 높은 캐쉬 적중률(cache hit)을 가지게 된다.
첨부한 도면 도4 및 도5는 메모리 관리 유니트(MMU)를 사용하는 운영체제의 한 예인 유닉스웨어에서 오라클 in-memory TPC-B 벤치마크를 이용한 본 발명의 성능 향상을 테스트한 결과이다.
이는 오라클의 동작 방식인 데이터베이스 운영 시스템에서 많은 사용자가 대규모의 데이터를 공유하기 위해서 공유 메모리를 사용할 때, 소비되는 페이지 테이블과 페이지 테이블 일관성 유지를 위해 소요되는 비용과, 본 발명에서 제안한 공유 페이지 디렉토리의 사용에 의한 성능 향상을 대비한 것이다.
성능 평가를 위해 사용되는 오라클 in-memory TPCB 벤치마크는 여러 개의 사용자 프로세스를 생성하여 프로세스들은 공유 메모리 인터페이스를 통해 데이터를 공유한다. 프로세스가 데이터 베이스의 내용에 접근하고 변경하는 일련의 과정을 트랜잭션(Transaction)이라 한다. 오라클 in-memory TPCB 벤치마크 결과는 프로세스들이 초당 처리하는 일의 합, 즉 TPS(Transaction Per Second)로 표시된다.
오라클 in-memory TPCB 벤치마크는 단일 프로세서(도4참조)와 다중 프로세서(도5참조)의 두 가지 다른 환경에서 측정하였다.
단일 프로세서에서 실험은 1개의 마이크로 프로세서 90MHz를 장착하고, 메모리 260M 바이트가 구비되고, 오라클 in-memory TPCB 벤치마크를 위한 2G 바이트 디스크(데이터베이스 파일 공간)를 가진 UNISYS 워크스테이션인 환경이다.
다중 프로세서에서 실험은 2개의 마이크로 프로세서 90MHz를 장착하고, 메모리 260M 바이트가 구비되고, 오라클 in-memory TPCB 벤치마크를 위한 2G 바이트 디스크(데이터베이스 파일 공간)를 가진 UNISYS 워크스테이션인 환경이다.
오라클 in-memory TPCB 벤치마크를 수행하기 위해 설정한 공유메모리 영역인 SGA(System Global Area)는 단일 프로세서 환경과 다중 프로세서 환경 모두 주어진 환경에서 오라클 in-memory TPCB 벤치마크를 수행하기에 최적화된 42M 바이트이다.
상기 실험은 사용자 프로세스의 개수를 1에서 100까지 변환시켜 각각에 대해 오라클 in-memory TPCB 벤치마크를 수행하였다.
실험 결과 사용자 프로세스의 개수가 30 - 80개인 경우 공유 페이지 디렉토리를 구현한 유닉스웨어 커널이 기존의 유닉스웨어 커널보다 최대 10%까지 성능이 향상됨을 알 수 있다.
이상에서 상술한 바와 같이 본 발명은, 공유 메모리를 접근하는 프로세스의 수와 비례하여 증가하던 페이지 테이블의 사용이 공유 페이지 디렉토리로 대체되므로, 대규모 공유 메모리를 위해 과도하게 소비되던 페이지 테이블로 인한 메모리 사용량을 줄일 수 있어 페이지 테이블 부족현상을 해결할 수 있는 이점이 있다.
또한 공유 페이지 디렉토리를 사용함으로써 단 하나의 페이지 테이블만을 사용하기 때문에 페이지 테이블의 일관성을 유지하는 오버헤드를 감소시킬 수 있는 효과가 있다.
또한, 공유 페이지 디렉토리를 통해 구현된 공유 메모리에서는 단 하나의 페이지 테이블 그룹이 사용되기 때문에 기존의 메모리 관리 유니트(MMU)를 사용하는 운영체제보다 높은 캐쉬 적중률(cache hit)을 얻을 수 있는 이점이 있다.

Claims (2)

  1. 메모리 관리 유니트(MMU) 기반 운영체제의 가상 기억 시스템에 있어서,
    공유 메모리가 생성된 상태에서 프로세스의 공유 메모리 접근이 시도되면 공유 메모리의 물리 페이지 프레임을 매핑시키기 위해 하나의 공유 페이지 테이블을 만들고 공유 페이지 디렉토리를 형성시키는 단계와;
    상기 형성된 공유 페이지 디렉토리의 공유 페이지 디렉토리 엔트리를 해당 프로세스의 페이지 디렉토리 엔트리로 복사하는 단계와;
    상기 공유 페이지 디렉토리 엔트리가 지시하는 페이지 테이블을 통해 주소 변환을 수행하며, 상기 공유 페이지 디렉토리를 통해 주소 변환을 수행하는 중에 공유 메모리 해제가 요구되면 상기 형성한 공유 페이지 디렉토리를 무효화시키고 공유 페이지 디렉토리를 반환하는 단계를 순차 실행시킴을 특징으로 하는 주전산기의 페이지 디렉토리 공유방법.
  2. 제1항에 있어서, 상기 공유 페이지 디렉토리를 통해 주소 변환을 수행하는 중에 공유 메모리 분리가 요구되면, 해당 프로세스의 공유 페이지 디렉토리 엔트리를 무효화시키는 단계를 더 포함하여 이루어짐을 특징으로 하는 주전산기의 페이지 디렉토리 공유방법.
KR1019980034387A 1998-08-25 1998-08-25 주전산기의페이지디렉토리공유방법 KR100354274B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980034387A KR100354274B1 (ko) 1998-08-25 1998-08-25 주전산기의페이지디렉토리공유방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980034387A KR100354274B1 (ko) 1998-08-25 1998-08-25 주전산기의페이지디렉토리공유방법

Publications (2)

Publication Number Publication Date
KR20000014803A KR20000014803A (ko) 2000-03-15
KR100354274B1 true KR100354274B1 (ko) 2002-12-11

Family

ID=19548168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980034387A KR100354274B1 (ko) 1998-08-25 1998-08-25 주전산기의페이지디렉토리공유방법

Country Status (1)

Country Link
KR (1) KR100354274B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898429B2 (en) 2011-12-29 2014-11-25 Samsung Electronics Co., Ltd. Application processor and a computing system having the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747827A1 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation System and method for providing shared memory using shared virtual segment identification in a computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747827A1 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation System and method for providing shared memory using shared virtual segment identification in a computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
영국 John Wiley & Sons Ltd., Operating System Concepts Fifth Edition 1998 번역판(국내 홍릉과학출판사) 301-303페이지(99.2.25) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898429B2 (en) 2011-12-29 2014-11-25 Samsung Electronics Co., Ltd. Application processor and a computing system having the same

Also Published As

Publication number Publication date
KR20000014803A (ko) 2000-03-15

Similar Documents

Publication Publication Date Title
US5897664A (en) Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US7620766B1 (en) Transparent sharing of memory pages using content comparison
US9430402B2 (en) System and method for providing stealth memory
US7206915B2 (en) Virtual space manager for computer having a physical address extension feature
US6112285A (en) Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US6477612B1 (en) Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
US8321638B2 (en) Cooperative mechanism for efficient application memory allocation
US4985829A (en) Cache hierarchy design for use in a memory management unit
KR930004430B1 (ko) 가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치
US6591355B2 (en) Distributed shared memory system with variable granularity
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US4669043A (en) Memory access controller
US5893166A (en) Addressing method and system for sharing a large memory address space using a system space global memory section
US5088026A (en) Method for managing a data cache using virtual external storage addresses as arguments
US10459852B1 (en) Memory utilization analysis for memory management systems
Subramanian et al. Implementation of Multiple Pagesize Support in HP-UX.
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US7177980B2 (en) Cache storage system and method
CN112596913B (zh) 提高内存透明大页性能的方法、装置及用户设备、存储介质
JP3295436B2 (ja) マイクロプロセッサキャッシュの一貫性
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
EP0319148A2 (en) Method of operating a multi-processor system for the transfer of data between processor units
Rosenberg et al. Addressing mechanisms for large virtual memories
Heiser et al. A distributed single address-space operating system supporting persistence
KR100354274B1 (ko) 주전산기의페이지디렉토리공유방법

Legal Events

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

Payment date: 20110914

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20120615

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee