• 검색 결과가 없습니다.

 8장 가상 메모리

N/A
N/A
Protected

Academic year: 2022

Share " 8장 가상 메모리 "

Copied!
18
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

운영체제 강의노트

 교재 : 운영체제(개정판)

 출판사 : 한빛미디어(2010년 11월 발행)

 저자 : 구현회

(2)

 8장 가상 메모리

(3)

소프트웨어학과 원성현 교수

1. 가상 메모리의 개념

• 가상 메모리(virtual memory)란?

• 실제 주기억장치보다 훨씬 더 크게 주기억장치를 인식하고 사용할 수 있도록 하는 기술

• 프로세스의 덩치가 매우 크지만 실행에 필요한 부분은 극히 일부라 는 것에 착안하여 현재 또는 가까운 미래에 필요하지 않은 부분은 모 두 디스크에 두고 필요할 때만 주기억장치로 적재(swap in)했다가 필요없으면 디스크로 내보내는(swap out) 방식의 메모리 관리 기법 가상 메모리의 등장 배경

0 1 2 3 4 5 6

0

1

2

5 3

6

4 0

2

3

(4)

소프트웨어학과 원성현 교수

1. 가상 메모리의 개념

• 디스크를 이용한 가상 메모리 관리의 문제점

• 메모리와 디스크 사이의 데이터 이동량이 많아져서 시간 지연 발생

• 어느 시기에 페이지를 주기억장치에 넣었다가 다시 디스크로 복귀 시킬 것인지에 대한 결정

• 요구하는 페이지가 주기억장치에 없을 때, 즉 페이지 부재시에 대 한 처리 방안

• 논리 주소와 물리 주소 사이의 적절한 주소 변환이 필수적임

논리주소 (가상주소)

물리주소 (실제주소) 변환

함수

(5)

1. 가상 메모리의 개념

• 동적 주소 변환(DAT : Dynamic Address Translation)

• 가상주소와 실제주소를 연관시키기 위한 방법으로 프로세스가 수 행 중에 실제주소를 배정하는 방법

• 블록 사상

• 동적 주소 변환을 위해서는 주소 사상 테이블(Address Mapping Table)을 유지해야 함

• 사상이 바이트 또는 워드 단위로 이루어지면 주소 사상 테이블을 위한 정보량이 커지므로 사상 정보의 양을 줄이는 방법으로 블록 단 위로 사상을 하는 방법이 등장함

블록 사상

블록 0 블록 1 블록 2

블록 n

가상메모리

주소사상테이블

물리적메모리 보조기억장치

(6)

2. 요구 페이징

• 요구 페이징(Demanded Paging) 기법이란?

• 프로세스를 위해 몇 개의 페이지 프레임을 할당한 후, 시스템이 필 요로 하는 페이지만 페이지 프레임을 할당하고, 필요로 하지 않는 나머지 페이지는 디스크에 보관

• 페이지 프레임을 할당받은 페이지가 필요하지 않게 되고 새로운 페이지가 필요하게 되면 페이지 프레임을 할당받은 페이지를 디스 크로 교체해서 내보내고 디스크에 있는 페이지를 대체함

요구 페이징의 기본 개념

메인 메모리

4 8 12 16 20

0 1 2 3

프로세스 A

프로세스 B

교체되어 나감 교체되어 들어옴

(7)

2. 요구 페이징

• 타당/비타당 비트가 추가된 페이지 테이블

• 페이지 테이블에서 각 페이지가 주기억장치에 있는지(v), 없는지(i) 를 관리

B A C D E G F H

0 1 2 3 4 5 6 7

논리적 메모리

4 6

9

0 1 2 3 4 5 6 7

페이지 테이블

i v v i i i v

i

프레임 타당/비타당 비트

A C

F

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

물리적 메모리

B

D E

G H

보조기억장치

(8)

2. 요구 페이징

• 페이지 부재 해결 과정

• 시스템이 원하는 페이지가 주기억장치에 없는 상황을 해결하는 과 정

보조기억장치

운영체제

Load M i

Free frame

물리적 메모리 1. 참조

2. 트랩

3. 트랩페이지가 보조기억장치에 있음

4. 부재 중인 페이지를 가져옴

