ch.10 가상 메모리

29
Ch.10 가가 가가가 Jun 11, 2022

Upload: avery

Post on 10-Jan-2016

68 views

Category:

Documents


8 download

DESCRIPTION

Ch.10 가상 메모리. 27-Sep-14. 배경 요구 페이징 페이지 교체 프레임의 할당 스레싱. 1. 배경. 현재 참조되는 부분은 반드시 메모리에 있어야 전체 프로세스를 메모리로  너무 큰 메모리 공간 필요 Overlay or dynamic loading : 프로그래밍하기 어려움 프로그램의 모든 부분이 동시에 요구되지 않을 수 있다 . 프로그램은 메모리 크기에 제약받지 않음 일부분만 로드되므로 다중프로그래밍이 쉽다  이용률과 처리율은 높아지고 응답시간은 늘어나지 않는다 . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ch.10  가상 메모리

Ch.10 가상 메모리

Apr 21, 2023

Page 2: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 2 -

I. 배경II. 요구 페이징III. 페이지 교체IV. 프레임의 할당V. 스레싱

Page 3: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 3 -

1. 배경 현재 참조되는 부분은 반드시 메모리에 있어야

전체 프로세스를 메모리로 너무 큰 메모리 공간 필요 Overlay or dynamic loading : 프로그래밍하기 어려움

프로그램의 모든 부분이 동시에 요구되지 않을 수 있다 . 프로그램은 메모리 크기에 제약받지 않음 일부분만 로드되므로 다중프로그래밍이 쉽다

이용률과 처리율은 높아지고 응답시간은 늘어나지 않는다 .

스왑 횟수가 줄어듦 빠른 실행

Page 4: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 4 -

10.2 요구 페이징

< 디스크 공간의 페이지화된 메모리의 이동 >

23

0 31 2

4 6 7

10 11

12 13

9

15

16

14

5

8

17 18 19

20 21 22

Program A

Program B

swap out

swap in

Main memory

Page 5: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 5 -

2. 요구 페이징 (Demand Paging)기본 개념

스와핑과 유사 스와핑은 프로세스가 실행될 때 전체 프로세스가 메모리로 요구 페이징은 페이지에 대한 요청이 발생하면 메모리로 스와퍼는 프로세스 전체를 , 페이저는 각 페이지를 로드

Lazy swapper 필요한 페이지만 메모리로 로드

Page 6: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 6 -

10.2 Demand Paging

A

C

F

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

A B

C D E

F

A

B

C

D

E

F

G

H

0

1

2

3

4

5

6

7

4

6

9

viviivii

0

1

2

3

4

5

6

7

logicalmemory

Page table

< 일부페이지가 주기억장치에 존재하지 않을 때의 페이지 테이블 >

frame

valid-invalid bit

Physical memory

Page 7: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 7 -

10.2 요구 페이징 페이지부재 처리과정

1. 프로세스에 대한 내부 테이블을 검사 , 메모리 참조가 유효인지 무효인지 판별

2. 프로세스가 접근할 수 없는 페이지라면 프로세스는 중단 . 접근할 수 있으나 메모리에 없다면 로딩 필요

3. 자유 프레임을 찾는다 .4. 새로 할당된 프레임으로 이 페이지를 읽을것을 요구5. 디스크 읽기가 끝난 후 페이지테이블 갱신 ,

내부테이블 수정6. 트랩에 의해 중단되었던 명령어 다시 실행

Page 8: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 8 -

10.2 요구 페이징

load M i

free frame

< 페이지 부재 처리과정 >

Physical memory

1

5

6

3

2

4

reference

운영체제

page is onbacking store

trap

bring in missing page

reset pagetable

restartinstruction

Page table

Page 9: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 9 -

2. 요구 페이징

성능 요구 페이징은 컴퓨터시스템의 성능에 중요한 영향을

미친다 . ma : 메모리 접근 시간 ( 10 ~ 200 nSec ) p : 페이지 부재 확률 ( 0 p 1 ) 실제접근시간 = ( 1 - p ) × ma + p × page fault time.

Page 10: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 10 -

2. 요구 페이징

예 ) 메모리 접근 시간 : 100 ns 페이지 부재 시간 : 25 ms 실제 접근 시간 = ( 1 - p ) × ( 100ns ) + p ( 25ms )

= ( 1 - p ) × 100 + p × 25,000,000

= 100 + 24,999,900 × p∴ 따라서 메모리 접근시간은 페이지 부재 비율에 비례 .

Page 11: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 11 -

2. 요구 페이징

