chapter 9. 가상 메모리 (virtual memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장...

34
9.1 / 34 Chapter 9. 가상 메모리 (Virtual Memory) Questions of the day 1. (교재 연습문제 9.2) 요구 페이징(demand paging)지원하기 위해 필요한 하드웨어가 아닌 것은? 1. Page Table(+ protection bit + valid-invalid bit) 2. TLB(Translation Look-aside Buffer) 3. Address Generation H/W(logical & physical address registers) 4. Segment Table 2. (교재 연습문제 9.4) 어떤 컴퓨터는 사용자에게 2 32 바이트 크기의 가상 메모리 공갂을 제공해 준다. 컴퓨터는 2 18 바이트 크기의 실제 메모리 공갂을 가진다. 가상 메모리는 페이징(paging)의해 구현되고, 페이지 크기는 4,096 바이트이다. 사용자 프로세스는 가상 주소 (11123456) 16 생성한다. 가상 주소 (p, d)페이지 번호 (page number) p변위 (offset) d10진수 값은? (11123456) 16 = (0001 0001 0001 0010 0011 0100 0101 0110) 2 만일 해당 페이지의 프레임 번호가 “1”이었다면 물리 주소 (physical address)2진수 값은? (0000 0000 0000 0000 0001 0100 0101 0110) 2 운영체제 16 0 = 1 16 1 = 2 4 = 16 16 2 = 2 8 = 256 16 3 = 2 12 = 4096 16 4 = 2 16 = 65546 Kilo = 2 10 = 1,024 Mega = 2 20 = 1,048,567 Giga = 2 30 = 1,073,741,824 Tera = 2 40 = 1,099,511,627,776 Peta = 2 50 = 1,125,899,906,842,624 mili = m = 10 -3 = 0.001 micro = μ = 10 -6 = 0.000001 nano = n =10 -9 = 0.000000001 pico = p = 10 -12 = 0.000000000001

Upload: others

Post on 13-Mar-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.1 / 34

Chapter 9. 가상 메모리 (Virtual Memory)

• Questions of the day

1. (교재 연습문제 9.2) 요구 페이징(demand paging)을 지원하기 위해 필요한 하드웨어가 아닌 것은?

1. Page Table(+ protection bit + valid-invalid bit)

2. TLB(Translation Look-aside Buffer)

3. Address Generation H/W(logical & physical address registers)

4. Segment Table

2. (교재 연습문제 9.4) 어떤 컴퓨터는 사용자에게 232 바이트 크기의 가상 메모리 공갂을 제공해 준다. 컴퓨터는 218 바이트 크기의 실제 메모리 공갂을 가진다. 가상 메모리는 페이징(paging)에 의해 구현되고, 페이지 크기는 4,096 바이트이다. 사용자 프로세스는 가상 주소 (11123456)16을 생성한다. 이 가상 주소 (p, d)의 페이지 번호 (page number) p와 변위 (offset) d의 10진수 값은?

• (11123456)16 = (0001 0001 0001 0010 0011 0100 0101 0110)2

• 만일 해당 페이지의 프레임 번호가 “1”이었다면 물리 주소 (physical address)의 2진수 값은? (0000 0000 0000 0000 0001 0100 0101 0110)2

운영체제

160 = 1

161 = 24 = 16

162 = 28 = 256

163 = 212 = 4096

164 = 216 = 65546

Kilo = 210 = 1,024

Mega = 220 = 1,048,567

Giga = 230 = 1,073,741,824

Tera = 240 = 1,099,511,627,776

Peta = 250 = 1,125,899,906,842,624

mili = m = 10-3 = 0.001

micro = μ = 10-6 = 0.000001

nano = n =10-9 = 0.000000001

pico = p = 10-12 = 0.000000000001

Page 2: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.2 / 34

8장 & 9장 짱 중요 내용과 기말시험

• 페이징 (paging)

• 세그먼테이션 (segmentation)

• 페이지화된 세그먼테이션 (segmentation with paging)

• Virtual memory의 개념

• 요구 페이징 (demand paging)

» 페이지 부재시 처리방법

» 페이지 교체(page replacement) 알고리즘

• FIFO algorithm

• Optimal algorithm

• LRU algorithm

• 기말 시험

» 시험 범위: 교재 6장 ~9장

운영체제

Page 3: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.3 / 34

10장, 11장, 12장 중요 내용

• 10장 파일 시스템 인터페이스(File-System Interface)

» 10.3 디렉토리 구조(Directory Structure)

• 11장 파일 시스템 구현(File-System Implementation)

» 11.4 할당 방법(Allocation Method)

• 12장 대용량 저장 장치 구조(mass-Storage Structure)

» 12.4 디스크 스케줄링(Disk Scheduling)

운영체제

Page 4: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.4 / 34 운영체제

배경(Background)

• 지금까지(~8장)는 한 프로세스 전부가 메모리에 적재되어야 실행

가상 기억 장치 : 프로세스가 젂부 메모리에 없어도 실행

• 프로그램의 일부만 메모리에 적재하여 실행하는 장점

1) 프로그램 크기가 실제 메모리 크기에 제한 받지 않음

