목차
- Virtual Memory Management 개요
- Cost Model
- page fault frequency
- page fault rate
- page reference string
- Hardware Components
- Address translation device
- Bit Vector(reference bits, update bits)
Virtual Memory Management 개요
가상 메모리 (기억장치)
- Non continuous allocation - 사용자 프로그램을 block으로 분할하여 적재/실행
- Paging/Segmentation system
가상 메모리 관리
- 관리의 목적 => 가상 메모리 시스템 성능 최적화
- Cost model
- 다양한 최적화 기법
Cost Model for Virtual Mem. Sys.
대표적인 cost model - 성능을 측정하기 위한 객관적 지표
- page fault frequency (발생 빈도)
- Page fault: swap device에서 메모리에 올라간 page를 참조할 때 메모리에 해당 page가 없는 경우
- page fault 발생시 해당 프로세스는 CPU를 반납하고 block(또는 asleep)상태로 간다
- Page fault rate (발생률)
Page falult rate를 최소화 할 수 있도록 설계해야함
- page fault시 발생하는 context switch 최소화, kernel 개입시 Overhead가 발생하므로 낮춰야 하는 것이 중요함
- 시스템 성능 향상
Page reference string(d) (페이지 참조 문자열?)
- 프로세스 수행 중 참조한 페이지 번호 순서
- ω = r1r2…rk…rT (ri: 페이지 번호, N: 프로세스의 페이지 수)
페이지를 기록하는 이유 => 가상메모리를 효율적으로 사용하기 위해 (어떤 페이지를 읽어왔는지 알아야 한다)
Page fault rate = F(w)
F(w) = page fault가 발생한 수 / 프로세스가 실행하면서 참조한 전체 페이지 수
Hardware Components
가상 메모리를 사용하기 위한 컴포넌트
Address translation device (주소 사상 장치)
주소 사상을 효율적으로 수행하기 위해 사용
- Eg., TLB (associated memories), Dedicated page table register, Cache memories
Bit Vectors
Page 상황에 대한 정보를 기록하는 비트 (메모리 상의 비트들을 효율적으로 관리하기 위한 정보)
- Reference bits (used bit) - page frame이 참조 되었는지 안되었는지 확인하는 bit
- Update bits (modified bits, write bits, dirty bits) - page frame에 있는 data가 갱신되었는가 확인
page frame 비트 하나마다 reference bits, update bits가 있다.
reference bits들을 모으면 reference bits vector, update bits들을 모으면 update bits vector가 된다.
메모리를 효율적으로 관리하기 위해 이 vector들을 PMT에 놓고 메인메모리의 page frame에 대한 정보를 저장한다.
Reference bit vector
메모리에 적재된 각각의 page가 최근에 참조 되었는지를 표시 (메모리관리를 효율적으로 사용하기 위해)
- 프로세스에 의해 참조되면 해당 page의 Ref. bit를 1로 설정
- 주기적으로 모든 reference bit를 0으로 초기화
Reference bit를 확인함으로서 최근에 참조된 page들을 확인가능 =>Locality
Update bit vector
- Page가 메모리에 적재된 후, 프로세스에 의해 수정 되었는지를 표시
- 주기적으로 초기화 하지 않음 (메모리에서 나올 때 초기화)
- Update bit = 1 경우(메모리상에서 데이터가 변경 되었을 경우)
- page frame의 page의 정보를 프로세서들이 write(데이터 변경) 한 경우 데이터가 수정되었음을 표시
- swap device에 있는 데이터와 Main memory의 데이터와 값은 다를 것이다.
- Main memory의 데이터를 쓰지 않으면 swap device에 해당 데이터를 반영해야함
- 이를 write-back이라 함 (데이터의 무결성 유지)
본 포스트는 KOREATECH의 HPC LAB. Duksu Kim 교수님 OS강의를 기반으로 정리한 내용입니다.
상업적 의도가 아닌 공부한 것을 정리해 놓은 목적으로 게시한 포스트입니다.
아래의 출처에서 자세한 내용을 수강하실 수 있습니다.
https://www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
'CS > OS' 카테고리의 다른 글
[OS] 10. 가상 메모리 관리 - Replacement Strategies for Fixed Allocation (0) | 2022.04.27 |
---|---|
[OS]10. 가상 메모리 관리 - SW components (0) | 2022.04.25 |
[OS] 9. Virtual Memory - Segmentation System (0) | 2022.04.19 |
[OS] 9. Virtual Memory - Paging system (0) | 2022.04.17 |
[OS] 9. Virtual Memory - Non-continuous allocation (0) | 2022.04.15 |