페이지 부재 처리 순서1. 운영체제에 트랩 요청2. PCB 저장3. 인터럽트 원인이 페이지 부재임을 판별4. 유효한 페이지참조 검사 , 디스크의 페이지 위치 결정5. 디스크로부터 메모리로 읽음 :

a. 읽기 차례가 될 때까지 ready Q 에서 기다림b. 디스크에서 seek time 과 latency time 경과c. 메모리내 지정된 프레임으로 디스크 읽기를 시작

6. 기다리는 동안 CPU 는 다른 사용자에게 할당

Page 12: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 12 -

2. 요구 페이징

7. 디스크가 읽은 후 인터럽트 발생 ( I/O Completed ).8. 다른 프로세스의 PCB 저장 ( if step 6 executed ).9. Disk interrupt 임을 판독10. 새 페이지가 메모리로 로딩된 것을 페이지 테이블에 기록11. Wait for the CPU12. PCB 를 복원시킨 후 중단된 명령어를 다시 실행

Page 13: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 13 -

3. 페이지 교체

16

14

12

10

8

6

4

2

1 2 3 4 5 6

<Graph of page faults versus the number of frames>

num

ber

of p

age

faul

ts

number of frames

Page 14: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 14 -

3. 페이지 교체 FIFO

1. FIFO Algorithm 페이지 참조 순서 : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 페이지프레임 갯수 : 3

reference string

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7

0

7

0

1

2

0

1

2

3

1

2

3

0

4

3

0

4

2

0

4

2

3

0

2

3

0

1

3

0

1

2

7

1

2

7

0

2

7

0

1

page frames

< FIFO 페이지 교체 알고리즘 >

Page 15: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 15 -

3. 페이지 교체 FIFO

16

14

12

10

8

6

4

2

1 2 3 4 5 6 7

< FIFO 알고리즘을 적용했을 때의 페이지 부재 그래프 >

페이지

부재

number of frames

Belady’s anomaly( 모순 ) : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5프레임의 개수가 3 일 경우와 4 일 경우의 비교

Page 16: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 16 -

3. 페이지 교체 Optimal

2. 최적 페이지 교체 가장 오랫동안 사용되지 않을 페이지를 교체 실제 구현 불가능

앞으로 메모리를 어떻게 참조할 것인지를 알 수 없기 때문

reference string

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7

0

7

0

1

2

0

1

2

0

3

2

4

3

2

0

3

2

0

1

7

0

1

page frames

< 최적 페이지교체 알고리즘 >

Page 17: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 17 -

3. 페이지 교체 LRU

3. LRU (Least Recently Used) 알고리즘 가장 오랫동안 사용되지 않을 페이지를 교체

reference string

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7

0

7

0

1

2

0

1

2

0

3

4

0

3

4

0

2

4

3

2

0

3

2

1

3

2

1

0

2

1

0

7

page frames

< LRU 페이지 교체 알고리즘 >

Page 18: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 18 -

3. 페이지 교체 LRU

구현 방법 카운터 (Counters)

• 각 항목마다 사용된 시간 필드를 가짐• CPU 는 시계나 카운터를 가지고 페이지 참조 때마다 각 페이지에 대한

참조시간을 기록 스택 (Stack)

• 페이지가 참조될 때마다 스택의 top 에 위치시킴• bottom 이 LRU 페이지

reference string

4 7 0 7 1 0 1 2 1 2 7 1 2

1

0

7

4

2

stack before a

2

1

0

4

7

stack after b

a b

< 최근의 페이지 참조를 기록하기 위한 스택의 사용 >

Page 19: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 19 -

3. 페이지 교체 LRU 근사

4. LRU Approximation Algorithms LRU 지원하기위한 하드웨어 거의 없음 . 대신 많은 시스템들이 참조 비트 (reference bit)

형태 지원 페이지가 참조될 때마다 해당 페이지의 참조 비트를

설정 참조비트는 0 으로 초기화 실행되면서 참조되는 페이지는 1 로 설정 일정시간 경과 후 사용된 페이지와 사용되지 않은

페이지 알 수 있음 .

Page 20: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 20 -

3. 페이지 교체 LRU 근사

1. 부가적 참조비트 일정한 간격마다 타이머 인터럽트를 발생 , 한비트씩 이동시킨 후

참조비트를 추가

2. 2 차기회 알고리즘

0

0

1

1

0

0

0

0

0

0

참조비트 페이지

Page 21: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 21 -

3. 페이지 교체 카운터 기반

5. Counting Algorithms : counter of page LFU 알고리즘 (Least Frequently Used)

참조횟수가 가장 작은 페이지를 교체 집중적으로 많이 사용된 후 다시 사용되지 않는다면 ?

