본문 바로가기
OS/쉽게 배우는 운영체제

가상 메모리 관리 (2)

by re-hwi 2022. 4. 3.

오랜만에 블로그를 업로드하는것 같다. 그동안 학교 과제를 하느라 파이썬을 공부했었는데 파이썬도 이제 블로그에 올릴 생각이다.

 

이번 단원에서는 프로세스에 프레임을 어떤 기준으로 할당하는지에 대해 배웠다.

 

가장 이상적인 방법은 해당 프로세스가 필요한 만큼 유동적으로 할당하는 방법이 좋은데 이것은 현실적으로 불가능 하므로 현실적으로 가능한 여러 방법을 다룬다.

 

3. 스레싱과 프레임 할당

 

3-1 스레싱 

 

1. 스레싱의 개념

: 물리메모리의 크기가 작아 CPU가 프로그램을 실행하는 것 보다 메모리 관리에 더 시간을 써서 프로그램이 멈춘 것 같은 상태

 

2. 물리메모리의 크기와 스레싱

: 스레싱이 일어나는 가장 근본적인 이유는 메모리에 올라와 있는 프로세스의 크기보다 메모리의 크기가 작아 CPU가 일을 하지 못하는 것이다. 

→ 스레싱을 해결하기 위해서는 물리 메모리의 크기를 늘리거나 *멀티프로그래밍 정도를 줄이는 것이다.

 

3. 스레싱과 프레임 할당

: 프로세스에 프레임을 얼마나 할당하느냐에 따라서 스레싱이 일어날 수도있다.

→ 매우 큰 프로세스에 프레임을 조금만 할당한다면 남아있는 물리 메모리가 있음에도 스레싱이 일어날 수 밖에 없다.

 

3-2 정적 할당

 

프로세스에 고정된 프레임을 할당하는 것. 균등할당과 비례할당으로 나뉜다. 

 

1. 균등할당 

: 프로세스의 크기와 상관없이 사용 가능한 프레임을 모든 프로세스에 동일하게 할당

단점 : 크기가 큰 프레임의 경우 필요한만큼 프레임을 할당받지 못하고 크기가 작은 프레임의 경우 메모리가 낭비된다. 

 

2. 비례할당

: 프로세스의 크기에 비례하여 프레임을 할당.

단점 : 프로세의 모든 용량을 메모리에 올려놓고 작업하지 않지만 프로세스의 기본 크기를 보고 프레임을 할당하기 때문에 메모리의 낭비가 심함

프로세스가 실행중에 많은 메모리를 필요로 하는 경우가 있는데 유동적으로 반영하지 못한다.

 

3. 동적할당

비례할당의 단점 중 유동적으로 프로세스의 메모리 크기를 반영하지 못한다는 단점이 있었다.

 

하지만 동적할당은 이러한 단점을 보완한 방법으로 작업집합 모델, 페이지 부재 빈도를 사용하는 방식 2가지가 있다.

 

1. 작업집합 모델

: 지역성을 바탕으로 '가장 최근에 접근한 프레임이 이후에도 참조될 가능성이 높다' 를 기본으로 시작한다.

- 작업집합 크기 (WS) : 작업 집합에 들어갈 최대 페이지 수

- 작업집합 윈도우 : 작업집합에 포함되는 페이지의 범위

→ 작업집합 윈도우에는 현재 시점으로부터 가까운 페이지부터 삽입된다.

 

2. 페이지 부재 빈도

: 페이지 부재 횟수를 기록하여 페이지 부재 비율을 계산하는 방식

→ 페이지 부재 빈도의 상한선과 하한선을 정하여 안정기에 맞도록 유지하는 방식

4. 프레임 관련 이슈

 

4-1 전역 교체와 지역 교체

 

페이지 교체 알고리즘 중에는 전역교체/지역교체 방식이 있다. 

전역교체 방식에는 전체 프레임을 대상을 교체 알고리즘을 적용하는 방식이고

지역교체 방식은 특정 프레임(현재 실행중인 프로세스)을 대상으로 교체 알고리즘을 적용하는 방식이다.

위 그림에서 전역교체는 1번부터 6번까지를 모두 영역으로 정하고 그 중 가장 접근을 안 한 6번 프레임을 스왑영역으로 보내지만 지역교체는 A 프로세스중에서만 결정하기 때문에 (1,0)인 1번 프레임을 보낸다.

 

지역교체

장점 : 페이지 교체가 다른 프로세스에게 영향을 끼치지 않는다.

단점 : 자주 사용하는 페이지가 스왑영역으로 옮겨져 시스템의 효율이 떨어진다.

 

전역교체 

장점 : 앞으로 사용하지 않을 페이지를 교체하면 시스템 성능 향상에 효율적이다.

단점 : 다른 프로세스의 페이지를 뺏기 때문에 다른 프로세스에 스레싱이 일어날 수 있다.

반응형

'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글

저장장치 관리 (2)  (0) 2022.04.10
저장장치 관리 (1)  (0) 2022.04.04
가상 메모리 관리 (1)  (0) 2022.03.23
가상 메모리의 기초(2)  (0) 2022.03.21
가상 메모리의 기초 (1)  (0) 2022.03.17

댓글