Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 08 가상 메모리(Virtual Memory)

Similar presentations


Presentation on theme: "Chapter 08 가상 메모리(Virtual Memory)"— Presentation transcript:

1 Chapter 08 가상 메모리(Virtual Memory)
Operating Systems Chapter 08 가상 메모리(Virtual Memory)

2 01 가상 메모리 시스템 가상 메모리 소개(Virtual Memory overview)
가상 메모리는 실제 메모리와 swap를 사용하여 프로세스에게 일관된 메모리 공간을 제공하는 기술이다. 그러므로 가상 메모리가 제공하는 가상의 주소공간인 가상주소(virtual address)는 실제 메모리의 물리적 주소(physical address)보다 크거나 같다. 가상 메모리의 가장 큰 특징은 모든 프로세스에게 메모리는 시작주소가 0번인 매우 큰 크기의 연속된 작업공간으로 보인다는 것이다. - 실제로는 그렇지 않다. 메모리 0번지는 운영체제가 사용하는 공간이기 때문에 일반 프로세스는 사용할 수 없다. - 32bit CPU에서 가상 주소의 최대값은 4GB(232)가 된다. Practical Operating Systems

3 01 가상 메모리 시스템 가상 메모리 시스템 메모리 관리 장치
가상 메모리의 전체 크기 = 실제 메모리 크기 + swap의 크기 메모리 관리 장치 프로세스A (4Gbyte) 프로세스B (4Gbyte) 프로세스C (4Gbyte) 운영체제 프로세스A 프로세스B 프로세스C SWAP 영역 가상주소공간 실제 메모리 저장 장치 Practical Operating Systems

4 01 가상 메모리 시스템 가상 메모리 시스템 프로세스가 메모리에 접근하려고 하면 가상 메모리 관리자는 가상 주소를 물리주소로 변환하게 된다. 가상주소를 실제의 주소로 변환하는 작업을 DAT(Dynamic Address Translation)라 부르며, 매우 빈번하고 빠른 속도를 요구하기 때문에 메모리 관리 장치라는 H/W가 담당한다. 가상 메모리 시스템에서 메모리 할당 방식은 - 가변 분할 방식 : 세그먼테이션(Segmentation) - 고정 분할 방식 : 페이징(Paging) 가변 분할 방식을 이용한 세그먼테이션의 경우 추가적인 메모리 작업이 많아져 속도가 느리다는 단점 때문에 순수세그먼테이션 기법은 잘 사용되지 않고 페이징 기법의 단점을 보완하기 위해 페이징과 세그먼테이션의 혼합기법이 사용된다. Practical Operating Systems

5 01 가상 메모리 시스템 실제 메모리와 가상 메모리 기법의 비교 실제 메모리 가상 메모리 CPU bit 값 최대 메모리 크기
최대 가상주소 크기 메모리분할 방식 가변 분할 방식 고정 분할 방식 세그먼테이션 페이징 혼합기법 주소지정방식 절대주소, 상대주소 가상주소 Practical Operating Systems

6 02 페이징(Paging) 페이징(Paging) 기법
Practical Operating Systems

7 02 페이징(Paging) 페이징(Paging) 기법 가상주소 물리주소 Page 0 Page 1 Page 2 Page 3
׃ Frame 0 Frame 1 Frame 2 Frame 3 Frame 4 Page frame 2 3 4 1 페이지 테이블 (page와 frame 간의 연결 정보) Practical Operating Systems

8 02 페이징(Paging) 페이징 기법에서의 주소 변환
페이징은 고정 분할 방식이기 때문에 가상주소와 물리주소는 같은 크기로 나뉜다. 가상주소에서 나눠진 각각의 덩어리를 page 라 하고, 물리메모리의 덩어리를 frame이라 한다. Page와 frame 간의 연결 정보는 page table이 가지고 있어 가상메모리의 page가 실제메모리의 frame 위치를 알 수 있다. 프로세스가 가상주소를 사용하여 작업을 하면 메모리 관리자는 페이지 테이블을 이용하여 가상주소를 물리주소로 변환한다. Practical Operating Systems

