Presentation is loading. Please wait.

Presentation is loading. Please wait.

가상 기억장치 (Virtual Memory)

Similar presentations


Presentation on theme: "가상 기억장치 (Virtual Memory)"— Presentation transcript:

1 가상 기억장치 (Virtual Memory)
Lecture #10 가상 기억장치 (Virtual Memory)

2 페이징(Paging) 및 세그먼트(Seg- mentation) 기법의 특징(1)
페이징 및 세그먼트 기법의 특징 메모리 참조는 실행시간에 동적으로 물리적 주소로 변환된다 프로그램은 실행시간에 메모리에 적재되어 시작주소가 결정된다 프로세스는 스와핑(swapping)으로 인해 메모리 내에서 옮겨 다닌다 프로세스는 페이지 또는 세그먼트로 분할되어 메모리에 적재되므로 메모리에 연속적으로 적재될 필요가 없다 Operating System

3 페이징(Paging) 및 세그먼트(Seg- mentation) 기법의 특징(2)
페이징 및 세그먼트 기법의 한계 프로세스의 모든 부분이 실행되는 동안 메모리에 적재될 필요가 없다  부분 적재(Partial Loading) 가능 프로세스 실행은 한 시점에 다음에 수행할 명령어 또는 처리할 데이터가 메모리에 적재된 페이지 또는 세그먼트에 있으면 진행될 수 있다 Operating System

4 부분적재를 이용한 프로세스 실행 (1) 부분 적재를 이용한 프로세스 실행 과정 :
운영체제는 하나의 프로그램을 실행할 때에 프로그램 의 일부 프레임만을 메모리에 적재한다 (시작 부분을 포함) 페이지/세그먼트 테이블에서 적재된 페이지/세그먼트 에 대한 항목의 present bit 을 설정한다 Present Bit : 페이지/세그먼트 테이블 항목의 필드 각각의 페이지 또는 세그먼트가 메모리에 적재되었는지 여부를 표시한다 Resident Set : 하나의 프로세스에 대해 현재 메모리에 적재된 페이지 또는 세그먼트의 집합 메모리에 적재되지 않은 페이지 또는 세그먼트 부분을 접근하면 인터럽트(memory fault)가 발생한다 Operating System

5 부분적재를 이용한 프로세스 실행 (2) 부분 적재를 이용한 프로세스 실행 과정(계속) :
운영체제는 현재의 프로세스를 대기 상태로 전환한다 운영체제는 필요한 페이지 또는 세그먼트을 메모리에 적재하기 위해 디스크 읽기 요구를 발생시킨다 현재의 프로세스는 디스크 읽기 요구가 완료될 때까지 대기 상태로 있는다 디스크 입출력이 실행되는 동안에 다른 프로세스가 디스패치되어 실행된다 디스크 입출력이 완료되면 인터럽트가 발생한다 운영체제는 이 인터럽트를 처리하는 동안 대기 상태에 있는 프로세스를 준비 상태로 전환한다 Operating System

6 부분 적재(Partial Loading)의 장점
더 많은 프로세스가 메모리에 적재될 수 있다 각 프로세스의 일부 프레임만을 메모리에 적재하므로 더 많은 프로세스를 메모리에 적재할 수 있다 메모리에 많은 프로세스가 적재되면 모든 프로세스가 대기 상태로 전환될 가능성이 적어진다 프로세스가 메모리 크기보다 더 큰 경우에도 실행할 수 있다 논리적 주소를 위해 물리적 주소에 필요한 비트 수보다 더 많은 비트를 사용할 수 있다 Operating System

7 가상 기억장치(Virtual Memory) (1)
페이지 기법(또는 세그먼트 기법) + 부분 적재 기법 ‘물리적 주소’보다 더 큰 비트 수를 가진 ‘논리적 주소’가 사용 가능 예: 16 비트의 물리적 주소를 사용하는 경우 64 KB(2^16=64)의 물리적인 메모리을 접근할 수 있다 페이지 크기를 1KB로 정하면 오프셋을 나타내기 위해 10 비트가 필요하다 물리적으로 페이지를 나타내기 위해 6 비트를 이용한다 논리적 주소에서 페이지 번호 부분은 6 비트 보다 더 많은 비트 수를 이용하여 나타낼 수 있다 Operating System