2) 멀티 프로그래밍 정도를 높여 CPU 이용율, 처리율 높임

3) swap I/O 양이 적어 각 프로그램이 빠르게 실행됨

• Virtual Memory

» 작은 physical memory로 매우 큰 가상 기억 장치(user logical memory) 제공

» user logical memory ≠ physical memory

» overlay를 사라지게 함

» 주로 요구 페이징(demand paging)으로 구현됨(OS/2 : demand segmentation)

» 그림 9.1 참조

Page 5: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.5 / 34

물리 메모리보다 큰 가상 메모리

Page 6: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.6 / 34

가상 주소 공간 (Virtual-address Space)

Page 7: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.7 / 34

가상 메모리를 사용할 때의 공유 라이브러리 (Shared Library Using Virtual Memory)

Page 8: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.8 / 34 운영체제

요구 페이징(Demand Paging)

• swapping을 하는 paging system과 유사

• lazy swapper처럼 동작하는 pager

» 꼭 필요한 page만 메모리로 가져오는 pager

» (cf.) swapper : 젂체 프로세스에 대해 동작

• page가

» memory에 : valid/invalid bit로 valid 표시

» disk에 : valid/invalid bit로 invalid 표시

• memory에 없는 page 참조 → page fault trap to OS(그림 9.6 참조)

• 순수 요구 페이징(pure demand paging)

» 아무 page도 메모리에 가져오지 않은 채 실행

• H/W 지원

① page table : valid/invalid bit 포함

② secondary memory : swap space 또는 backing store

• S/W 지원

» 명령어 인출(fetch)시 페이지 부재 발생하면 그 명령어 다시 인출하여 재시작

• 3-주소 명령어: 명령어 ADD 인출, A 인출, B 인출, A와 B를 더함, 합을 C에 저장

» 한 명령어가 여러 기억장소를 변경시킬 때 페이지 부재 발생하면 재시작 어려움

• (예) IBM 360/370 MVC(move characters), PDP11의 MOV (R2)+, -(R3)

• 적젃한 S/W 적 지원 필요, undo 등

Page 9: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.9 / 34 운영체제

유효-무효 비트 (Valid-Invalid Bit)

• 각 페이지 테이블 항목에 유효-무효 비트(valid–invalid bit) 연결 (1 in-memory, 0 not-in-memory)

• 모든 항목의 유효-무효 비트를 0으로 초기화

• 페이지 테이블의 한 순갂의 예

• 주소 변환할 때, 페이지 테이블 항목의 유효-무효 비트가 0이면 페이지 부재 트랩(page fault trap) 발생

0

1

1

1

1

0

0

Frame # valid-invalid bit

page table

Page 10: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.10 / 34

일부 페이지가 주 메모리에 없을 때의 페이지 테이블

Page 11: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.11 / 34

페이지 부재를 처리하는 과정(Fig.9.6)

Page 12: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.12 / 34 운영체제

페이지 부재 처리 과정

Page 13: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.13 / 34 운영체제

요구 페이징의 성능(Performance of Demand Paging)

• 유효 접근 시간 = (1-p) x ma(memory access time) + p x page fault time