9 02 페이징(Paging) 페이징(Paging) 기법에서의 주소 변환
예를 들어 가상주소 30번지는 3번 page의 0번 위치이다. 3번 page가 물리 메모리 frame 1에 있고 이의 0번째 위치를 접근 가상주소 물리주소 페이지테이블 Page Page Page Page Page Page Frame 0 Frame 1 Frame 2 Frame 3 Frame 4 Page frame 2 3 4 1 invalid 5 Swap 영역에 있음을 표시 10byte 10byte Practical Operating Systems

10 02 페이징(Paging) 페이징 기법에서의 실제주소 변환 과정 V = ( P , D ) P = ( F , D )
가상주소 V = ( P , D ) Page Distance PTE 0 PTE n 2 3 4 1 ׃ Frame Distance 물리주소 P = ( F , D ) Page Table Entry 페이지 테이블 Practical Operating Systems

11 02 페이징(Paging) 페이징 기법에서의 실제주소 변환 과정 V = ( P , D ) P = ( F , D )
가상주소 30번지 V = ( 3 , 0 ) Page Distance PTE 0 PTE 3 PTE n 2 3 4 1 ׃ Frame Distance 물리주소 10번지 P = ( 1 , 0 ) 페이지 테이블 Practical Operating Systems

12 02 페이징(Paging) 페이지 테이블 관리 페이지 테이블의 각 열인 PTE는 프레임 번호 이외에 유효비트(valid bit)나 접근권한(access privilege) 등의 부가적인 정보를 가지게 된다. 가상 메모리 시스템에서 실제 메모리가 부족할 경우, 프로세스의 조각은 스왑으로 옮겨지게 되므로 프로세스들은 실제 메모리와 스왑에 나뉘어서 존재한다. 프로세스가 데이터를 요청했는데 해당 데이터가 메모리에 없는 경우를 페이지 에러(page fault)가 발생했다고 하며, 이는 해당 페이지가 실제 메모리에 없는 페이지 부재를 의미한다. 이런 정보를 표현하기 위해 페이지 테이블의 각 열인 PTE는 유효비트(valid bit)를 갖는다. Valid bit Valid bit frame number 1 Address in storage 해당 페이지가 메모리에 존재 해당 페이지가 메모리에 부재 (invalid) Practical Operating Systems

13 02 페이징(Paging) 페이지 테이블 구조 페이지 테이블은 매우 빈번하게 사용되는 자료구조이기 때문에 필요할 때마다 빠르게 접근할 수 있어야 한다. 따라서, 페이지 테이블은 실제 메모리 영역 중 운영체제 영역의 일정 부분에 모아 놓는다. 프로세스 B PTBR 프로세스 A PTBR b a Page table A Page table B Frame 0 : Frame n 운영체제영역 페이지 테이블영역 PTBR (Page Table Base Register) :페이지 테이블의 시작주소를 갖고 있고, 각 프로세스의 PCB에 저장된 정보 일반영역 Practical Operating Systems

14 02 페이징(Paging) 매핑 방식(Mapping)
시스템 내에는 여러 개의 프로세스가 존재하고 각 프로세스는 하나의 페이지 테이블을 가져야 한다. 따라서 전체 페이지 테이블의 크기는 프로세스의 수와 비례하여 커지게 되고, 이 크기가 너무 커질 경우 프로세스가 실제로 사용할 수 있는 영역이 줄어 들게 된다. 그러므로 실제 메모리의 크기가 작을 경우에는 프로세스만 스왑으로 옮겨지는 것이 아니라 페이지 테이블의 일부도 스왑으로 옮겨지게 된다. 페이지 테이블 전부를 메모리에서 관리하느냐, 혹은 일부를 스왑에서 관리하느냐에 따라 주소 변환 방법이 다르다. 페이지 테이블과 실제 메모리를 연결 시키는 방법(매핑)에는 직접매핑(direct mapping) : 페이지 테이블 전체가 실제 메모리에 있어 별다른 작업 없이 주소 변환이 가능한 매핑 방식. 연관매핑(associate mapping) : 페이지 테이블 일부만이 실제 메모리에서 관리하여 주소변환 하는 방식. Practical Operating Systems

