[OS] Chapter.10 Virtual Memory

Computer/OS | 2006/07/06 09:06 | adioshun

Virtual Memory


Background

ㅁ Virtual memory

  - 물리메모리와 논리메모리 개념을 분리한것

  - 프로그램의 작은 부분으로 큰 프로그램을 실행시킬수있음

ㅁ Virtual memory의 구현

  - demend paging방법

  - demend segmentation방법


Demand Paging

ㅁ 프로세스가 원할때 page를 메모리에 적제

  - 적은 입출력

  - 적은 메모리

  - 빠른 반응

  - 많은 사용자


Valid-Invalid Bit

invalid Bit일때(0) 참조하려 하면 page fault발생


Performance of Demand Paging

ㅁ Page Fault 확률 은 거의 0과 가까움

ㅁ 실제 접근 시간 계산

EAT = (1-확률) X (M.A) +

        확률 X page fault time(page fault overhead + swapin + swapout + restartoverhead)


페이지교체

page는 찾았는데 frame이 없을때 실행된다.


FIFO 페이지 교체

벨러디의 모순


최적 페이지 교체

앞으로 가장 오래동안 안쓰일 페이지


Least Recently Used(LRU) 페이지 교체

가장 오래 안쓴놈 지아삐

Clock : 공간, 시간낭비(int, search)

Stack : 공간낭비(pointer)


LRU Approximation(근사) 페이지 교체

ㅁ Reference bit

  - 0으로 초기화 불려지면 1로 세팅, 나중에 안불려진것이 0인것을 확인가능

ㅁ Second Chance

  - 1인놈 0으로 0인놈 프레임 뺏아버림 다~~1이었으면 한바퀴 돌아야하고 그후는 FIFO와 마찬가지


Counting 알고리즘

ㅁ LFU : 카운팅 숫자가 젤 작은놈 버림(방금온놈이 버려질수도 있음)

ㅁ MFU : 카운팅 숫자가 젤 큰놈 버림(방금온놈 버려질까봐;)

잘안쓰임!


프레임할당

Fixed Allocation

- 프로세스에 갯수에 따라 가용프레임을 마춰서 나눠줌 남는건 버퍼저장소로 사용

Priority Allocation

- 페이지 fault가 발생하면 우선순위가 젤 낮은놈꺼 뺏아서 줌

전역교체

- 한 프로세스가 전체의 프로세스의 프레임을 뺏아 올수있음

지역교체

- 자기에게 할당된 프레임 중에서만 교체될 놈 선택할수 있음

전역은 수행시간이 지맘대로 될수있지만 지역보다 좋음(지역은 안쓰는놈 놔둬서)


Thrashing

스왑이 너무 자주 일어나 CPU 효율성이 떨어지게 되는경우

왜 페이징이 지역적으로 일어나는가?

- 프로세스가 한 지역만을 돌아다녀서(loop)

- 서로 겹칠수 있다

왜 thrashing이 일어나는가?

- 지역의 크기의 합이 총메모리보다 크기때문에


작업 집합 모델 : 페이지 참조의 지정된수

WSS : 가장최근에 X 동안 페이지 참조의 총 번호

너무 작으면 하나도 못포함시킬꺼고

너무 크면 지역성을 과도하게 수용

무한히 크면 프로세스가 수행하면서 만난 모든 페이지의 집합

각프로세스의 WSS를 더하면 총 요구프레임 = D

D>memory => Threashing 그러므로 한프로세스 잡아없에버림


keeping track of the working set

타이머인터럽트와 참조비트를 쓰면 비슷하게 구현가능

5000번 마다 나타나고 참조비트가 1이면 working set(작업 집합)에 들어있는것 인터럽트는 참조비트를 0으로 만듬

-5000번중 어디에서 페이지 참조과 일어났는지는 모름


페이지 부제 빈도에 따라 frame을 늘리고 줄임


윈도우NT 클러스터링으로 한번에 fault가 난 주위의 페이지들을 대리고 온다.

작업집합의 최대 최소를정해둔다.

최소는 시스템이 보장하는 최소한의 메모리 공간이다.

한 프로세스는 최대 보다 많이 먹고 있을끼고

프리 메모리가 쓰레스호드보다 낮으면 자동 작업집한조절이 수행된다.

이정책으로 더 많이 가진놈을 최소로 줄이고 최소보다 작은놈한테준다.


Solaris2

앞바늘이 0으로 만들어 높고 뒤에 따라오다 계속 0인놈 만나면 가용공간으로 보내버린다.

2006/07/06 09:06 2006/07/06 09:06
Trackback address :: http://4ellene.net/tt/trackback/964

Comments List

  1. toyota pickup body parts 2008/05/23 04:47

  2. martha stewart s boyfriend 2008/05/23 05:04

  3. porno trailers 2008/05/24 00:57

    嫄몄

Write a comment.

[로그인][오픈아이디란?]