기타/운영체제

[운영체제]Paging

stonesy 2022. 6. 3. 17:58
728x90

1. paging: Introduction

2. TLB

3. Advanced Page Tables

4. Beyond Physical Memory: Mechanisms

5. Beyond Physical Memory: Policies


1. paging: Introduction

Paging을 사용하는 이유

*가변 크기 할당, Segmentation

장점

-sharing, protection support(공유, 보호기능을 제공한다.)

-Address translation, using segment table(segment들이 physical memory의 어디에 올라가는지 확인하기 위해서 segment table을 사용한다.)

단점

메모리 단편화 현상이 발생해, free space가 조각나서 관리된다. 단편화된 메모리는 관리하기 힘들다

 

*고정 크기 할당, Paging

단편화가 발생하지 않는다. 즉, 외부 단편화라는 복잡한 문제가 발생하지 않는 것이다. 또한 하드웨어적인 지원이 쉽다.

 

Example of Paging

Virtual memory: page라는 고정된 크기의 unit으로 나눠져 있다.

Physical memoy: page frame이라는 고정된 크기의 단위로 나뉘어져 있다.

page table: 어떤 page가 어떤 page frame에 올라가 있는지 mapping해준다. 즉, address translation에 사용되는 것이다.

 

case1.

Virtual address: 4

4/16=0...4이므로 VPN(virtual page number)는 0이고, page table을 통해 구한 PFN(physical frame number)는 3이다.

physical address: 3*16B+4=52

 

case2.

Virtual address: 44

44/16=2...12이므로 VPN(virtual page number)는 2이고, page table을 통해 구한 PFN(physical frame number)는 5이다.

physical address: 5*16B+12=92

 

case3.

Virtual address: 21

21/16=1...5이므로 VPN(virtual page number)는 1이고, page table을 통해 구한 PFN(physical frame number)는 7이다.

physical address: 7*16B+5=117

 

case4.

Virtual address: 21

bit: 01 0101->VPN은 1이고 PFN은 7이다.

7*16ㅠ+0101=117이다.

 

Virtual address의 구성요소

page number: page table을 검색할 때 사용

offset: 한 page/frame 내에서 구체적인 주소를 찾아갈 때 사용된다.

 

page table을 어떻게 관리할 것인가?

page table은 process마다 하나씩 가지고 있고, PCB 내부에 page table도 들어가 있다.→즉, kernel space에 있다. memory에 있다.

 

page table을 CPU내부에서 관리하면 안되는가?

page table의 크기가 너무 크다.

page table이 메모리에 있기 때문에 여러가지 문제를 야기한다.→시간적인 문제, 성능적인 문제, size 문제(memory에 넣긴 하겠지만 여전히 크기가 크다.)→multi level page table, inverted page table의 해결방법

 

Page Table이 메모리에 있기 때문에 발생하는 2가지 Issue

1.성능

메모리에 접근하기 위해서 한 번 더 메모리에 접근해야 하는데, 성능저하가 발생한다. 모든 명령어를 실행하기 위해서는 주소변환을 필요로하고, page table은 메모리에 있다.

→성능이 느려지는데, 이를 해결하기 위해서 TLB를 도입

2.page table의 크기가 여전히 크다.

→해결 방법: multi-level page table, inverted page table

 

P(Present bit): Page가 올라와 있는지 올라와 있지 않는지 표시하는 비트

R/W(Read/Write bit)

U/S(User/Supervisor bit): User mode/Supervisor mode

A(Access bit): 최근에 이 페이지가 사용되었는가?

D(Dirty bit): 이 페이지가 수정되었는지?

Others

V bit(valid bit)

address space가 합법적인지 나타내며, 합법적이지 않다면 segmentation fault가 발생할 수 있다.

fault에는 Page fault와 Segmentation fault가 있다. Segmentation fault는 합법적인 접근이 아니다.

P bitPage fault를 야기시킨다. 합법적인 접근임. 단지 메모리에 올라와있지 않은 것이다.

 

→Paging은 여러 장점이 있지만, 메모리 접근 횟수가 많아진다.

 

2. TLB

3. Advanced Page Tables

4. Beyond Physical Memory: Mechanisms

5. Beyond Physical Memory: Policies

728x90

'기타 > 운영체제' 카테고리의 다른 글

Lab3 : [Analyze Ext2 file system internal]  (0) 2022.06.06
[운영체제]Advanced File System  (0) 2022.06.04
[운영체제]Memory Virtualization  (0) 2022.05.23
[운영체제]File System  (0) 2022.05.23
[운영체제]Hard Disk Drives  (0) 2022.05.23