15 02 페이징(Paging) 매핑 방식의 종류 직접매핑(direct mapping) : 페이지 테이블 전체가 실제 메모리에 있어 주소변환이 수월함 연관매핑(associate mapping) : 페이지 테이블 전체는 저장장치의 스왑영역에 있고 일부만 실제 메모리에 있어 검색시간이 걸리고 페이지번호와 프레임번호를 동시에 관리해야 한다. 디렉터리매핑(directory mapping) : 연관매핑 방식을 개선, 페이지 테이블을 일정크기로 나누고 이를 관리하는 테이블을 하나 더 생성하 는 방식 역매핑(invert mapping) : 페이지 테이블을 반대로 구성 즉, 메모리의 프레임 번호를 기준으로 하여 페이지 테이블을 구성 Practical Operating Systems

16 02 페이징(Paging) 매핑 방식의 종류 1 2 3 4 I 180 I : Invalid PID : Process ID
Page frame directory address 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 3 10 14 5 11 12 6 7 20 2 9 16 1 2 3 4 I 180 I : Invalid PID : Process ID Page frame Page frame Frame PID page 5 20 10 11 12 13 14 20 2 9 5 16 1 2 3 4 4 Direct mapping Associate mapping directory mapping invert mapping Practical Operating Systems

17 02 페이징(Paging) Direct mapping(직접매핑)
모든 페이지 테이블을 실제 메모리에 있는 방식이며 가장 단순한 방법, 또한 실제 메모리가 충분할 경우 사용, 메모리 접근 속도가 빠르다. 가상주소 V = ( P , D ) PTBR a Page distance a : P Frame distance 물리주소 P = ( F , D ) 직접매핑 테이블 Practical Operating Systems

18 02 페이징(Paging) Associate mapping(연관매핑)
전체 테이블을 스왑영역에 두고 페이지 테이블 일부를 무작위로 실제 메모리에 캐싱(caching)하는 방법, 실제 메모리상의 일부 테이블을 TLB(Translation Look-aside Buffer)라 한다. TLB는 연관레지스터(associate register)라고도 불리는데, 페이지 번호와 프레임 번호로 구성된 작은 크기의 테이블이다. 연관 매핑은 메모리에 접근하기 위해서 먼저 TLB를 검색하고 원하는 페이지 번호가 있으며 “TLB hit“라 하여 바로 물리주소로 변환하고, 없으며 “TLB miss”라 하여 스왑영역의 직접매핑 테이블을 참조하여 프레임 번호로 변환한다. TLB만이 실제 메모리에 저장 하므로 메모리를 절약할 수 있는 장점이 있으나 TLB miss가 빈번하게 발생할 경우 시스템 성능이 떨어지는 단점과 무작위로 페이지 관련 데이터를 가지고 있어 TLB 전체 검색 후 페이지 존재를 파악할 수 있어 주소변환 성능 저하 원인이 됨 Practical Operating Systems

19 02 페이징(Paging) 연관 매핑 방식 TLB miss Page distance TLB hit : TLB
가상주소 V = ( P , D ) TLB miss Page distance Page frame TLB hit : TLB Frame distance 물리주소 P = ( F , D ) 직접매핑 테이블 Practical Operating Systems

20 02 페이징(Paging) Directory mapping(디렉터리 매핑)
연관 매핑에서는 메모리에 있는 페이지 테이블(=TLB)를 모두 검색한 후에야 스왑에 있는 페이지 테이블을 검색하게 되어 성능을 떨어뜨리는 단점이 있다. 이를 개선한 방법이 디렉터리 매핑이다. 페이지 테이블을 같은 크기의 여러 개의 묶음으로 나누고, 각 묶음의 시작주소를 가지는 디렉터리 테이블을 새로 만들어 관리하는 방식이다. 페이지 테이블은 각 묶음 단위로 메모리에 올라오거나 스왑으로 옮겨지며, 디렉터리 테이블은 해당 묶음이 현재 메모리에 있는지 혹은 스왑 영역에 있는지를 표시하게 된다. 그러므로 디렉터리 테이블을 살펴보면 원하는 테이블이 어디에 있는지 확인 할 수 있어 연관 매핑보다 성능이 좋다. 디렉터리 매핑의 가상주소는 V = (Page 1, Page2, Distance)로 표시 page 1은 디렉터리 테이블의 역할을 담당하게 되어 page2가 메모리 혹은 스왑에 있는지에 대한 위치 정보를 가지게 된다. Practical Operating Systems

