Chapter10. 가상 메모리 관리(1)
카테고리: OS
태그: CS
유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.
🔧 Virtual Memory
- Virtual memory
- Non-continuous allocation
- 사용자 프로그램을 block으로 분할하여 적재/실행
- Paging/Segmentation system
- Virtual memory management
- 가상 메모리 시스템 성능 최적화
- Cost model 정의 → 다양한 최적화 기법
🔧 Cost model for virtual memory system
- Page fault rate (발생률)
- Page fault frequency (발생 빈도)
- Page fault를 최소화 할 수 있도록 전략을 설계
- Context swiching 및 커널 개입 최소화
🔧 HW Components
Address translation device (주소 사상 장치)
- TLB, page table register, cache memory, …
Bit vetroes
Bit veotrs | Reference bit 초기화 |
---|---|
- Reference bits (참조 비트)
- 메모리에 적재된 각각의 page가 최근에 참조되었는지 표시
- 프로세스에 의해 참조되면 reference bit 1로 설정
- 주기적으로 모든 reference bit 0으로 초기화
- 어떤 방식으로 초기화하느냐가 전략
- Update bits (갱신 비트)
- dirty bits 라고도 함
- page가 메모리에 적재된 후, 프로세스에 의해 수정되었는지 표시
- 수정되었다면 memory 내의 데이터 != swap device 내의 데이터
- 해당 page에 대한 write-back 필요
🔧 SW Components
가상 메모리 성능 향상을 위한 관리 기법들
- Allocation strategies (할당 기법)
- Fetch strategies
- Placement strategies (배치 기법)
- Replacement strategies (교체 기법)
- Cleaning strategies (정리 기법)
- Load control strategies (부하 조절 기법)
Allocation strategies (할당 기법)
각 프로세스에게 얼마만큼의 메모리를 할당할 것인가?
- Fixed allocation (고정 할당)
- 프로세스의 실행 동안 고정된 크기의 메모리만 할당
- Variable allocation (가변 할당)
- 프로세스 실행 동안 유동적으로 메모리 할당
- 프로세스 실행에 필요한 메모리 양을 예측해야함
- 너무 큰 메모리 할당하면 메모리 낭비
- 너무 작은 메모리 할당하면 page fault 증가
Fetch strategies
특정 page를 언제 메모리에 적재할 것인가?
- Demand fetch (demand paging)
- 프로세스가 참조하는 페이지들만 적재
- page fault overhead
- Anticipatory fetch (pre-paging)
- 참조될 가능성이 높은 page를 예측하고 미리 적재
- 예측 성공 시 page fault overhead 없음
- 예측 실패 시 자원 낭비가 큼
- 실제 대부분의 시스템은 demand fetch 기법 사용
Placement strategies (배치 기법)
Page/Segmentation를 어디에 적재할 것인가?
- Paging system에는 불필요
- 크기가 전부 같아서 전략이 필요 없음
- Segmentation system에서의 배치 기법
- First-fit
- Best-fit
- Worst-fit
- Next-fit
Replacement strategies (교체 기법)
따로 빼서 정리
빈 page frame이 없는 경우 새로운 page를 어떤 page와 교체할 것인가?
- Fixed allocation을 위한 교체 기법
- MIN algorithm
- Random algorithm
- FIFO algorithm
- LRU(Least Recently Used) algorithm
- LFU(Least Frequently Used) algorithm
- NUR(Not Used Recently) algorithm
- Clock algorithm
- Second chance algorithm
- Variable allocation을 위한 교체 기법
- VMIN(Variable MIN) algorithm
- WS(Working Set) algorithm
- PFF(Page Fault Frequency) algorithm
Cleaning strategies (정리 기법)
변경된 page를 언제 write-back할 것인가? (swap device에 반영)
- Demand cleaning
- 해당 page에 메모리에서 내려올 때 write-back
- Anticipatory cleaning (pre-cleaning)
- 더 이상 변경될 가능성이 없다고 판단할 때 미리 write-back
- Page 교체 시 발생하는 write-back 시간 절약
- Write-back 이후, page 내용이 수정되면 overhead
- 실제 대부분의 시스템은 demand cleaning 기법 사용
Load control strategies (부하 조절 기법)
시스템의 multi-programming degree 조절
- Allocation strategies와 연계됨
- 저부하 상태 (Inder-loaded)
- 시스템 자원 낭비, 성능 저하
- 고부하 상태 (Over-loaded)
- 자원에 대한 경쟁 심화, 성능 저하
- Thrashing(스레싱) 현상 발생
- 과도한 page fault가 발생하는 현상
댓글 남기기