New World

[운영체제#9, 10] 가상 메모리 본문

Self-Study/Study

[운영체제#9, 10] 가상 메모리

hyeovi 2022. 6. 1. 22:27
728x90
반응형

01 가상 메모리의 개념

가상 메모리 필요성 : 메모리 크기보다 더 큰 기억공간이 필요한 프로세스를 실행할 수 있게 하는 방법

연속 메모리 할당 시, 프로세스 실행 불가

가상 메모리 할당 시, 프로세스 실행 가능

가상 메모리

- 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리

- 현재 필요한 일부만 메모리에 적재

 

 

 

사상 : 프로세스 실행을 위해 가상주소를 실주소로 변환

- DAT(동적 주소 변환) : 프로세스가 실행되는 동안 사상

- 인위적 연속성 : 가상주소 공간에서는 연속, 실주소 공간은 연속 X

 

 

02 블록 단위 주소

블록 단위 주소 변환

- 블록 단위로 분류, 각 블록이 메모리의 어디에 위치하는지 관리

- 크기 작으면 사상정보가 많고, 크기가 크면 블록 전송 시간이 크며 적재할 프로세스 수가 적음

- 페이징 기법 : 블록의 크기가 동일한 페이지로 구성

- 세그먼트 기법 : 블록의 크기가 서로 다른 세그먼트로 구성

 

페이징 기법

- 페이지 단위 : 가상 메모리를 고정된 크기의 블록

- 페이지 프레임 : 메모리 영역을 페이지와 동일한 크기의 블록인 페이지 프레임으로 나눔

- 페이지 사상표 : 가상주소를 실주소로 동적 변환, 가상주소의 페이지 번호에 대한 실주소의 페이지 프레임 번호를 저장

- 직접 사상 : 페이지 사상표를 이용

- 연관 사상 : 연관기억장치(저장된 값으로 데이터를 액세스하는 고속 메모리 장치)에 저장한 연관 사상표를 이용

- 특징

-- 논리적 의미와 무관하게 동일 크기의 페이지로 가상 메모리를 나눔

-- 프로세스 사이의 메모리 보호는 페이지 단위로

-- 내부 단편화 발생(외부 단편화 X)

 

세그먼트 기법

- 가상 메모리를 논리적 의미에 맞는 다양한 크기의 세그먼트 단위로 나누어 관리

 

페이징/세그먼테이션 혼용기법

- 세그먼테이션 기법의 논리적 장점 + 페이징 기법의 메모리 관리 장점

- 가상 메모리를 세그먼트 단위로, 각 세그먼트를 다시 페이지 단위로 분할

- 메모리는 페이지 프레임으로 분할

03 변환 페이지 호출기법

페이지를 어느 지점에 메모리에 적재할 것인지 결정

 

요구 페이지 호출 기법

- 한 프로세스의 페이지 요구가 있을때, 요구된 페이지를 메모리로 이동

- 명령어나 데이터가 실제로 참조되면 해당 페이지를 메모리에 적재

 

- 옮길 페이지를 결정하는데 오버헤드를 최소화

- 메모리에 옮겨진 페이지는 모두 프로세스에 의해 실제로 참조된 것임

- 프로세스 시작 시점에는 프로세스 진행에 따라 연속적으로 페이지 부재 발생 (성능 저하)

예상 페이지 호출 기법

- 현재 요구되지는 않지만 곧 사용될 것으로 예상되는 페이지를 미리 메모리로 이동

- 실제 필요한 시점이 되었을때 프로세스 실행 단절 X

 

- 예상이 잘못된 경우 메모리 공간 낭비

- 프로세스 시작 시점에 적용하면 성능이 개선됨

 


정답 : 3
정답 : 2
정답 : 4
1. 같은 컴퓨터 메모리 사용
2. 메모리 크기 < 용량 큰 프로세스 실행 가능
3. 프로세스가 참조하는 주소와 메모리에서 사용되는 주소 무관
정답 : 4
정답 : 3
정답 : 3
1. 크기는 모두 다름
2. 외부 단편화 발생 가능
4. 사상표에 세그먼트 비트, 주소
정답 : 2

01 다양한 페이지 교체기법

페이지 교체기법 : 모든 페이지 프레임이 사용되고 있을때 새로 적재되어야 할 페이지를 위해 어느 페이지를 교체할 것인가 결정

교체 대상 선택 -> 보조기억장치에 보관 -> 새로운 페이지 적재

 

최적화의 원칙 : 앞으로 가장 오랫동안 사용 X 페이지 교체 대상으로 선택, 실현 불가

선택을 위한 기본 정채 : 대체로 좋은 결론을 내리면서 시간 및 공간의 오버헤드가 적은 방법

교체 제외 페이지 : 페이징을 위한 슈퍼바이저 코드 영역, 보조기억장치 드라이버 영역, 입출력장치를 위한 데이터 버퍼 영역 등

 

 

FIFO 페이지 교체기법 LRU 페이지 교체기법 LFU 페이지 교체기법
- 메모리 내에 가장 오래 있었던 페이지 교체
- FIFO 큐 이용
- 가장 오랫동안 사용되지 않은 페이지 교체
- 참조시간 이용 or 리스트 이용

특징
- Belady 이상현상 발생 X
- 최적화 원칙에 근사한 선택
- 국부성에 기반 (어느 순간 특정 부분을 집중 참조)

시간 국부성 : 가까운 미래에 계속 참조
공간 국부성 : 근처 기억장소가 참조
- 참조된 횟수가 가장 적은 페이지 교체
- 참조횟수 이용
단점
- Belady의 이상현상 발생
오래 전 적재되어 반복적으로 사용되는 페이지가 교체될 가능성

단점
- 경험적 판단이 맞지 않는 상황 존재
- 막대한 오버헤드
 단점
- 가장 최근 메모리로 옮겨진 페이지가 교체
- 초기에 매우 많이 사용된 이후 더이상 사용이 없는데 교체 X
- 막대한 오버헤드
NUR 페이지 교체기법 2차 기회 페이지 교체기법 클럭 페이지 교체기법
- 참조 여부와 수정 여부에 따른 우선순위에 따라 적합한 페이지 교체
- 페이지마다 참조 비트 r과 수정 비트 m 이용
- FIFO 페이지 교체기법과 참조 여부에 따른 우선순위를 고려해 적합한 페이지 교체
- FIFO 큐와 참조 비트 이용
- 2차 기회 페이지 교체를 원형 큐를 이용
- 교체가 필요한 경우 큐의 삭제 및 삽입 대신 포인터 이동으로 구현
 
특징
- 적은 오버헤드로 적절한 성능
- LRU와 유사하면서 실제로 자주 사용
- 동일 그룹 내에서 선택은 무작위
- 모든 참조 비트 r을 주기적으로 0으로 변경
교체 대상 선택 방법
1. 큐의 선두를 꺼내 참조 비트 조사
2. 참조 비트가 0 -> 교체 대상
3. 참조 비트가 1 -> 0으로 바꿔 큐 뒤
 

 

02 프로세스별 페이지 집합 관리

 

프로세스별 페이지 집합 : 프로세스마다 페이지 프레임에 적재된 페이지들의 집합

프로세스별 페이지 집합의 크기가 적은 경우

- 메모리에 적재 프로세스 수 많아짐 -> 시스템 처리량 증대

- 각 프로세스별 페이지 부재가 많아짐 -> 성능 저하

 

페이지 집합 관리 알고리즘 : 워킹세트 알고리즘, PFF 알고리즘

워킹세트 알고리즘 PFF 알고리즘
- 하나의 프로세스가 자주 참조하는 페이지 집합
- 위킹세트 W(t, w) : 시간 t-w 로부터 시간 t까지의 프로세스 시간 간격동안 참조된 페이지 집합
- 프로세스의 상주 페이지 세트를 변경하며 관리
- 페이지 부재가 발생할 때, 빈도를 계산해 상한과 하한을 벗어나는 경우에만 변경

페이지 부재 빈도 : 두 페이지 부재가 일어난 사이 시간의 역수
- 데닝(Denning)이 제안
- 페이지 부재 비율을 감소시키기 위한 방법
- 원칙: 실행 중인 프로그램의 워킹세트를 메모리에 유지(국부성)
- 프로세스가 실행됨에 따라 워킹세트의 크기는 변함
문제점
- 과거를 통해 미래를 예측하는 것이 정확하지 않음
- 워킹세트를 정확히 알아내고 이를 계속적으로 업데이트하는 것이 현실적으로 어려움
- 워킹세트 윈도의 크기 w의 최적 값을 알기 어려우며 이 역시 변화할 수 있음

정답 : 1

정답 : 1

정답 : 1

정답 : 2
정답 : 3
정답 : 1
정답 : 4
정답 : 3
정답 : 1
반응형

'Self-Study > Study' 카테고리의 다른 글

[운영체제#12] 저장장치 및 관리  (0) 2022.06.01
[운영체제#11] 장치 관리  (0) 2022.06.01
[운영체제#8] 메모리 관리  (0) 2022.06.01
[운영체제#6, 7] 교착상태  (0) 2022.06.01
[운영체제#4,5] 병행 프로세스  (0) 2022.06.01
Comments