4)가상메모리관리

Download Report

Transcript 4)가상메모리관리

제 4 장 가상 메모리 관리
4.1 개요
• 가상 메모리는 하나의 프로세스 전체가 한 번에 주기억 장치 내에 존재하
지 않고 일부만 있어도 수행하게 하는 방법을 제공함.
• 가상 메모리를 사용하면 사용자는 실제 주소 공간의 크기에 구애 받지 않
고 보다 큰 가상 주소 공간상에서 프로그래밍을 할 수 있을 뿐만 아니라,
주기억장치보다 크기가 큰 프로세스를 수행시킬 수 있다.
4.1.1 동적 주소 변환(dynamic address translation)
• 주소 사상 기법
• 동적 주소 변환(DAT : Dynamic Address Translation) 기법: 프로세스가 수행될 때
가상 주소를 실제 주소로 변환하는 대표적인 메커니즘
4.1.2 블럭 사상(block mapping)
• 블럭 사상 시스템에서의 가상 주소
블록 번호 b
변위 d
Slide 1 (of 24)
가상주소
v=(b, d)
• 블럭 사상(mapping)을 통한 가상 주소변환
Slide 2 (of 24)
4.2 페이징
• 페이징 시스템에서의 가상 주소는 순서쌍 v=(p, d)로 표현
p는 가상 메모리 내에서 참조될 항목이 속해 있는 페이지 번호
d는 페이지 p 내에서 참조될 항목이 위치하고 있는 곳의 변위
• 순수 페이징 시스템에서의 가상 주소
페이지 번호 p
변위 d
가상 주소
v=(p, d)
• 페이징 기법 하에서의 동적 주소 변환
 실행 중의 프로세스가 참조하는 가상 주소를 v=(p, d)라고 할 때, 페이지 사
상 테이블(page mapping table)에서 페이지 p를 찾고,
 페이지 p가 페이지 프레임 p'에 있음을 알아낸다.
 그 후 p'와 d를 더하여 주기억장치 상의 실제 주소 r=p'+d를 구한다.
Slide 3 (of 24)
• 페이징 예
Slide 4 (of 24)
4.2.1 직접 사상(direct mapping)
• 직접 사상에 의한 페이지 주소 변환
 직접 사상 방법에서 아주 큰 페이지 사상 테이블은 보통 주기억장치에서 유지․관리된
다. 또한 변환되는 가상 주소와 페이지 사상 테이블의 시작 주소는 제어장치 내의 고속
레지스터에 보관함으로써 페이지 사상 테이블의 참조는 한 주기억장치 주기 시간
(cycle time) 내에서 수행된다
Slide 5 (of 24)
4.2.2 연관 사상(associative mapping)
• 연관 기억장치(associative memory)에 페이지 사상 테이블 전체를 넣는 방법
• 내용 주소화 기억장치(Content-addressable memory): CAM에서는 사용자가 검색
어를 제공하면, CAM은 자신의 메모리 공간 전체를 탐색하여 해당 검색어가 위치
하고 있는 주소를 반환한다.
• 순수 연관 사상을 통한 페이지 주소 변환
Slide 6 (of 24)
4.2.3 연관/직접 사상
• 적당한 비용으로 캐시나 연관기억장치 기법에 의한 장점을 살릴 수 있는 절충 방
안
• 가장 최근에 참조된 페이지는 조만간 다시 사용되기 쉽다는 사실을 이용하여, 연
관기억장치에는 페이지 사상 테이블의 전체 항목 중 최근에 참조된 일부 페이지
항목들만을 수용.
• 연관/직접 사상을 통한 페이지 주소 변환
Slide 7 (of 24)
• Multiple Levels of Cache Memory
Slide 8 (of 24)
4.2.4 페이징 시스템의 공유
• 순수 페이징 시스템에서의 공유
실기억장치
프로세스
A의 페이지
사상 테이블
프로세스
A만 사용
페이지 5
프로세스 A, B가
공유
페이지 6
페이지 7
프로세스
B의 페이지
사상 테이블
프로세스 A, B,
N이 공유
페이지 8
페이지 9
페이지 10
프로세스 B, N이
공유
프로세스
N의 페이지
사상 테이블
Slide 9 (of 24)
페이지 11
4.2.5 페이지 크기
• 페이지의 크기를 결정함에 있어 고려되어야 할 내용
 테이블 단편화(table fragmentation)
 페이지 크기가 작을수록 프로세스가 작업세트(working set)를 확보하는 데 도움이 된
다. 프로세스들은 구역성을 가지며 이 구역 내에서는 비교적 소량의 정보만을 필요로
하기 때문이다.
 마지막 페이지가 거의 찬 상태일 수도 있고 또는 거의 빈 상태일 수도 있기 때문에 평
