본문 바로가기
운영체제

운영체제 가상 메모리

by MiaCoder 2024. 6. 15.

1. 가상 메모리

사사용자가 메인 메모리 용량을 초과란 프로세스에 주소를 지정해 메모리를 제한없이 사용할 수 있도록 하는 것

활동 영역만 메인 메모리에 유지하면서  필요할 때만 디스크에서 가져옴.

메인 메모리의 용향문제, 중첩문제를 해결함

 

장점 : 중첩을 고려하지 않아 프로그래밍이 간단

 프로세스 처리융 이용률 향상, 메모리 가용성 증가

 

단점 : 메모리 디스크 사이 이동량 증가, 스와핑 공간 필요, 적적한 페이징 알고리즘 필요

 

2. 요구페이징

프로그램을 실행하기뤼해 프로그램의 일부만 메인 메모리에 적재하되

순수 스와핑은 프로세스가 시작하면서 디스크에서 메인 메모리로 로드되지만,

요구페이징은 요구하는 페이지만 메모리에 올린다는 차이점.

 

3. 페이지 부재

원하는 페이지가 메인 메모리에 로드되지 않은 상태

 

4. 쓰기 복사

새로운 쓰기 변경사항이 있을 때 변경점이 있는 페이지만 할당하는 방법

효율성을 높인 ㄴ 최적화 전략

 

5. 유효 엑세스 시간

수식으로 성능층 측정한 것

p는 페이지 부제확률

(1-p)* 메모리에서 로드시간 + p * 부재해결시간

10%보다 작은것이 목표

 

6. 페이지 대치

페이지 부재 발생 시 메인 메모리에서 안쓰는걸 없애고, 필요한걸 가져옴

 

7. 페이지 대치 알고리즘

프레임이 많으면 페이지 부재가 감소함

 

8. 선입 선출 알고리즘 FIFO

먼저 들어온 값을 먼저 내보냄

큐의 헤더에 있는 페이지를 먼저 대치

큐의 크긱는 사용가능한 프레임 수임

간단하지만 성능은 별로

프레임 수가 증가해도 부재수가 증가하는 이상한 현상이 있음

 

9. 최적 페이지 대치 알고리즘 OPT

앞으로 가장 오랙동안 사용하지 않을 페이지를 대치함

 

10. 최근 최소사용 대치 알고리즘 LRU

최근에 가장 오랫동안 사용하지 않은 페이지를 대치

과거 데이터를 이요한 통계적 개념

방법1

논리클록을 추가한 후 카운터 필드를 뭍여 프레임 순서를 결정함

 

방법2

스택을 이용해 새로운 프로세스를 스택의 top에 계속두는 방식을 사용할 수도 있음

top에 있는 값은 최근 값이고 자연스럽게 bottom에 있는 값은 예전에 사용한 값임

이렇게 순환되며 밀려남

 

방법3

참조비트 알고리즘

처음에 모든 비트를 0으로 초기화 한 후 프로세스 수핼 시 참조된 페이지와 관련 비트를 1로 변환

 

방법4

Clock 알고리즘

가장 오랫동안 메모리에 있던 펭지 중 자주사용하는 페이지의 대치 방지

 최근 최소 사용 알고리즘 성능 비슷, 오버헤드 적음

각 프레임의 사용 여부를 나타내는 참조비트를 추가, 처음 적재 시 1로 설정, 참조시 다시 1로 설정

 

11. NUR알고리즘

최근최소사용 알고리즘과 비슷한 개념

하지만 참조비트를 2개를 사용함

최근 사용했는가 + 최근 수정했는가 모두 고려

 디스크에 있는 값을 수정한다면 디스크에 두번 엑세스하는 부담이 생김

따라서 부담이 적은 참조나 수정이 없는 페이지를 우선제거

 

12. LFU 최소사용 빈도 알고리즘

참조수가 가장 적은 페이지를 대치

초기 한부분을 집중적으로 사용하는 경우 문제 발생

지수적 감소를 사용해 해결

 

13.MFU 최대 사용 빈도 알고리즘

방금 생긴 페이지는 앞으로 쓰일 일이 많다고 가정

가장 많이 사용한 페이지를 대치

 

14. 페이지 버퍼링

LRU, Clock 알고리즘은 FIFO보다 성능은 좋은나 오버헤드가 더 크다

따라서 FIFO처럼 선능이 떨어지는 것을 막기위해 바로 대체하지 않거 

잠시 메모리에 보관하는 것이 페이지 버퍼링이다.

 

15. 프레임 할당 알고리즘을 필요성

프레임을 적절히 할당하여 부재횟수를 줄여야함

페이지 부재 알고리즘이 적절한 성능을 낼 수 있는 프레임 수를 마련하는 것이 목쵸

 

16. 균일할당

프레임 M 개를 N개의 프로세스에 똑같이 할당해 주는 것

 

17. 비례할당

사용 가능한 메모리를 각 프로세스 크기에 비례햐여 할당

각 프로세스마다 요구하는 메모리의 용량이 다르기 때문에 이를 낭비를 보완하는 방법

