이 포스팅은 한국기술교육대학 김덕수 교수님의 강의를 참고하여 작성했습니다.
Virtual Storage Methods
- Paging system
- Segmentation system
- Hybrid paging/segmentation system
#1 Paging System
프로그램을 같은 크기의 블록으로 분할 ( Pages )
블록을 페이지라고 부른다.
Terminologies
Page
- 프로그램의 분할된 block
Page frame 틀
- 메모리의 분할 영역
- Page와 같은 크기로 분할
특징
논리적 분할이 아님 (크기에 따른 분할)
- Page 공유 (sharing) 및 보호 (protection) 과정이 복잡함
segmentation 대비
Simple and Efficient
- Segmentation 대비
No external fragmentation ( 공간이 충분한데 사용하지 못하는 현상 )
- internal fragmentataion 발생 가능 ( 내부 단편화는 발생 가능하다 )
Windows page size = 4KB (시스템에 따라 다를 수 있다 , 또한 Linux는 이를 수정할 수 있다.)
#2 Address Mapping
이전 포스팅의 Block Mapping과 유사하다.
Virtual address : v = (p,d)
- p : page number
- d : displacement (offset)
Address mapping
- PMT(Page Map Table) 사용
Address mapping mechanism
- Direct mapping (직접 사상)
- Associative mapping (연관 사상)
TLB (Translation Look-aside Buffer)
- Hybrid direct/associative mapping
1. Page Map Table (PMT)
페이지는 전부 swap device에 저장되어있다.
secondary storage address : swap device 주소
2. Direct mapping
1. 해당 프로세스의 PMT가 저장되어 있는 주소 b에 접근
2. 해당 PMT에서 page p에 대한 entry 찾음
3. 찾아진 entry의 존재 비트 검사
(1) Residence bit = 0 dls ruddn (page fault)
swap device에서 해당 page를 메모리로 적재
PMT를 갱신한 후 3-(2) 단계 수행
(2) Residence bit = 1인 경우,
해당 entry에서 page frame 번호 p'를 확인
4. p'와 가상 주소의 변위 d를 사용하여 실제 주소 r 형성
r = p' * pageSize + d
5. 실제 주소 r로 주기억장치에 접근
3. 문제점과 해결방안
문제점 :
메모리 접근 횟수가 2배 ( 성능 저하 )
PMT를 위한 메모리 공간 필요
해결방안 :
Associative mapping (TLB)
#3 Associative Mapping
TLB(Translation Look-aside Buffer)에 PMT 적재
Associative high-speed memory
PMT를 병렬 탐색
Low overhead, high speed
하지만 비싼 하드웨어이다. 그렇기에 작다.
#4 Hybrid Direct/Associative Mapping
작은 크기의 TLB 사용
PMT : 메모리(커널 공간)에 저장
TLB : PMT중 일부 entry들을 적재 " 어떤 entry? "
최근에 사용된 page들에 대한 entry 저장
Locality (지역성) 활용
- 프로그램의 수행과정에서 한번 접근한 영역을 다시 접근 또는 인접 영역을 다시 접근할 가능성이 높음
긴 글 읽어주셔서 감사드립니다.
22.12.01
'TIL (Today I Learned) > 컴퓨터 시스템(CS)' 카테고리의 다른 글
[CS] 가상 메모리 Segmentation system #4 (1) | 2022.12.02 |
---|---|
[CS] 가상 메모리 Memory Management #3 (0) | 2022.12.01 |
[CS] 가상 메모리 VItual Storage (Memory) #1 (0) | 2022.12.01 |
[CS] CS:APP #1 (1) | 2022.11.30 |
[CS] C언어 학습 사전 지식, 컴퓨터 시스템(CS)의 이해 (1) | 2022.11.30 |
댓글