균적으로 1/2 페이지의 단편화가 생기게 된다. 따라서 페이지 크기가 작을수록 내부
의 단편화는 감소된다.
 페이지가 크게 되면 참조되지 않을 많은 정보들까지 주기억장치로 옮겨지게 되어 기
억공간의 낭비를 초래하게 된다.
 디스크로부터의 입출력 전송은 많은 시간이 소비되기 때문에, 프로그램 실행 중 입출
력 전송의 횟수를 줄이기 위해서는 페이지 크기가 클수록 효과적이다.
Slide 10 (of 24)
4.2.6 페이지 인출 기법
• 요구 페이징(demand paging) 기법
 실행 중인 프로세스에 의하여 명백히 참조되는 프로세스만이 보조기억장치로부터 주
기억장치로 옮겨진다.
• 예상 페이징(anticipatory paging) 기법
 프로세스가 필요로 할 페이지들을 운영체제가 예측하여 주기억장치에 여유
가 있을 때 이 페이지들을 미리 적재시킨다.
4.2.7 페이지 양도(page release)
• 더 이상 필요로 하지 않는 특정한 페이지가 존재한다면, 작업세트로부터 그것을
제외시켜 페이지 프레임을 유용하게 만든다.
• 컴파일러나 운영체제가 자동으로 페이지 제거를 실행하여 작업세트를 확보
Slide 11 (of 24)
4.3 세그먼테이션(segmentation)
• 세그먼트: 논리적 단위가 되는 프로그램 모듈이나 자료 구조
4.3.1 직접 사상
• 세그먼테이션 시스템에서의 가상 주소
세그먼트 번호 s
변위 d
• 순수 세그먼테이션 시스템에서의 가상 주소 변환
Slide 12 (of 24)
가상 주소
v=(s, d)
4.3.2 공유 및 보호
• 공유
 세그먼테이션 시스템에서의 세그먼트 공유
문서
처리기
세그먼트 0
데이터 1
세그먼트
시작주소
0
1
세그먼트 1
32151
57737
세그먼트 테이블
(사용자 1)
논리적 기억장치
(사용자 1)
데이터 2
세그먼트 1
문서 처리기
57737
61662
문서
처리기
세그먼트 0
32151
세그먼트
시작주소
0
1
32151
81112
세그먼트 테이블
(사용자 2)
논리적 기억장치
(사용자 2)
Slide 13 (of 24)
데이터 1
81112
87442
데이터 2
실기억장치
• 보호를 위한 접근(access) 제어
 세그먼트 사상 테이블의 항목
r=0 : 세그먼트가 주기억장치 내에 없는 경우R: 판독 접근
r=1 : 세그먼트가 주기억장치 내에 있는 경우W: 기록 접근
보호 비트 : (1예, 0아니오)E: 수행 접근
A: 첨가 접근
 접근 제어 유형
접근형태
약자
설명
판독
R
이 블럭은 읽힐 수 있다.
기록
W
이 블럭은 수정될 수 있다.
수행
E
이 블럭은 수행될 수 있다.
첨가
A
이 블럭의 끝에 정보를 첨가할 수 있다.
Slide 14 (of 24)
4.4 페이징/세그먼테이션 혼용 기법
• 페이징/세그먼테이션 시스템에서의 가상 주소 양식
세그먼트 번호 s
페이지 번호 p
변위 d
가상 주소
v=(s, p, d)
• 페이징/세그먼테이션 혼용 시스템에서의 연관/직접 사상을 통한 가상 주
소 변환
Slide 15 (of 24)
페이지 부재 처리 과정
Slide 16 (of 24)
4.5 페이지 교체 알고리즘
• 페이지 교체 기법은 새로이 적재될 페이지를 위한 주기억장치 공간을 확
보하기 위하여, 현재 주기억장치를 차지하고 있는 페이지들 중에서 어떤
페이지를 선택하여 가상 공간으로 보낼 것인가를 결정하는 기법
4.5.1 FIFO(FirstIn FirstOut) 알고리즘
• 페이지가 교체될 필요가 있을 때 가장 먼저 주기억장치에 들어와 있는 페이지와
교체시키는 방법
• FIFO 알고리즘
페이지 호출 순서
8
1
8
2
3
1
4
1
5
3
4
1
4
3
2
3
1
2
8
1
2
8
8
3
3
3
5
5
5
1
1
1
8
8
8
1
1
1
4
4
4
3
3
3
2
2
2
1
1
2
2
2
1
1
1
4
4
4
3
3
3
2
페이지 프레임
발생된 총 페이지 부재의 횟수는 15번
Slide 17 (of 24)
4.5.2 최적 교체(Optimal Replacement) 알고리즘
• 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체시킨다.
• 최소의 페이지 부재율을 가지는 알고리즘이다.
• 최적 교체 알고리즘
페이지 호출 순서
8
1
8
2
3
1
4
1
5
3
4
1
4
3
2
3
1
2
8
1
8
8
3
3
3
3
3
8
1
1
1
1
5
1
1
1
2
2
4
4
4
2
2
페이지 프레임
 9번의 페이지 부재