페이지 테이블

5. 페이지 테이블 재설정

6. 명령어 재시작

(9)

• 페이지 대치(page replacement)는 왜 필요한가?

• 요구 페이징 기법은 기본적으로 프로세스마다 주기억장치 중 몇 개의 페이지 프레임만을 사용할 수 있도록 하는 기법임

• 사용할 수 있는 페이지 프레임의 수가 3~5개 정도밖에 안되기 때문에 프로세스의 대부분의 페이지들은 디스크에서 대기하고 있 어야 함

• 시스템이 필요로 하는 페이지가 주기억장치에 없다면(이런걸 page fault : 페이지 부재라고 함) 디스크에서 가져와야 하는데 가 져올 때 빈 페이지 프레임이 있다면 다행이지만, 없다면 어떤 페이 지든 디스크로 퇴출되어야만 빈 페이지 프레임을 확보할 수 있음

• 주기억장치에 있는 페이지를 디스크로 내보내고 디스크에 있던 페이지를 주기억장치로 반입하는 것을 페이지 대치라고 함

• 페이지 대치를 얼마나 적게 하는가가 관건임

• 일반적으로 사용 가능한 페이지 프레임이 많을 수록 페이지 대치는 적게 일어난다고 보면 됨

페이지 대치

3. 페이지 대치 알고리즘

(10)

3. 페이지 대치 알고리즘

2 4 6 8 10 12 14 16

1 2 3 4 5 6

Number of frames Number of

page faults

(11)

• 선입선출(FIFO : First In First Out) 알고리즘

• 주기억장치에 적재된 것이 가장 오래된 페이지부터 대치

• 간단하지만 불합리할 수 있음 페이지 대치 알고리즘

3. 페이지 대치 알고리즘

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

f f f f f f f f f f f f f f f

총 페이지 부재 회수 : 15회

(12)

• 선입선출(FIFO : First In First Out)의 모순

• Belady’s Anomaly라고도 하는데 할당되는 페이지 프레임의 수가 늘어나는데 페이지 부재는 더 늘어나는 이상 현상

3. 페이지 대치 알고리즘

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

1

0 1 2

3 1 2

3 0 2

3 0 1

4 0 1

4 2 1

4 2 3

f f f f f f f f f

총 페이지 부재 회수 : 9회

0 3 프레임

4 프레임

0 1

0 1 2

0 1 2 3

4 1 2 3

4 0 2 3

4 0 1 3

4 0 1 2

3 0 1 2

3 4 1 2

총 페이지 부재 회수 : 10회

f f f f f f f f f f

(13)

• 최적(Optimal) 페이지 대치 알고리즘

• 향후 사용될 가능성이 가장 낮은 페이지부터 대치

• 향후 사용될 가능성이 가장 낮다는 것을 아는 것이 어렵기 때문에 현실적으로 적용하기는 어려운 방법

• 이론적으로 최소의 페이지 부재를 가져오기 때문에 다른 방법 들과 비교하기 위해 사용함

3. 페이지 대치 알고리즘

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

f f f f f f f f f

총 페이지 부재 회수 : 9회

(14)

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

• 미래를 알 수 없다면 과거를 이용

• 가장 최근에 사용한 적이 없는 페이지는 향후에도 사용될 가능성 이 가장 낮은 것으로 판단하여 가장 최근에 사용한 적이 없는 페이 지부터 대치

• 어떤 페이지가 가장 최근에 사용되었고, 어떤 페이지가 가장 오래 전에 사용되었는지를 아는 방법

• 계수기를 이용한 순서 결정

• 스택을 이용한 순서 결정

3. 페이지 대치 알고리즘

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

0 3 2

1 3 2

1 0 7

f f f f f f f f f

총 페이지 부재 회수 : 12회

4 0 2

4 3 2

1 0 2

f f f

(15)

• 최근 최소 사용 근접 알고리즘

• 부가된 참조 비트 알고리즘

• 각 페이지에 8비트 길이의 참조 비트 부여

• 페이지가 사용될 때마다 최상위 비트를 1로 바꾸고 오른쪽 으로 한자리씩 시프트

• 값이 00000000이면 한번도 사용된 적이 없는 페이지