21 02 페이징(Paging) 디렉터리 매핑 방식 P1 : directory number P2 : page number
가상주소 V = ( P1 , P2 , D ) Page 1 page 2 distance PTBR a a b P1 b P2 Frame distance 물리주소 P = ( F , D ) 첫 번째 페이지 테이블 두 번째 페이지 테이블 Practical Operating Systems

22 02 페이징(Paging) 디렉터리 매핑 방식 디렉터리 매핑은 크기가 큰 페이지 테이블을 같은 크기의 묶음으로 나누어 관리함으로써 효율을 증가 시킨다. 연관 매핑에서 TLB 전체를 검색해야 하지만 디렉터리 매핑은 첫 번째 테이블을 통하여 두 번째 테이블의 위치를 바로 확인 할 수 있어 검색 시간의 낭비가 없다. - 직접 연관 매핑(direct-associate mapping) 또는 - 멀티페이지 매핑(multi-page mapping)라고도 부른다. Practical Operating Systems

23 02 페이징(Paging) 역매핑(invert mapping)
지금까지 매핑 방식은 페이지 번호를 기준으로 프레임 번호를 연결하는 방식이다. 이는 가상 메모리의 크기가 매우 크기 때문에 각 프로세스마다 많은 양의 페이지 테이블을 관리해야 한다. 따라서 역매핑은 지금과 달리 물리 메모리의 프레임 번호를 기준으로 페이지 테이블을 작성하는 방식이다. 즉, 실제 메모리가 어떤 페이지를 가지고 있는가를 테이블 형태로 구성하므로 페이지 테이블의 크기는 물리 메모리의 프레임 크기와 동일하다. 테이블은 프레임 번호, 페이지에 해당하는 프로세스 번호, 페이지 번호로 구성된다. (frame number, process ID, page number) 주소 변환 시 메모리 관리자는 주소 변환을 해야 하는 해당 프로세스 ID와 page number가 실제 메모리에 있는지 역 매핑 테이블에서 검색하여 없으면 저장장치에서 원하는 정보를 가지고 온다. Practical Operating Systems

24 02 페이징(Paging) 역 매핑의 장,단점 장점은 페이지 테이블의 크기가 작아진다는 것이다.
역 매핑에 페이지 테이블의 열의 개수는 실제 프레임 개수와 같으므로 프로세스의 개수에 관계없이 항상 일정 크기의 페이지 테이블이 유지된다. 그러나 역 매핑은 연관 매핑과 마찬가지로 페이지 테이블을 다 검사한 후 저장장치에 접근하기 때문에 검색시간을 낭비하는 단점이 있다. Practical Operating Systems

25 02 페이징(Paging) Practical Operating Systems

26 02 페이징(Paging) Practical Operating Systems

27 02 페이징(Paging) 페이징 기법에서의 페이지 크기 운영체제 마다 한 페이지의 크기가 다르다.
예 : 유닉스계열의 VAX 는 29(=512바이트) 윈도즈 NT는 212(=4096바이트) SUN의 솔라리스는 213(=8192바이트) 다양한 페이지 크기에 대한 가상주소 V=(P, D)의 일반화된 공식 P(Page number) = 나눗셈의 몫(가상주소/ 한 페이지의 크기) D(distance) = 나눗셈의 나머지(가상주소/한 페이지의 크기) 예를 들면 10바이트의 페이지 크기를 가진 가상 메모리 시스템에서 가상주소 32번지의 page number는 3(32/10의 몫)이며 distance는 2(32/10의 나머지)이다. 한 페이지 크기가 512바이트인 페이징에서 가상주소 2049번지는 (page number : 4, distance : 1)로 표시 한 페이지 크기가 4096바이트인 가상메모리에서 번지는 (P : 219, D : 630)으로 표시된다. Practical Operating Systems