8 가상 기억장치(Virtual Memory) (2)
논리적 주소로 접근할 수 있는 기억공간 단지 필요한 프레임만을 주기억장치에 적재한다 부가적으로 필요한 기억 공간은 보조기억장치(예: 디스크)에 유지된다 더 나은 성능을 위하여 가상 기억장치는 파일 시스템을 통해 접근하는 디스크 공간을 이용하지 않고 스왑 공간(swap space)이라는 특별한 공간을 활용한다 더 큰 저장 블록을 사용한다 File lookups와 간접 할당 방식 등은 사용하지 않는다 Operating System

9 가상 기억장치(Virtual Memory) (3)
물리적 기억장치 물리적 주소로 접근할 수 있는 기억공간 물리적으로 DRAM 장치에 저장된다 논리적 주소와 물리적 주소의 변환 메모리 관리 하드웨어가 페이지/세그먼트 테이블을 접근하여 논리적 주소를 물리적 주소로 변환한다 Operating System

10 Trashing 가능성(1) 가능한 많은 프로세스를 메모리에 적재하기 위해서는 각 프로세스의 필요한 프레임만을 메모리에서 유지 하여야 한다 메모리가 모두 사용되고 있는 경우 : 운영체제가 실행중인 프로세스가 요구한 프레임을 위해 메모리에 있는 다른 프로세스의 프레임이나 실행중인 프로세스의 프레임을 swapping 하여야 한다(전역 교체 / 지역 교체) swapping 된 프레임이 다음에 사용할 예정이면 다시 swapping이 발생한다 Operating System

11 Trashing 가능성(2) 빈번한 프레임 swapping 은 trashing 현상을 발생시킨다
CPU가 사용자 프로그램 실행보다 프로세스 swapping에 대부분의 시간을 사용하게 된다 CPU의 이용률이 급격하게 떨어진다 Operating System

12 작업 집합(Working Set) 모델 기법(1)
접근 지역성(locality of references) 원리: 프로세스 내의 메모리 접근은 하나의 지역적인 메모리 영역에 집중되는 경향이 있다 실제 프로세스 실행에서 짧은 기간 동안에는 프로세스가 요구하는 전체 기억공간 중에서 일정한 부분만을 필요로 한다 작업 집합(Working Set) 하나의 프로세스가 실행될 때, 최근의 ∆(=k) 개의 페이지 참조에 포함되는 페이지들의 집합 프로그램 지역성(locality)의 근사값 Operating System

13 작업 집합(Working Set) 모델 기법(2)
윈도우 크기에 따른 작업 집합 Operating System

14 작업 집합(Working Set) 모델 기법(3)
운영체제는 각 프로세스에게 작업 집합 크기 만큼의 메모리를 할당한다 가능한 다중 프로그래밍 정도를 높인다 Trashing 발생을 줄일 수 있다 문제점 - 프로세스의 작업 집합은 계속하여 변하므로 작업 집합을 추적하기 어렵다 작업 집합의 크기를 결정하기 어렵다 Operating System

15 페이지 부재 빈도 (Page Fault Frequency) 기법
페이지 부재 비율의 상한과 하한을 설정하여 페이지 부재 빈도를 관리하는 기법 페이지 부재 비율이 상한을 넘으면 더 많은 프레임을 할당한다 페이지 부재 비율이 하한 이하로 내려가면 프레임을 회수한다 직접적으로 thrashing을 방지하면서 페이지 부재 비율을 예측하고 관리하는 기법 Operating System

16 가상 기억장치의 요구 사항 하드웨어 요구 사항 운영체제 요구 사항
메모리 관리 하드웨어는 페이징 또는 세그먼트 기법을 지원하여야 한다 운영체제 요구 사항 운영체제는 주기억장치와 보조기억장치 사이에 페이지 또는 세그먼트를 이동하는 것을 관리 하여야 한다 Operating System

17 가상 기억장치의 하드웨어 구현 가상 기억장치의 하드웨어 구현 기법 페이징 기법(Paging)
세그먼트 기법(Segmentation) 페이징 & 세그먼트 결합 기법(Paged Segmentation) Operating System