프로그램의 우선순위, 프로그램 크기 등을 고려해 프레임 수를 배정함

오버헤드 발생

 

18. 스레싱

페이지 교환이 계속 일어나는 현상

프레임이 충분하지 않을 경우 페이지 부재가 계속 발생

자원 확보가 필요함

 

새로운 프로세스가 증가하면 흐레임 수가 부족해줘 이용률이 낮아지고 실행이 늦어짐

 

19. 스레싱 방지

작업집함모델 : 프로세스가 실제로 프레임을 어람나 쓰는지 검사해 지역모델 정의

지역모델 : 프로세스를 실행할 때 한 지역에서 다른 지역으로 이동하는 과정

 

20. 지역성

실행중이 프로세스에서 동일한 값이나 저장 위치를 자주 사용하는 현상

잠시동안 적응양의 데이터만 집중적으로 참조하고 또 다른 작은 데이터 덩어리로 이동해 참조하는 경향

 

시간 지역성 특정 자원들의 상대적으로 짧은 시간에 제사용

공간 지역성프로세스가 메모리의 특정 위를 참조하면 그 근처를 재참조

 

21. 작업 집합 모델 WSM

작업집합 : 최근 페이지 참조에 있는 페이지 집합

페이지 부재를 최소 비율로 유지하도록 제안된 모델

프로세스가 많이 참조하는 페이지 집합을 메모리 공간에 게속 상주시킴

작업집합의 크기를 알아야함

WSM은 WSN내의 페이지를 메인메모리에 유지시켜 빠르게 실행

 

작업집합모델 사용법

운영체제는 프로세스에 충분한 프레임 할당

프레임이 남을 시 패당 프레임을 다을 프로세스에 할당해 다중프로그래밍 정도 상승

작업집합크기의 합 > 유효프레임 수 이면 일시중지시킬 프로세스를 선정해 페이지 회수

스레싱 방지

 

상대적으로 작업집합 크기가 커질수록 페이지 부재가 줄어드는 경향이 있음

 

22. 페이지 부재 비율 PFF

특정시간 동안 페이지 부재가 발생하는 비율

작업집합모델은 프로세스가 메모리에 접근할 때 조절되지만 페이지 부재비율은 페이지 부재 발생 시 조절되는 특성

PFF가 높으면 프레임이 필요, 너무 낮으면 프레임이 남는다는 뜻

상한값, 하한값을 적적히 유지하는 것이 포인트

 

페이지 부재 비율이 높을 때 남는 프레임이 있으면 프레임을 할당하고, 없으면 희생 프로세스를 선택 후 일시중지하고 프레임을 확보해 제공

 

23. 대치범위

 

전역 대치 페이지 대치 범위를 모든 프로세스에 적용

구현간단 부담 없음

하나의 프로세스에 더 많은 메모리가 필요할 수 있음

 

지역 대치 

프로세스별로 대치를 제한

할당된 프레임 중에서만 교체할 희생양를 찾을 수 있음

성능 분석에 용의

프로세스당 할당된 프레임 수는 고정이기 때문에 프로세스 상대적 중요성에 따라 메모리 할당 조절 가능

 

24.  프리 페이징

 초기 발생하는 많은 페이지 부재를 방지하기 위해 예상되는 모든 페이지를 한번에 메모리로 가져오는 방법

예측 실패시 성능 떨어짐

 

25. 페이지 크기

각 페이지 크기를 어느 정도로 해야 적당한가?

 

작은 페이지

페이지 테이블 크기 증가

내부 단편화 감소

디스크 입출력 증가

지역성 증가

페이지 부재 비율 증가

 

큰 페이지

페이지 테이블 크기 감소

내부 단편화 증가

디스크 입출력 시간 감소

지역성 악화, 페이지 부재 비율 감소

 

26. 페이지 테이블의 구조

프로세스에는 페이지 테이블이 하나 있으며 페이지 테이블을 이용하여 가상주소를 프레임 번호와 오프셋으로 구성된 물리적 주소로 변환한다

하지만 페이지 페이지 테이블은 크기가 너무 크므로 메모리에 올라온 값만을 적은 역페이지 테이블을 사용한다

 

역페이지 테이블은 크기가 작지만 탐색시간이 긴 단점이 있다.

 

27. 해시 역페이지 테이블

별도의 헤시 테이블과 체인을 두어 값을 찾아가도록 하는 것

탐색 시간을 줄이는 것이 목표

 

28. 변환우선 참조 버처를 이용한페이징

변환우선 참조 버퍼 가상메모리 참조시간을 줄이기 위해 페이지 테이블에 캐시를 적용하는 것

캐시에 값이 있으면 해당 내용을 사용해 서칭 시간을 줄임

없으면 탐색

 

 

'운영체제' 카테고리의 다른 글

운영체제 파일시스템.  (0) 2024.06.15
운영체제 메모리관리  (1) 2024.06.14
운영체제 스케줄링  (0) 2024.06.14
운영체제 6. 프로세스 스케줄링  (1) 2024.04.18
운영체제 5. 교착과 기아  (0) 2024.04.18