28 페이지 크기 하드웨어 디자인에서 매우 중요한 요소
운영체제를 설계하는 사람에게는 페이지 크기에서 선택권 거의 없지만, 최적 페이지 크기와 관련된 결정 해야 함. 보통 페이지 크기는 2의 지수승이고, 256(28)에서 4,096(2122)바이트나 워드 페이지 크기는 메인 메모리의 크기와 프로그램 크기 자체에 영향. 페이지 크기 결정 시 페이지 테이블의 크기 고려. 가상 메모리 공간이 주어 졌을 때 페이지 크기를 감소시키면 페이지 수가 증가하여 페이지 테이블의 크기도 증가 메모리는 크기가 작은 페이지가 이용 용이 내부 단편화를 최소화하려면 크기가 작은 페이지 필요 입출력 시간을 최소화시키려면 페이지 크기를 더 크게 하는 것이 유리 페이지 크기는 컴퓨터 종류별로 매우 다양 프로세서의 속도와 메모리 용량, 디스크 속도가 증가하면서 오늘날 페이지 크기는 더 커짐 페이지 크기를 증가시키는 것이 페이지 부재의 빈도를 줄이는 데 더 유리 페이지 크기가 증가하면 내부 단편화 증가

29 페이지 크기 별 특징

30 02 페이징(Paging) 페이징 기법에서의 페이지 크기 한 페이지의 크기는 페이지 테이블의 크기와 밀접한 연관관계를 가짐
한 페이지의 크기를 크게 하면 페이지 테이블의 크기가 작아지고, 작게 하면 페이지 테이블의 크기는 커진다. (페이지 크기와 페이지 테이블크기는 반비례한다.) 또한 한 개의 페이지의 크기가 너무 크면 내부 조각화로 인하여 낭비되는 공간이 많아지며, 내부 조각화를 줄이기 위하여 페이지를 너무 작게 나누면 페이지 테이블의 크기가 커져 실제로 사용할 수 있는 메모리가 줄어든다. 예1) 윈도우즈 NT에서의 32bit CPU를 지원하는 경우 가상주소공간의 크기가 232(=4G)바이트이며, 1개 페이지의 크기는 212(=4096)바이트이다. 그러므로 가상주소 공간은 220(=1,048,576)개의 열을 가진다. 이런 가상주소를 페이지 테이블로 표현하기 위해서는 페이지 테이블도 220(=1,048,576)개 열을 가진다. 페이지 테이블의 1개의 열은 1,048,576을 표현할 수 있는 크기여야 하므로 20bit의 크기를 가져야 한다. 따라서 페이지 테이블이 차지하는 공간은 1,048,576 * 20bit = 20Mb가 된다. Practical Operating Systems

31 02 페이징(Paging) 페이징 기법에서의 페이지 크기
예2) 한 페이지의 크기가 29(=512바이트)인 VAX(32bit CPU)의 경우 전체 페이지의 개수는 223 (=8,388,608)개 이며, 테이블 열은 8,388,608을 표현할 수 있는 크기인 23bit가 되고, 페이지 테이블의 크기는 8,388,608*23 = 약 184Mb가 된다. 이는 윈도우 NT보다 9배 크다 결론 : 페이징 기법에서 한 페이지의 크기를 크게 하면, 내부 단편화로 인한 낭비 공간이 생기지만, 페이지 테이블의 크기는 작아진다. 반대로 한 페이지의 크기를 작게 하면 내부 단편화가 줄어드는 대신에 페이지 테이블의 크기가 늘어나게 된다. Practical Operating Systems

32 예제 풀어보기 32비트(4GB) 가상 주소와 1GB 물리적 주소, 1MB 페이지를 사용하는 시스템이 있다. 다음 물음에 답하시오. 즉, 가상주소= 232, 물리주소= 230, 페이지크기= 220 ① 가상주소 공간에 페이지의 수는 몇 개 있는가? 4096 ② 물리주소 공간에 프레임의 수는 몇 개 있는가? 1024 ③ 변위(distance)는 몇 비트가 필요한가? 20 ④ 가상주소 공간의 페이지 번호에 비트가 몇 개 필요한가? 12 ⑤ 물리주소 공간의 프레임 번호에 비트가 몇 개 필요한가? 10 Practical Operating Systems