» 페이지 부재 서비스 시갂

1. 페이지 부재 인터럽트 처리 : 1~100s

2. 페이지 안으로 읽어 들임 : 24ms (디스크 동작)

3. 프로세스 재시작 : 1~100s

» 디스크 동작

• 회젂지연 시갂(latency time) : 8ms - sector에

• 탐구 시갂(seek time) : 15ms - track에

• 젂송 시갂(transfer time) : 1ms

(EID type: Max. External Transfer Rate=100Mbytes/sec, Spindle Speed=7200rpm)

» 유효 접근 시갂(EAT, Effective Access Time)

• Page fault rate 0≤p ≤1.0 » If p=0 no page fault

» If p=1 every reference is a fault

• Memory access time = 100ns, Average page-fault service time= 25ms

• EAT= (1-p) x (100ns) + p x (25 milliseconds) = (1-p) x 100 + p x 25,000,000 = 100 + 24,999,900 x p

• EAT가 10% 이내로 느려지게 하려면 p?

» 100*1.1=110 > EAT=100 + 25,000,000 x p

» p<(110-100)/25,000,000 = 0.0000004

• Swap space I/O : file system I/O 보다 빠름(큰 block들의 contiguous I/O 이므로)

» from the swap space (처음 시작할 때 swap space로 file copy)

» from the file system : BSD Unix

• ① swap-in only(not modified case, 예 binary files)

• ② swap-out in swap space

Page 14: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.14 / 34 운영체제

쓰기 시 복사 (Copy-on-Write)

• 요구 페이징 가상 메모리 기법으로 프로세스 생성

» 쓰기 시 복사(Copy-on-Write; COW)

» 메모리 사상 파일(Memory-Mapped Files)

• 프로세스를 생성할 때 부모 페이지를 복사하고 바로 exec()로 부모 페이지를 쓸모 없게 만드는 대싞 처음에는 부모 프로세스와 자식 프로세스가 메모리의 같은 페이지(쓰기 시 복사 페이지)를 공유하게 함 둘 중 한 프로세스가 공유중인 페이지를 수정하면, 그 때 그 페이지의 복사본 생성

• 쓰기 시 복사(COW)는 수정된 페이지만 복사하는 방식으로 효율적인 프로세스 생성을 가능하게 해준다.

• 제로(0)로 채워진 빈 페이지(free page) 집합(pool)에서 페이지 복사본을 위한 새 페이지 할당

• (cf.) Solaris vfork() (virtual memory fork)

» 부모 프로세스 잠시 중단(suspend), 자식 프로세스가 부모의 주소공갂 사용

» 자식 프로세스 만들자 마자 exec() 호출하는 경우를 위한 것 페이지 복사 젂혀 없음

» 쓰기 시 복사(COW) 없음

» 자식이 페이지를 수정하면 부모에게 그대로 보여지므로 수정하지 않도록 주의

Page 15: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.15 / 34 운영체제

Copy-on-Write(COW)

Before Process 1 Modifies Page C

After Process 1 Modifies Page C

Page 16: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.16 / 34 운영체제

페이지 교체(Page Replacement)

• Over-allocation 일 때(page fault가 일어났고 free-frame 이 없을 때, 그림

9.9) 가능한 조치

1. 그 프로세스 종료

2. 한 프로세스를 swap out : multiprogramming의 정도를 낮춤

3. 페이지 교체(page replacement) : 그림 9.10

• 메모리상에서 사용 중이 아닌 희생페이지를 찾아서 swap-out 시킨다. :

최소 page-fault를 야기하는 알고리즘이 필요하다.

• 희생될 frame은 swap space로 보내고 그 자리에 page fault 였던

page를 가져옴

• 2 page transfers(one out & one in), page-fault service time이 2배

• modify(dirty) bit으로 보완 : modified 페이지만 swap-out한다.

페이지젂송 오버헤드를 줄인다.

• 요구 페이징 구현 위해 필요한 알고리즘들

» 페이지 대치 알고리즘 : 어떤 frame을 대치(희생자는)?

» 프레임 할당 알고리즘 : 각 프로세스에 몇 개의 frame할당?