• 값이 11111111이면 매번 사용된 페이지

• 값 11000100은 01110111보다 최근에 사용된 페이지

• 이를 통해서 어떤 페이지를 내보낼 것인가를 결정

• 시계(Second Chance) 알고리즘

• 모든 페이지에 1비트의 참조 비트 부여

• 페이지가 사용될 때마다 참조 비트를 0에서 1로 전환

• 참조 비트가 0인 페이지를 내보낼 페이지로 결정

• 참조 비트가 1인 페이지는 참조비트를 0으로 바꾸고 한번 의 기회를 더 줌

• 다음 검사에서 참조 비트가 0이면 대치 대상이 되고 그 동안 또 사용되어 1로 되어 있으면 다시 0으로 바꿈

3. 페이지 대치 알고리즘

(16)

• 프로세스들에게 페이지 프레임을 할당하는 것은 가용 프레임 수에 전 적으로 의존

• 프로세스들에게 할당되는 프레임 수가 줄어들면 페이지 부재율 상승

• 페이지 부재는 페이지 대치 알고리즘의 실행을 유도하고 페이지 교체를 수반하므로 프로그램 실행 속도 저하 유발

• 프로세스들에게 많은 페이지 프레임을 할당할 수도 없음

• 프로세스들이 많은 페이지 프레임을 갖고 있으면 다중 프로그밍 의 정도가 떨어져서 이 또한 시스템 성능 하락의 요인이 됨

• 프로세스별로 반드시 확보해야 할 페이지 프레임의 수가 보장되어야 함

• 균일 알고리즘

• 프로세스의 길이와 무관하게 일정한 수의 프레임 할당

• 비례 할당 할고리즘

• 전체 프레임 수와 프로세스들의 길이를 고려하여 프레임 차 등 할당

4. 프레임 할당 알고리즘

최소 프레임 수

(17)

• 스레싱(Thrashing)이란?

• 프로세스가 기본적으로 확보해야 할 페이지 프레임의 수가 충분하 지 못하여 빈번하게 페이지 부재(page fault)가 발생하는 현상

• 스레싱 발생 원인

• 부족한 페이지 프레임, 과도한 페이지 부재, 과도한 페이지 대치

• 스레싱 예방

• 최적의 페이지 프레임 수 제공

5. 프로세스 적재 정책

스레싱

프로세서 이용률

다중 프로그래밍 정도 스레싱 발생

(18)

• 지역성(Locality)이란?

• 국부성이라고도 함

• 실행 중인 프로세스에 의해 나타나는 특성으로, 프로세스들은 실 행 기간 동안 메모리 내의 정보를 균일하게 액세스하는 것이 아니 라 페이지 중 일부를 선호하여 지역적인 부분만을 집중적으로 참 조하는 현상

• 지역성의 예

• 함수 하나가 새롭게 호출

• 반복문이 실행되기 시작

• 배열이 참조되기 시작

• 지역성의 종류

• 시간적 지역성 : 참조된 기억장소는 가까운 미래에 다시 참조

• 공간적 지역성 : 참조된 기억장소 인근 주소를 계속 참조

• 지역성이 왜 중요한가?

• 몇 개의 페이지 프레임을 할당할 것인가를 결정하는 단초가 됨

5. 프로세스 적재 정책

지역성

참조

관련 문서

그런데 페이지 271 아래를 보면 심포경의 육기를 명문상화라고 하셨습니다.. 다소 혼란스러운데 정리하여

웹 페이지

수화 현상이란 조류 특히 식물성 플랑 크톤이 일시에 다량으로 증식하는 것을 말하는데, 수질을 악화시켜 어류 등에 치명적인 영향을 주지만 수온이 낮아지 면 스스로 사그라지는

보훈대상자와 장애인은 국가관련법에

영화 : 홈페이지 개인화 음악 : 재생목록 개인화 상품 페이지

after image 모든 레코드 공통 type에 따라 추가되는 필드.. DBS는 파일들을 메모리에 두고 필요할 때 디스크를 갱신 하려,,.. 그림자 페이지 및 현행

Display는 가능하나 저자의 이름과 성을 구분하기 곤란  복잡한 문서들의 교환에 부적합... 너무 복잡해서

[r]