33 03 세그먼테이션(Segmentation)
Practical Operating Systems

34 03 세그먼테이션(Segmentation)
Practical Operating Systems

35 03 세그먼테이션(Segmentation)
가상주소 V = ( S , D ) Trap(addressing error) no segment distance < Distance = Protection 의미 yes limit address 1 2 3 120 450 limit address 물리주소 physical address 세그먼테이션 테이블 Practical Operating Systems

36 03 세그먼테이션(Segmentation)
예) segment 0번인 프로세스 A의 경우 280바이트 크기이며, 실제 메모리상의 120번지에 위치하고 있다. 프로세스 A가 32번지를 접근하려 한다면, 이는 가상주소 V = (0,32)로 변환되고 세그먼테이션 테이블에 의하여 실제 주소 152번지로 변환된다. 만약 프로세스 A가 가상주소 280번지보다 큰 주소에 접근하려 한다면, trap 에러를 발생한다. 즉, 세그먼트의 주소 범위를 벗어났다는 의미이다. 세그먼테이션 기법은 가변분할 방식을 기본으로 하는 가상메모리 관리 기법이므로 가변 분할 방식의 장,단점을 가지고 있다. 장점 : 프로세스 단위로 관리하므로 페이지 테이블이 작고 단순하다. 단점 : 물리 메모리의 조각화로 인하여 조각모음을 해야 하는 문제 Practical Operating Systems

37 03 세그먼테이션(Segmentation)
Memory Access(메모리 접근) 파일속성(file attribute) : 해당 파일이 가지는 특성을 나타내는 것으로 대표적으로 일반 파일과 읽기전용파일이 있다. 메모리 속성은 메모리를 사용할 수 있는 권한을 나타내며, 대표적으로 read, write, execute, append가 있다. 이와 같은 접근 권한을 조합하며 다음과 같다. Read Write Execute 비고 Mode 0 x 접근불가 Mode 1 o 실행만 가능 Mode 2 실제사용 안 함 Mode 3 Mode 4 읽기전용 Mode 5 읽고 실행가능 Mode 6 읽고 쓰기가능 Mode 7 제한없음 Practical Operating Systems

38 03 세그먼테이션(Segmentation)
코드영역 데이터 영역 스택영역 read write execute O X O O O/X X PCB Process 프로세스와 메모리 접근권한 관계 Segmentation-Paging(세그먼테이션-페이징) 페이징의 경우 물리 메모리를 같은 크기로 나누어 관리하기 때문에 메모리 관리가 수월하다는 이점이 있지만 페이지 테이블의 크기가 커진다는 단점이 있고, 세그먼테이션의 경우 페이지 테이블의 크기는 매우 작게 유지할 수 있으나, 물리 메모리의 조각화로 인하여 추가적인 관리가 필요하다는 단점이 있다. 이 두 가지 방식의 장점만을 취할 수 있는 방법을 살펴보자 Practical Operating Systems

39 03 세그먼테이션(Segmentation)
Segmentation-Paging(세그먼테이션-페이징) 페이징 기법에서 메모리 접근권한까지 고려한 페이지 테이블의 모양을 도식화한 예이다. 각 페이지 마다 접근권한이 다 다르기 때문에 페이지 테이블의 각 열에는 접근 권한과 관련한 비트를 추가한다. code (R/E) data A (R/W) data B (R-O) page Table access bit Frame number 가상 주소 Practical Operating Systems

40 03 세그먼테이션(Segmentation)
Segmentation-Paging(세그먼테이션-페이징) 메모리 관리자는 주소변환이 이루어질 때마다 페이지 테이블의 접근 비트를 이용하여 접근권한을 확인한다. 페이징 기법에서 페이지 테이블의 크기가 큰데도 불구하고 접근 비트를 사용하게 되면 페이지 테이블에 같은 내용이 중복적으로 나타남에 따라 페이지 테이블의 크기가 불필요하게 더 커지는 문제가 발생한다 이런 문제를 완화시키기 위해서 반복되는 접근 비트를 줄여야 한다. 이를 위하여 세그먼테이션 기법을 페이징에 도입한다. 가상주소 공간에서 서로 관련이 있는 영역을 하나의 세그먼트로 묶어서 관리를 하고, 각 세그먼트는 필요한 크기만큼의 페이지 맵 테이블과 연결된다. 기존 페이징 방식에 추가적으로 세그먼트 테이블을 사용함에 따라 페이지 테이블에 있던 접근 비트들을 세그먼트 테이블 쪽으로 가져오게 되면서 중복되는 데이터가 현저하게 줄어든다. Practical Operating Systems