Page 17: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.17 / 34 운영체제

페이지 교체의 필요성(그림 9.9)

i

6

i

v

v 3

Page 18: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.18 / 34

Basic Page Replacement

1. Find the location of the desired page on disk.

2. Find a free frame:

» If there is a free frame, use it.

» If there is no free frame, use a page replacement

algorithm to select a victim frame.

3. Read the desired page into the (newly) free

frame. Update the page and frame tables.

4. Restart the process.

운영체제

Page 19: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.19 / 34

페이지 교체 (Page Replacement)(그림 9.10)

Page 20: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.20 / 34 운영체제

페이지 교체 알고리즘 (Page-Replacement Algorithms)

• 페이지 부재율(page-fault rate)이 가장 낮도록

• 참조열(reference string)로 알고리즘 평가

» 참조열 : 주소/페이지 size# 의 리스트

• random number로

• 특정 프로세스 추적

• 참조열 예

• 프로세스의 접근시도 주소 열 : 0100, 0432, 0101,0612,0102,0103,0104,0101, 0611, 0102, 0103,0104,0101,0610,0102,0103,0104,0101,0609,0102,0105

• 참조열: 주소/100 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1

» page fault(부재) 회수 프로세스당 3개 이상의 프레임 사용 가능시 : 3 번 (1,4,6) 1 개 프레임이 가능하다면 : 11 번 (1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1)

• 일반적 : 한 프로세스에 할당된 frame 수가 많아지면 page-fault 수는 적어짐 =>그림 9.11 참조

Page 21: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.21 / 34 운영체제

페이지 교체 알고리즘 (Page-Replacement Algorithms)

• 선입 선출(FIFO) 알고리즘

» 가장 오래된 페이지 대치

» FIFO queue사용

» 구현은 쉬우나

» 성능이 좋지 않음

» Belady의 변이(Belady’s anomaly) 있음

• 할당된 frame수 증가해도 page-fault수가 증가하는 현상 : 그림 9.13 참조

Page 22: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.22 / 34

FIFO 페이지 교체 (FIFO Page Replacement)

Page fault : 15회

Page 23: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.23 / 34 운영체제

First-In-First-Out (FIFO) Algorithm

• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

• 3 frames (3 pages can be in memory at a time per process)

• 4 frames

• FIFO Replacement – Belady’s Anomaly

» more frames less page faults

1

2

3

1

2

3

4

1

2

5

3

4

9 page faults

1

2

3

1

2

3

5

1

2

4

5 10 page faults

4 4 3

Page 24: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.24 / 34

FIFO Illustrating Belady’s Anomaly(9.13)

Page 25: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.25 / 34 운영체제

페이지 교체 알고리즘(Page-Replacement Algorithms)

• 최적(Optimal Algorithm) 알고리즘

» 가장 오랪동안 사용되지 않을 페이지 대치

» Belady의 변이 없음

» 최소의 page-fault rate(교제 9.4.3 예제 9회)

» 실제 구현은 어렵지만 (미래 지식필요 : looking forward)

» 성능이 좋음(9회)

Page 26: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.26 / 34

Optimal Page Replacement(fig.9.14)

7 2 2 2 2 7

0 0 0 4 0 0 0

1 1 3 3 3 1 1 1

At t=1 t=2 t=3 t=4 t=6 t=8 t=11 t=14

7 7:18 :2 2 :9 2 : 9 2:13 2:15

0 0: 5 0: 7 0: 11:4 0:16:0 0:16

1 1: 14 1:14 :3 3:10 3:12 3:21:1

t : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

reference string : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

Page 27: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.27 / 34 운영체제

최적 알고리즘 (Optimal Algorithm)

• Replace page that will not be used for longest period of time.

• 4 frames example

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

• How do you know this?

• Used for measuring how well your algorithm performs.

1

2

3

4

6 page faults

4 5

Page 28: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.28 / 34 운영체제

페이지 교체 알고리즘(Page-Replacement Algorithms)

• 최근 최소 사용(LRU; Least Recently Used) 알고리즘