18 가상 기억장치의 페이징 기법(1) 페이징 기법에서는 프로세스 별로 고유의 페이지 테이블이 생성된다
각각의 페이지 테이블 항목은 다음과 같이 구성된다 Present Bit Modified Bit Other Control Bits Frame Number Operating System

19 가상 기억장치의 페이징 기법(2) Present bit Modified bit Other control bits
해당 페이지가 메모리에 존재하는지 여부를 표시한다 만약 메모리에 있으면 frame number는 메모리에서 페이지가 배치된 프로임 번호를 저장한다 만약 메모리에 없으면 frame number는 디스크에서의 페이지 주소를 저장한단 Modified bit 해당 페이지가 메모리에 적재된 이후로 수정되었는지 여부를 표시한다 만약 수정되지 않았으면 swapping 할 때에 디스크에 현재 페이지를 쓸 필요가 없다 Other control bits 보호(protection) 목적으로 이용 a read-only/read-write bit protection level bit: kernel page or user page Operating System

20 페이징 시스템에서의 주소 변환 Operating System

21 페이지 공유(1) 다른 사용자 사이에 동일한 프로그램 코드를 공유 한다면 메모리에 단지 하나의 프로그램 코드 복사본 만을 유지할 수 있다 공유 코드는 재진입 가능하여야 한다(reentrant) 2 개 이상의 프로세스가 동일한 프로그램 코드를 수행하여야 한다 페이징 시스템에서는 페이지 공유 공유 프로그램 코드에 대하여 메모리에 하나의 복사본만 둔다 공유 프로세스의 페이지 테이블 항목은 동일한 프레임을 가리키도록 프레임 번호를 저장한다 각 프로세스가 필요로 하는 데이터에 대해서는 프로세스별로 개별적인 데이터 페이지를 유지하여야 한다 Operating System

22 페이지 공유(2): a text editor Operating System

23 TLB(Translation Lookaside Buffer)
페이지 테이블이 메모리에 있기 때문에 각각의 가상 기억장치에 대한 접근은 두 번의 물리적인 기억장치 접근을 요구한다 페이지 테이블 항목에 대한 접근 데이터에 대한 접근 메모리 접근 지연이 발생한다 TLB: Translation Lookaside Buffer 페이지 테이블 접근에 따른 지연 문제를 해결하기 위한 cache memory 가장 최근 사용된 페이지 테이블 항목을 유지한다 주기억장치의 cache memory와 유사하게 동작 Operating System

24 Translation Lookaside Buffer 사용
Operating System

25 Operating System

26 TLB - 부연 설명 Associative mapping hardware를 사용
새로운 프로세스가 실행 상태가 될 때마다 TBL은 초기화한다 CPU는 각각의 가상 기억장치 참조에 대해 두 단계의 cache를 사용한다 첫번째- 논리적 주소를 물리적 주소로 변환하기 위해 TLB을 사용 두번째- 물리적 주소를 이용하여 데이터를 접근할 때에 주기억장치 cache memory를 사용 Operating System

27 Operating System

28 Operating System

29 페이징 시스템의 문제점 대부분의 컴퓨터 시스템은 매우 큰 가상 주소 공간을 지원한다
논리적 주소를 위해 32~ 64 bits 주소를 사용 만약 32 bit 논리적 주소와 4KB의 페이지크기를 사용 한다면 하나의 페이지 테이블은 2^{20} 항목을 가질 수 있다 전체 페이지 테이블은 너무 많은 메모리를 사용한다 페이지 테이블도 가상 기억장치를 사용하여야 한다 프로세스가 실행 상태가 되면 현재 실행중인 페이지를 포함하여 페이지 테이블의 일부 항목만 메모리에 유지된다 Operating System

30 다단계 페이지 테이블 (Multilevel Page Tables) (1)
일반적으로 페이지 테이블은 여러 개의 페이지에 저장된다 페이지 테이블을 다단계계층 구조로 구성하면 접근이 용이하다 다단계 페이지 테이블 When 2 levels are used (ex: 386, Pentium), the page number is split into two numbers p1 and p2 p1 indexes the outer page table (directory) in main memory who’s entries points to a page containing page table entries which is itself indexed by p2. Page tables, other than the directory, are swapped in and out as needed Operating System