41 03 세그먼테이션(Segmentation)
Segmentation-Paging(세그먼테이션-페이징) 혼용 방식 가상주소 페이지테이블 Code R / E 세그먼트 테이블 Data A R / W 접근 비트 Data B R-O 프레임 번호 Practical Operating Systems

42 03 세그먼테이션(Segmentation)
Segmentation-Paging(세그먼테이션-페이징) 혼용 방식 페이징과 세그먼테이션 혼용방식은 순수한 페이징 기법과 세그먼테이션 기법의 장점을 취함으로써 메모리 관리를 효율적으로 할 수 있다. (접근비트 데이터 양을 줄일 수 있다) 현재의 가상 메모리 시스템은 세그먼테이션-페이징 혼용기법을 기반으로 한다. 이는 응용 프로그램의 입장에서는 세그먼테이션 기법처럼 보이며, 물리 메모리 입장에서 보면 페이징 기법처럼 보인다. 혼합기법에서 가상주소 V=(S, P, D)로 표시되며 주소 변환에 있어서 가상주소는 먼저 세그먼테이션 테이블에서 각종 접근 허가에 관련된 비트들을 점검한 후 페이지 테이블을 참조하고 페이지 테이블에서 유효비트를 확인하여 메모리에 있을 경우에는 프레임 번호를 얻어 메모리에 접근, 페이지 에러 시 스왑에서 해당 페이지를 가져온다. Practical Operating Systems

43 03 세그먼테이션(Segmentation)
가상 메모리 시스템 상세도 V = (S, P, D) 가상주소 실 메모리 페이지테이블 세그먼트 테이블 접근 비트 페이지 부재 Swap area 세그먼트 영역 페이징 영역 Practical Operating Systems

44 예제 풀어보기 프레임 32개로 된 실제 기억공간으로 사상하는 1024개의 워드로 된 페이지 8개의 논리 주소공간을 생각
논리주소에 몇 개의 비트가 있는가? 8 * 1024 = 23 * 210 = ∴ 13비트 실제주소에 몇 개의 비트가 있는가? 32 * 1024 = 25 * 210 = ∴ 15비트 물리메모리: 232 바이트, 페이지크기: 210 bytes , 논리적 주소공간 : 216페이지 논리적 주소에서는 몇 개의 비트가 있는가? 논리적 메모리 주소영역의 바이트 수는 216 페이지이면서 페이지 크기는 210 이므로 전체 논리적 메모리 주소영역은 226바이트로 26 비트의 논리적 주소가 필요하다 프레임에 몇 개의 바이트가 있는가? 하나의 프레임은 하나의 페이지210 바이트와 동일한 크기이다 Practical Operating Systems

45 예제 풀어보기 물리주소에서 프레임을 나타내는 bit는 몇 개인가? 메인 메모리 속의 프레임 수는
(232bytes of main memory)/(210 bytes/frame) = 222 프레임 즉 프레임을 표시하려면 22비트가 필요하다. 페이지테이블에 있는 항목들은 몇 개인가? 논리주소에는 각각의 페이지에 해당하는 하나의 항목이 있다 그러므로 216 항목들이 있다. 각각의 페이지테이블 항목에는 몇 개의 비트가 있는가?( 각각의 페이지테이블 항목은 유효/무효(Valid/Invalid)비트를 포함하고 있다는 것을 가정하라) 유효 /무효 비트를 추가하면 전체 23bits의 경우 22비트가 메인 메모리의 프레임 위치를 명확히 하기 위해서 필요하다. Practical Operating Systems


Download ppt "Chapter 08 가상 메모리(Virtual Memory)"

Similar presentations


Ads by Google