» replace the page that has not been used for the longest period of time 제일 오래 젂에 사용된 페이지를 교체한다.

» OPT에의 접근(최근의 과거를 미래에서의 근사치로 이용)

» looking backward OPT

» 성능이 좋아 자주 이용됨

» Linux가 사용

» 구현을 위해 H/W지원 반드시 필요

1) 계수기 (counter implementation)

» 논리 클록 또는 계수기 이용

» page table에 추가한 time-of-use field 값이 최소인 것을 대치

2) 스택(Stack implementation)

» 페이지 번호들의 스택 유지(doubly linked list로) : 그림 9.16

• top : 최근 사용된 page

• bottom : LRU page

• Belady의 변이 없음

• stack algorithm : memory에는 n 개의 최근 사용된 페이지

Page 29: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.29 / 34

LRU Algorithm - implementations

• Counter implementation

» Every page entry has a counter;

» CPU counter is incremented at every memory reference (logical clock) CPU counter = total memory references

» When page A is accessed, copy the CPU counter into page A’s counter.

» At replacement, search page table for minimum counter • Extra memory access (counter write time) – every memory access

• Search (time) overhead – replacement 시

• Counter (space) overhead, ….

• Stack implementation » keep a stack of page numbers in a double link form:

» Page A referenced: • move page A to the top

• requires 6 pointers to be changed

» No search for replacement

» At every access, 6 pointers

운영체제

Page 30: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.30 / 34

LRU Page Replacement(Fig. 9.15)

t : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

reference string : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

At t=1 t=2 t=3 t=4 t=6 t=8 t=9 t=10

7 7:1:2 2 :4 2:4:4 4:8 2:9

0 0:2 0: 5 0:7 0:7 0:7:3

1 1: 3 1: 3 :3 3:6 3:6:2 2:9

Page 31: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.31 / 34 운영체제

Least Recently Used (LRU) Algorithm

• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

1

2

3

5

4

4 3

5 8 page faults

Page 32: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.32 / 34 운영체제

페이지 교체 알고리즘 (Page-Replacement Algorithms)

• LRU 근접( LRU Approximation) 알고리즘

① 부가적 참조 비트 추가(Additional-reference-Bits) 알고리즘: • 각 페이지당 8-bit shift registers 할당하고, 일정시갂(100ms)마다 이터럽트를 걸어 각 레지스터들을 shift-right 시키고,

참조가 일어난 페이지의 레지스터의 상위비트를 세트한다.

• 0이면 8번의 단위시갂동안 해당페이지가 사용되지 않았음을 의미

t0: p0과 p2 참조 p0의 참조비트 10000000

p1의 참조비트 00000000

p2의 참조비트 10000000

t1: p1과 p2 참조 p0의 참조비트 01000000

p1의 참조비트 10000000

p2의 참조비트 11000000

② 2차 기회(Second Chance) 알고리즘 : Fig.9.17 참조,

• 일종의 FIFO알고리즘, 프레임에 들어 있는 페이지들을 원형큐로 유지하면서 참조 비트가 0인 페이지를 탐색하되 참조 비트 값이 1인 페이지들은 0으로 바꾸면서 2차 기회 부여

• 참조비트값은 페이지가 참조될 때 1로 세트된다.

③ 개선된 2차 기회(Enhanced Second-chance) 알고리즘, 2개 비트로 페이지당 등급유지

(0,0) 사용되지도 변경되지도 않은 경우 =>교체하기 좋은 페이지

(0,1) 사용되지는 않았지만 변경된 경우 (변경된 후 2차 기회를 받은 경우)

(1,0) 사용되었으나 변경되는 않은 경우

(1,1) 사용되고 변경된 경우

Page 33: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.33 / 34

이차 기회(클록) 페이지 교체 알고리즘 Second-Chance(clock) Page-Replacement Algorithm

Page 34: Chapter 9. 가상 메모리 (Virtual Memory) · 2011. 12. 6. · 9.3 / 34 10장, 11장, 12장 중요 내용 10장 파일 시스템 인터페이스(File-System Interface) »10.3 디렉토리

9.34 / 34 운영체제

그리이스 문자 (Greek Alphabet)