31 다단계 페이지 테이블 (Multilevel Page Tables) (2)
Operating System

32 다단계 페이지 테이블 (Multilevel Page Tables) (3)
Operating System

33 역 페이지 테이블 (Inverted Page Table) (1)
Inverted Page Table (IPT) 큰 용량의 페이지 테이블 문제를 해결하기 위해 제시 전체 시스템을 위해 단지 하나의 IPT을 유지한다 IPT의 각 항목은 물리적 메모리의 한 프레임에 대한 정보를 저장한다 IPT 항목은 프레임에 배치된 논리적 페이지에 대한 정보를 유지한다 IPT는 전체 프레임 개수만큼의 항목을 가진다 논리적 주소를 물리적 주소를 변환할 때 논리적 주소를 가진 IPT 항목을 찾으면 그 항목의 인덱스가 물리적 프레임 번호가 된다 페이지 테이블 검색과는 역으로 검색한다 Operating System

34 역 페이지 테이블 (Inverted Page Table) (2)
The process ID with the virtual page number could be used to search the IPT to obtain the frame # For better performance, hashing is used to obtain a hash table entry which points to a IPT entry Operating System

35 Operating System

36 페이지 크기 문제 (1) 페이지 크기는 하드웨어에 의해 정의된다 정확하게 페이지 크기를 결정하는 것은 어렵다
페이지 크기를 2의 승수로 하면 논리적 주소를 물리적 주소로 효율적으로 변환할 수 있다 정확하게 페이지 크기를 결정하는 것은 어렵다 작은 페이지 크기를 사용하면 내부 단편화를 줄일 수 있으나, 전체 페이지 수가 늘어나 페이지 테이블이 커진다 큰 페이지 크기를 사용하면 페이지 테이블 크기가 작아진다 디스크의 블록 단위 데이터 입출력에 적합 TBL hit ratio을 높일 수 있다 내부 단편화가 커질 수 있다 큰 페이지 크기가 효율적 Operating System

37 페이지 크기 문제 (2) Operating System

38 페이지 크기 문제 (3) 일반적으로 1KB에서 4KB 사이의 페이지 크기를 사용한다
최근 몇몇 프로세서는 다중 페이지 크기를 지원한다 Pentium supports 2 sizes: 4KB or 4MB R4000 supports 7 sizes: 4KB to 16MB Operating System

39 페이지 크기 문제 (4) Operating System

40 가상 기억장치의 세그먼트 기법 세그먼트 기법에서 각 프로세스 자신의 세그먼트 테이블을 가진다
세그먼트 테이블의 각 항목은 다음과 같이 구성된다 Present Bit Modified Bit Other Control Bits Segment Base Length Operating System

41 세그먼트 기법의 주소 변환 Operating System

42 세그먼트 기법 - 부연 설명 각 세그먼트 테이블 항목은 세그먼트의 시작 주소와 길이를 저장한다
세그먼트는 필요에 따라 동적으로 변할 수 있다 접근 주소의 정상 여부는 길이 필드를 이용하여 쉽게 검사할 수 있다 동적 길이의 세그먼트는 외부 단편화를 야기하고 swapping 작업을 더욱 어렵게 한다 세그먼트 단계에서의 보호 및 공유 기능은 자연스럽게 제공할 수 있다 세그먼트는 프로그래머가 볼 수 있다 프로그램의 논리적 모듈 구조를 세그먼트로 쉽게 구현할 수 있다 Operating System

43 세그먼트 공유 (1) 동일한 프로그램 코드를 실행시키는 프로세스는 프로그램 코드를 공유할 수 있다
2 개의 다른 프로세스의 세그먼트 테이블 항목에 동일한 물리적 위치를 저장함으로써 세그먼트를 공유할 수 있다 예: 다수의 사용자가 텍스트 편집기의 코드를 공유할 수 있다 텍스트 편집기 코드는 단지 하나의 복사본만이 메모리에 유지된다 각 사용자는 필요에 따라 개별적인 데이터 세그먼트를 유지하여야 한다 Operating System

44 세그먼트 공유 (2) Operating System

