동캄의 코딩도장

운영체제 [가상메모리 - 페이징] 본문

CS/운영체제

운영체제 [가상메모리 - 페이징]

동 캄 2022. 1. 19. 23:42

Paging system

- 프로그램을 같은 크기의 블록으로 분할
- page = 프로그램의 분할된 block
- page frame = 메모리의 분할 영역, page와 같은 크기로 분할

특징
- 논리적 분할이 아님 (크기에 따른 분할) --> page 공유 및 보호 과정이 복잡
- simple and Efficient
- No external fragmentation


Address Mapping

- virtual address v=(p,d) {p= page number, d = offset}
- PMT 사용


Mapping 기법

 

Direct mapping

-Block mapping 방법과 유사

문제점
- 메모리 접근 횟수가 2배 --> 성능 저하
- PMT를 위한 메모리 공간 필요

해결방안
- Associative mapping(TLB)
- PMT를 위한 전용 기억장치(공간) 사용


Associative Mapping

- TLB(Translation Look-aside Buffer)에 PMT 적재
- Low overhead, high speed
- Expensive hardware


Hybrid Direct/Associative Mapping

- 두 기법을 혼합하여 사용

- 작은 크기의 TLB 사용

PMT: 메모리(커널 공간)에 저장
TLB: PMT 중 일부 entry들을 적재 (최근에 사용된 page들에 대해 적재)

 

 

 

Memory Management

- Page와 같은 크기로 미리 분할하여 관리/사용

- page frame
- FPM 기법과 유사


Frame table

- Page frame당 하나의 entry
- 구성 (Allocated/available field, PID field, Link field, AV)

AV- 사용가능한 frame을 찾음
link- 빈 entry의 주소를 지칭 (linked list)


Page Sharing

- 여러 프로세스가 특정 page를 공유 가능

공유 가능 page
- Procedure pages (pure code) --> 프로세스들이 공유하는 page들은 PMT에 같은 entry에 저장함
- Data page 


Page protection

- 여러 프로세스가 page를 공유 할 때, protection bit을 사용 (read, write, execute)