일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 오브젝트
- 인프런
- 앨런
- Algorithm
- IOS
- Swift
- 동기화
- 알고리즘
- 상호배제
- Codable
- 프로세스 스케줄링
- SwiftUI
- UserDefaults
- forEach
- deadlock
- struct
- 데드락
- 비동기
- async
- decode
- scrollview
- 가상 메모리
- 운영체제
- Apple Developer Academy
- @state
- COLOR
- 동시성
- core data
- Linked List
- 100 days of SwiftUI
Archives
- Today
- Total
기어가더라도 제대로
[운영체제-김덕수 교수님] 가상 메모리 관리(2/6) - 소프트웨어 컴포넌트 본문
앞 강좌에서 하드웨어적으로 페이지 관리 기법을 살펴봤으면,
이번장에선 소프트웨어적으로 가상 메모리에서 페이지 관리 기법을 살펴보자
또한, page 를 어떻게 가져올지 부터, 오래된 page는 어떻게 청소할 지까지 배워보자
목차.
1. Fetch Strategies
2. Placement Strategies
3. Replacement Strategies
4. Cleaning Strategies
5. Load Control Strategies
개요
- 각 프로세스에게 메모리를 어떻게 줄것인가?
- Fixed allocation(고정할당)
- 프로세스의 실행 동안 고정된 크기의 메모리 할당
- Variable allocation(가변할당)
- 프로세스의 실행동안 할당하는 메모리의 크기가 유동적
- Fixed allocation(고정할당)
- 고려사항
- 프로세스 실행에 필요한 메모리의 양을 예측해야함
- 너무 큰 메모리 할당
- 메모리가 낭비됨
- 너무 작은 메모리 할당
- 페이지 폴트율 상승
- 시스템 성능 저하
Fetch Strategies
- 특정 page를 메모리에 언제 적재할 것인가?
- Demand fetch (demand paging)
- 프로세스가 참조하는 페이지들만 적재
- page falut overhead
- 만화방에가서 지금 당장 읽을 책 1권만 들고 오는 전략
- 3~4권을 읽어야 성이 찰것이면 다음의 볼것을 대비하는 전략을 찾아야함
- Anticipatory fetch(pre-paging)
- 참조될 가능성이 높은 page 예측
- 가까운 미래에 참조될 가능성이 높은 page를 미리 적재
- 예측 성공시, page fault overhead 가 없음
- prediction overhead(kernel의 개입), hit ratio에 민감함
- 실제 대부분의 시스템은 demand fetch 기법을 사용
- 일반적으로 준수한 성능을 보여줌
- Anticipatory fetch
- prediction overhead
- 잘못된 예측시 자원낭비가 큼
- prediction overhead
- Demand fetch (demand paging)
Placement strategies
- page/segment를 어디에 적재할 것인가?
- Paging system에는 불필요
- segmentation system에서의 배치 기법
- first-fit
- best-fit
- worst-fit
- next-fit
Replacement strategis
- 새로운 page를 어떤 page와 교체할 것인가?
- 빈 page frame이 없는 경우
- Fixed allocation 의 경우
- variable allocation의 경우
- 당연한 말이지만, 각각의 경우에 따라 전략이 다름
- 개인적으로는 variable allocation 의 경우가 제일 이해하기 어려움
- 개인적으로는 variable allocation 의 경우가 제일 이해하기 어려움
Cleaning strategies
- 변경 된 page를 언제 write-back 할 것인가?
- 변경된 내용을 swap device 에 반영
- Demand cleaning
- 해당 page 에 메모리에서 내려올 때 write-back
- Anticipatory cleaning
- 더이상 변경될 가능성이 없다고 판단할 때, 미리 write-back
- page 교체시 발생하는 write-back 시간 절약
- write-back 이후, page 내용이 수정되면, overhead!
- 실제 대부분의 시스템은 Demand cleaning 기법 사용
- 일반적으로 준수한 성능을 보여줌
- Anticipatory cleaning
- Prediction overhead 잘본된 예측시 자원낭비가 큼
Load Control Strategies
- 시스템의 multi-programming degree 조절
- Allocation strategies 와 연계됨
- 적정 수준의 multi-programming degree 를 유지해야함
- Plateau(고원) 영역으로 유지
- 저부하 상태(Under-loaded)
- 시스템 자원 낭비, 성능 저하
- 고부하 상태(over-loaded)
- 자원에 대한 경쟁 심화, 성능 저하
- Thrashing(스레싱) 현상 발생
- 과도한 page fault 가 발생하는 현상
Software components
- 가상 메모리 성능 향상을 위한 관리 기법들도 배울것이다~
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수 교수님] 가상 메모리 관리(4/6) - 교체 전략 - 고정 할당(2/2) (0) | 2022.08.17 |
---|---|
[운영체제-김덕수 교수님] 가상 메모리 관리(4/6) - 고정할당 시 교체 전략 (0) | 2022.08.15 |
[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 (0) | 2022.08.12 |
[운영체제-김덕수 교수님] 가상메모리(5/5) - 하이브리드 시스템 (0) | 2022.08.12 |
[운영체제-김덕수 교수님] 가상 메모리(4/5) - 세그멘테이션 시스템 (0) | 2022.08.12 |
Comments