45 페이징과 세그먼트 기법의 결합(1) 페이지화된 세그먼테이션(Paged Segmentation)
페이징 기법과 세그먼트 기법의 장점을 결합하기 위하여 몇몇 프로세서와 운영체제는 세그먼트를 페이지 단위로 분할한다 각각의 프로세스는 다음과 같은 배치 테이블을 가진다 하나의 세그먼트 테이블 여러 개의 페이지 테이블: 세그먼트 별로 하나의 페이지 테이블 Operating System

46 페이징과 세그먼트 기법의 결합(2) 가상 주소의 구성 segment number:
세그먼트 테이블에서의 인덱스 세그먼트 테이블 항목은 세그먼트를 위한 페이지 테이블의 시작 주소를 저장한다 page number: 프레임 번호를 찾아오기 위한 페이지 테이블의 인덱스 offset: 프레임 내에서의 위치 Operating System

47 페이지화된 세그먼테이션의 주소 변환 Operating System

48 Operating System

49 운영 제체의 메모리 관리 SW (1) 메모리 관리 소프트웨어는 하드웨어의 구성에 따라 기능이 결정된다
페이징 세그먼테이션 페이지화된 세그먼테이션 순수한 세그먼테이션 시스템은 드물다 일반적으로 세그먼트는 페이지로 분할된다 메모리 관리 소프트웨어는 세그먼트의 페이지를 관리하여야 한다 좋은 성능을 얻기 위해서는 낮은 페이지 부재율을 유지하여야 한다 Operating System

50 운영 제체의 메모리 관리 SW (2) Operating System

51 적재 기법(Fetch Policy) 하나의 페이지를 메모리에 적재할 때를 결정하는 기법 Demand paging
페이지에 대한 접근이 발생하였을 때에 페이지를 메모리에 적재한다 (i.e: paging on demand only) 프로세스가 실행을 시작할 때에 페이지 부재율이 높지만 많은 페이지가 적재될수록 페이지 부재율은 낮아진다 Prepaging 필요한 페이지 보다 더 많은 페이지를 적재하는 기법 참조 지역성을 이용하여 디스크에서 연속적으로 저장된 페이지를 미리 메모리에 적재한다 효율성이 일정하지 않다 접근하지 않는 페이지를 종종 적재하게 된다 Operating System

52 배치 기법(Placement policy)
프로세스의 페이지를 실제 메모리에 적재할 위치를 결정하는 기법 순수 세그먼테이션 시스템의 경우: 동적 분할 기법과 동일 first-fit, next-fit, best-fit 등의 기법을 고려 페이징 또는 페이지화된 세그먼테이션 시스템의 경우: 모든 메모리 프레임이 동일하므로 페이지가 어느 곳에 배치되더라도 아무런 영향이 없다 하드웨어가 페이지를 배치할 위치를 결정한다 Operating System

53 재배치 기법(Replacement Policy)(1)
새로운 페이지를 위한 메모리를 확보하기 위해 swapping할 페이지를 결정하는 기법 사용 가능한 메모리가 없을 때에 swapping 요구 재배치할 페이지를 결정하여야 한다 운영체제는 메모리에 있는 모든 페이지를 재배치하기 위해 선택할 수 없다 몇몇 프레임은 잠겨있어(locked) swapping할 수 없다 대부분의 커널 프레임이나 I/O buffer 프레임은 재배치 않지 않는다(locked) Operating System

54 재배치 기법(Replacement Policy)(2)
운영체제는 재배치할 페이지 집합을 다음과 같이 고려하여야 한다 페이지 부재가 발생한 프로세스의 페이지 집합 잠겨있지 않은 프레임에 있는 페이지 집합 resident set management strategy 재배치하기 위해 고려할 페이지 집합을 결정 각 프로세스에 얼마나 많은 페이지 프레임을 할당할 것인지를 결정 Operating System

55 기본적인 재배치 알고리즘 최적의 재배치 알고리즘은 재배치하기 위한 페이지로 다음에 접근하기 위한 시간이 가장 긴 페이지를 선택 하여야 한다 가장 적은 페이지 부재율을 보인다 미래의 접근 가능성을 알아야 하므로 구현하기 어렵다 기본적인 재배치 알고리즘 Least recently used (LRU) First-in, first-out (FIFO) Clock Operating System