MFU algorithm (Most Frequently Used) 참조횟수가 가장 작은 페이지를 교체 작은 참조횟수가 최근의 것이며 앞으로 사용될 것

Page 22: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 22 -

3. 페이지 교체 페이지 버퍼링

6. 페이지 버퍼링 알고리즘 시스템이 가용 프레임 여러 개를 풀로 보유 페이지 A 가 부재 , 페이지 B 가 희생될 것으로

지목되면 A 는 B 가 디스크에 쓰기를 기다리지 않고 곧바로 풀중 한 프레임으로 읽어옴 . 희생될 페이지 B 는 이와 동시에 디스크에 쓰여짐 .

변경된 페이지의 리스트를 유지 디스크가 idle 할 때 변경된 페이지를 차례로

디스크에 쓴 후 , 변경비트를 0 으로 설정

Page 23: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 23 -

1. # of Frames 프로세스에 할당되는 프레임의 개수가 줄어들면

페이지 부재율은 급격히 증가 , 실행이 늦어짐 최소 명령어 프레임 수는 명령어 집합 구조에 의해

결정 하나의 명령이 끝나기 전에 페이지부재 발생하면 이 명령은

처음부터 다시 실행되어야 함 따라서 명령어가 참조하는 모든 페이지는 동시에 메모리에

로드되어야 한다 .

4. 프레임의 할당

Page 24: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 24 -

2. 할당 알고리즘 : 균등 할당 : m / n frame

ex) allocate 93 frames to 5 processes ( 18 frames to one )

3 frames - free frame buffer pool

비례 할당 : 프로세스 크기에 비례하여 할당 S = S i ( Virtual memory size of P i )

a i = S i / S x m• ex) allocate 62 frames to two processes, 10 page, 127

page 10 / 137 x 62 ≒ 4 127 / 137 x 62 ≒ 57

4. 프레임 할당

Page 25: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 25 -

5. 쓰레싱 원인

CPU 이용률이 너무 낮으면 새로운 프로세스를 시스템에 추가하여 다중 프로그래밍 정도를 높인다 .

모든 프로세스가 메모리를 조금씩 희생 CPU 이용률이 더 떨어짐 다중프로그래밍 정도를 높임 …

< Thrashing>

CP

U

utili

zatio

n

Degree of multiprogramming

thrashing

Page 26: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 26 -

5. 쓰레싱 해결책

지역 / 우선순위 교환 알고리즘을 사용 각 프로세스가 필요로 하는 최소한의 프레임 수 보장 Working set

지역성 (Locality) 프로세스가 실행될 때 특정 지역에서만 메모리를 집중적으로 참조 한 프로그램은 여러 개의 지역으로 구성 time locality

• reference part have possibility of reference continuous in the near future

ex) Looping, subroutine, stack, counting space locality

• if some part is referred then the near parts have possibility of reference continuous

ex) array, sequence, code execution, related variable is declared near

Page 27: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 27 -

5. 쓰레싱 작업 집합

쓰레싱 예방을 위하여 한 프로세스가 최근 번 페이지를 참조했다면 그 안에

들어있는 서로다른 페이지의 집합을 작업집합이라 한다 . working set window : ex) page reference in reference … 2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 4 4 3 4 3 4 4 4 1 3 2 …

if = 10 , then WS(t1) = { 1, 2, 5, 6, 7 } WS(t2) = { 3, 4 } define for working set window

• value of : large , small• large : 작업 집합이 전체 프로그램이 됨• small : 작업집합이 페이지가 되어 페이지 부재가 빈번하게 발생

t1t2

Page 28: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 28 -

9.7 Thrashing 각 프로세스의 작업집합의 크기 : WSSi

사용가능한 프레임 수 : m 전체 요구량 : D

D = WSSi

if D > m • Thrashing 발생 : to prevent the thrashing by control of the number

of multiprogramming

Operating the Working Set model O.S monitoring each WS of Pi -> allocate the frame that matche

d the size of each Pi

if extra frame is existed, then other process is working if WSSi > total number of effective frame , then O.S select th

e process for stoppingprevent thrashing with multiprogramming

Page 29: Ch.10  가상 메모리

Operating System Ch.10 V.M.- 29 -

9.7 Thrashing Page fault frequency

For Working Set model• if we know Working Set , then we do the prepaging usefully

define the upper bound and lower bound of page fault rate

Upper boundif upper bound exceed then allocate more number of frame

Lower boundif lower bound below then withdraw frame

by controlling page fault rate

Number of frame

Pag

e fa

ult

rate

prevent thrashing

< Page fault frequency>