티스토리 뷰

Motivation and Rationable

motivation (메모리관리의 발전)

프로세스의 조각(페이징과 세그멘테이션)의 특징은 메모리 관리의 획기적인 발전의 열쇠이다.

이 조각들은 물리메모리에서 반드시 연속적일 필요가 없다. 즉, 비연속적인 물리주소에 저장이 가능하다

지금까지는 모든 프로세스가 메모리에 완전히 적재된 상태에서 실행된다고 가정.

>> 실행중인 프로그램의 모든 페이지나 세그먼트가 메모리에 있을 필요는 없다. 운영체제가 부분적으로 적재된 프로그램을 실행할 수 있게 해야한다. 

 

rationale(이론적근간)

"Knuth’s estimate: 90% of the time in 10% of the code"

:프로그램의 실행시간의 90%가 전체코드 중 10%에서 소비된다. >> 그만큼 자주 쓰이는 코드는 한정되어 있다.

 

Virtual Memory Terminology

분산적재 + 부분적재

가상메모리는 물리메모리에 없는 데이터를 마치 메모리에 있는 것처럼 다룰 수 있도록 해주는 기술입니다.

1. 부분 적재(Partially Resident) : 프로세스의 일부페이지만 실제 물리 메모리에 존재함.

2. 논리 주소 공간 (Logical Address Space) : 주기억장치 + 보조기억장치를 결합한 하나의 연속된 논리주소공간 형성

💡 여러 프로세스를 동시에 메모리에 유지 가능 일부 페이지만 필요하므로 메모리 공간 절약
💡 프로세스 크기가 물리 메모리보다 커도 실행 가능 필요한 페이지만 불러오면 됨
💡 “거의 무한한 메모리”를 사용하는 착각 제공 실제보다 훨씬 큰 프로그램도 실행 가능

OS Policies for Virtual Memory

- Fetch Policy : 반입정책, 언제 어떤 페이지를 디스크에서 물리메모리에 가져올지 결정하는 방식

Demend paging: 필요할 때만 적재하자.default

즉, 프로세스가 실제로 해당페이지에 접근하려 할 때 비로소 메모리에 적재됨. 시작할 때 페이지폴트 ( 프로세스가 접근하려는 페이지가 메인 메모리에 없는 경우 발생하는 예외 상황)이 많이 발생.

 

Pre-paging : 예측을 기반으로 미리 페이지를 불러옴. 페이지폴트 줄일수 있음.

 

- Placement Policy : 배치정책, 어디에 페이지를 배치할지 결정하는 방식 

1. 순수 세그멘테이션 시스템 : 세그멘테이션은 크기가 다양하므로 배치위치를 잘 선택해야 단편화를 줄일 수 있음.

first fit, next fit, best fit

 

2. 페이징 또는 페이징+세그멘테이션 : 모든 페이지는 크기가 동일하므로 어디에 넣든 성능에 거의 영향 없음.

 

3. 최근 들어 placement가 중요해진 영역 : numa시스템 (메모리를 가까운 데 배치하는 것이 성능에 영향)

 

- ★ Replacement Policy : 교체정책, 빈공간이 없을 때 어떤 페이지를 내보내고 새로운 페이지를 넣을지 결정하는 방식 ,성능에 큰 영향

정책이 필요한 상황 : 빈 프레임이 없을 때, 사용가능한 메모리가 운영체제가 정한 기준 이하로 떨어졌을 때

 

교체정책의 목표 : 가까운 미래에 다시 참조되지 않을 페이지를 제거하는 것

>> 그래서 대부분의 알고리즘은 현재 메모리에 있는 페이지 중 가장 오래전에 사용 된 것을 제거하려함 (LRU)

 

제한 : frame locking (일부 프레임은 잠금상태에 있는데, 잠긴 프레임에 있는 페이지는 교체대상이 아님.)

 

Hotness : 페이지가 얼마나 자주 또는 최근에 접근되었는지 나타내는 정도

hot page : 메모리에 계속 유지하는 것이 바람직,  cold page : 오래되었거나 접근이 드문 페이지

 

note on counting page faults

 

- Resident Set Policy

- Cleaning Policy 클리닝정책 : 수정된 페이지를 디스크에 언제 어떻게 기록할지

 

수정되지 않은 상태라면 디스크에 쓸 필요가 없음

1. precleaning : 미리 디스크에 쓰는 방식 장점 : 교체시 빠름 / 단점 : 저장 후 다시 수정될 수 있음

2. demand cleaning : 교체가 결정될 때 디스크에 씀 장점: 구현간단, 불필요한 쓰기 줄임 / 단점 : 지연발생가능

3. page buffering : 디스크에 쓰지 않고 버퍼에 잠시 저장 장점 : 디스크 i/o를 줄일 수 있음.

 

thrashing : 프로세스가 너무 많은 페이지 폴트를 일으켜 실행보다 페이징에 더 많은 시간을 쓰는 비정상적인 상태

 

Hardware and Control Structures for VM

 

Virtual Memory Issues

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
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 31
글 보관함