56 LRU(Least Recently Used) 기법 (1)
가장 긴 시간동안 접근하지 않은 페이지를 재배치하는 기법 참조 지역성의 원리에 의해 오랫동안 접근하지 않은 페이지가 가까운 장래에 접근하지 않는 페이지가 된다 거의 최적에 가까운 성능을 보인다 예제: A process of 5 pages with an OS that fixes the resident set size to 3 Operating System

57 LRU(Least Recently Used) 기법 (2)
각 페이지에 대해 접근된 시간을 저장하여야 한다 LRU 기법은 가장 적은 시간을 가진 페이지를 재배치 페이지로 선택한다 많는 비용의 하드웨어 큰 오버헤드를 요구한다 메모리 접근이 발생할 때마다 해당 페이지의 접근 시간을 수정하여야 한다 Operating System

58 FIFO(First-In First-Out) 기법
적재된 순서에 의해 재배치 페이지를 결정하는 기법 하나의 프로세스에 할당된 페이지 프레임을 순환 버퍼 형태로 유지 사용 가능한 버퍼가 없을 때에 가장 오래된 페이지를 재배치한다 자주 사용되는 페이지가 종종 오래된 페이지일 가능성이 높아 재배치가 자주 발생한다 구현하기 쉽다 Operating System

59 LRU와 FIFO의 비교 LRU 기법은 페이지 2와 5가 자주 사용하는 페이지로 인식하나, FIFO 기법은 인식하지 못한다
Operating System

60 Clock 기법 (1) 재배치하기 위해 고려할 페이지 프레임 집합을 순환 버퍼 형태로 유지한다
버퍼 안에서 한 페이지가 재배치되면 포인터는 다음 프레임을 가리키도록 한다 각 프레임의 use bit을 다음의 경우에 1로 설정한다 프레임에 하나의 페이지가 처음 적재되는 경우 프레임에 적재된 페이지가 접근되는 경우 재배치가 요구되면 포인터가 가리키고 있는 프레임 에서 시작하여 use bit가 0인 프레임을 재배치 한다 재배치를 위해 탐색하는 동안 1인 use bit를 0으로 설정한다 Operating System

61 Clock 기법 (2): 예제 Operating System

62 Clock 기법과 FIFO, LRU 기법의 비교(1)
‘*’ 표시가 use bit가 1임을 나타낸다 Clock 기법은 자주 접근되는 페이지에 대해 use bit를 1로 설정하여 보호한다 Operating System

63 Clock 기법과 FIFO, LRU 기법의 비교(2)
수리적인 실험에서는 Clock 기법의 성능이 LRU 성능에 근접함을 보인다 각 프로세스에 할당된 프레임 수로 고정하거나 페이지 부재를 발생시킨 프로세스 내의 페이지만을 재배치하는 경우에 대해 실험을 하였을 때: 각 프로세스에 적은 수의 프레임(6 to 8)이 할당되는 경우에 LRU와 FIFO 사이에 페이지 부재율이 거의 2배의 차이가 발생한다 더 많은 프레임(12개 이상)을 할당하는 경우에는 페이지 부재율이 비슷하다 이 경우, 더 많은 메모리를 요구한다 Operating System

64 Comparison of Placement Algorithms
Operating System

65 페이지 버퍼링(Page Buffering) (1)
재배치되는 페이지는 FIFO와 같은 재배치 알고리즘의 성능 저하를 막기 위해 잠시 동안 메모리에 보관한다 버퍼링되는 재배치 페이지는 두 개의 포인터 리스트를 이용하여 관리한다 포인터 리스트의 각 항목은 재배치되는 프레임의 번호를 저장한다 free page list : 메모리에 적재된 후에 수정된 적이 없는 프레임의 리스트 – swapping 할 필요가 없다 modified page list: 메모리에 적재된 후에 수정된 프레임의 리스트 – 디스크에 재저장하여야 한다 Operating System

