동캄의 코딩도장
운영체제 [가상메모리 - 페이징] 본문
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)
'CS > 운영체제' 카테고리의 다른 글
운영체제 [가상 메모리- hybrid system] (0) | 2022.01.20 |
---|---|
운영체제 [가상메모리 -세그멘테이션] (0) | 2022.01.20 |
운영체제 [가상 메모리] (0) | 2022.01.19 |
운영체제 [메모리 할당] (0) | 2022.01.19 |
운영체제 [메모리 background] (0) | 2022.01.19 |