Slide 18 (of 24)
2
4.5.3 LRU(Least Recently Used) 알고리즘
• 현시점에서 가장 오래전에 사용된 페이지를 제거하는 방법
• LRU 알고리즘
페이지 호출 순서
8
1
8
2
3
1
4
1
5
3
4
1
4
3
2
3
1
2
8
1
8
8
3
3
5
5
5
1
2
2
2
1
1
1
1
1
1
4
4
4
1
1
2
2
4
4
3
3
3
3
3
8
페이지 프레임
 12번의 페이지 부재
Slide 19 (of 24)
2
4.5.4 2차 기회(second chance) 알고리즘
• 페이지 테이블의 각 항목에 한 개의 참조 비트를 연관시킨 후, 처음에 운영체제에 의해 모
든 참조 비트는 0로 된다. 그 후 한 프로세스가 수행되면서 참조한 각 페이지와 관계된 비
트는 값이 1로 바뀐다
• 페이지 교체를 위하여 페이지의 참조 비트를 조사하여 그 값이 0이면 그 페이지를 교체하
고, 참조 비트가 1이면 그 페이지에게 2차 기회를 주고 다음 페이지를 조사하기 위하여
FIFO 방식으로 진행한다.
• 2차 기회 알고리즘
참조비트
페이지
nth
(n+1)th
0
교체
0
1
2차
기회
1
0
2차
기회
1
0
교체
0
1
페이지의 환형큐
Slide 20 (of 24)
4.5.5 LFU(Least Frequently Used) 알고리즘
• 각 페이지의 사용이 얼마나 집중적으로 되었는가에 관심을 갖고, 가장 적게 사용
되거나 집중적이 아닌 페이지가 대체된다.
4.5.6 NUR(Not Used Recently) 알고리즘
• 최근에 사용되지 않은 페이지는 가까운 미래에 사용되지 않는 경향에 따라 그것
들을 참조되는 페이지와 교체시킨다.
• 각 페이지에 대해 두 개의 하드웨어 비트를 첨가하게 된다.
① 참조된 비트=0 : 그 페이지가 참조되지 않았을 경우
참조된 비트=1 : 그 페이지가 참조되었을 경우
② 변형된 비트=0 : 그 페이지가 변형되지 않았을 경우
변형된 비트=1 : 그 페이지가 변형되었을 경우
• 페이지 교체 시 참조 비트가 0인 페이지를 찾는다. 만일 모든 페이지의 참조 비트
가 1일 때는 변형 비트가 0인 것을 찾는다.
Slide 21 (of 24)
4.6 쓰래싱(thrashing)
중앙처리장치의 효율성
• 쓰래싱 : 어떤 프로세스가 어느 정도의 프레임을 갖고 있지 않다면, 페이
지 부재가 발생하게 되어 프레임 안에 있는 사용 중인 어떤 페이지를 교
체하여야 하는데, 이러한 페이지 부재가 계속적으로 발생되어 프로세스
가 수행되는 시간보다 페이지 교체에 소비되는 시간이 더 많아지는 경우
쓰래싱
다중 프로그래밍의 정도
Slide 22 (of 24)
4.6.1 구역성(locality)
• 쓰래싱을 방지하기 위하여 한 프로세스가 효율적인 수행을 위하여 제공받아야
할 프레임의 수를 알아야 한다.
• 구역성이란 ‘프로세스가 기억장치 내의 모든 정보를 균일하게 참조하는 것이 아
니라 국부적인 부분만을 집중적으로 참조한다’는 것을 의미한다.
• 시간 구역성(temporal locality)
 최근에 참조된 기억장소가 가까운 장래에도 계속 참조될 가능성이 높음을 의미한다.
 예 : 순환(looping), 서브루틴, 스택, 카운팅(counting)과 집계(totaling)에 사용되는 변
수
• 공간 구역성(spatial locality)
 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조되는 경향이 있음을 의
미한다.
 예 : 배열 수행, 순차 코드의 실행(sequential code execution), 프로그래머들이 관련된
변수
Slide 23 (of 24)
4.6.2 작업세트(working set)
• 작업세트 : 프로세스에 의해 자주 참조되는 페이지들의 집합
페이지 부재율
4.6.3 페이지 부재율
프레임 할당
상한계
하한계
프레임 회수
프레임의 수
Slide 24 (of 24)