66 페이지 버퍼링(Page Buffering) (2)
재배치되는 프레임은 두 개의 리스트 중에 하나에 추가되고 해당되는 페이지 테이블 항목의 present bit을 0 으로 설정한다 해당 페이지는 아직 프레임에 배치되어있다 페이지 부재가 발생할 때에 두 개의 리스트를 검색하여 원하는 페이지가 아직 메모리에 있는지 검사한다 만약 메모리에 있으면 해당된 페이지 테이블의 present bit를 1로 설정하고 관련된 버퍼링 리스트에 저장된 항목을 삭제한다 만약 메모리에 없으면 free frame list의 첫번째 frame에 원하는 페이지를 적재한다 – only overwriting Modified frame list에 있는 프레임은 개별적으로 백업되는 것이 아니라 그룹 단위로 디스크에 백업된다 Operating System

67 클리닝 기법(Cleaning Policy) (1)
수정된 페이지를 디스크에 백업(write-back)할 때를 결정하는 기법 Demand cleaning 페이지가 차지하고 있는 프레임이 재배치되기 위해 선택되었을 때에 백업하는 기법 페이지 부재를 처리하기 위해 두 페이지의 전송을 요구 Precleaning 수정된 페이지를 프레임이 필요로 하기 전에 batch 형태로 백업하는 기법 재배치되기 전에 다시 수정되는 경우에는 오버헤드가 크다 Operating System

68 클리닝 기법(Cleaning Policy) (2)
페이지 버퍼링 기법을 사용하여 성능을 향상 시킬 수 있다 재배치된 페이지를 다음의 두 개의 리스트에 보관 Modified List Unmodified List Modified list에 있는 페이지를 주기적으로 batch 형태로 백업하고 free list로 옮긴다 Unmodified list에 있는 페이지은 두가지 방식으로 처리 다시 참조되면 참조 리스트로 옮긴다 해당 프레임가 다른 페이지에 할당되면 리스트에서 제거한다 Operating System

69 부하 제어(Load Control) (1) Determines the number of processes that will be resident in main memory Too few processes, many occasions when all processes will be blocked and much time will be spent in swapping Too many processes will lead to thrashing Operating System

70 부하 제어(Load Control) (2) Operating System

71 부하 제어(Load Control) (3) Process Suspension Lowest priority process
Faulting process This process does not have its working set in main memory so it will be blocked anyway Last process activated This process is least likely to have its working set resident Process with smallest resident set This process requires the least future effort to reload Largest process Obtains the most free frames Process with the largest remaining execution window Operating System

72 UNIX and Solaris Memory Management
Paging System Page table – one per process Disk block descriptor – describes the disk copy of the virtual page Page frame data table – describes each frame of real memory Swap-use table – one for each swap device Kernel memory allocator for memory allocation for the kernel Operating System

73 Operating System

74 Operating System

75 Operating System

76 UNIX and Solaris Memory Management
Page Replacement Refinement of the clock policy known as the two-handed clock algorithm Uses the reference bit set to 0 when the page is first brought in set to 1 when the page is referenced Front-hand sweeps through the pages and sets the reference bit to 0 Sometime later, backhand sweeps through the pages and collects the pages with reference bit 0 Operating System

77 UNIX and Solaris Memory Management
Operating System

78 UNIX and Solaris Memory Management
Kernel Memory Allocator Kernel generates and destroys small tables and buffers frequently during execution They require dynamic memory allocation Most of these blocks are significantly smaller than the typical machine page size Paging mechanism is inefficient here In SVR4, modification of the buddy system is used Operating System

79 UNIX and Solaris Memory Management
Lazy buddy system Operating System

80 Linux Memory Management
Linux Virtual Memory Virtual memory addressing(3 level scheme) Page directory Page middle directory Page table Virtual address consists of four fields Operating System

81 Operating System

82 Linux Memory Management
Page allocation buddy system is used to enhance the efficiency of reading and writing, Linux defines a mechanism for dealing with contiguous blocks of pages mapped into contiguous blocks of page frames Page replacement algorithm modified clock algorithm is used aging is considered Operating System

83 Windows 2000 Memory Management
W2K virtual address map each process has a 32-bit address space 2 GB for user process 2 GB for system space which is shared by all processes Operating System

84 Operating System

85 Windows 2000 Memory Management
W2K Paging A page can be in one of 3 states Available pages not currently used by this process Reserved reserved but not counted against the process’s memory quota Committed pages for which the virtual memory manager has set aside space in its paging file Operating System


Download ppt "가상 기억장치 (Virtual Memory)"

Similar presentations


Ads by Google