라기의 IT's time

[OS-04강] 가상기억장치 관리전략

 

[OS-04강]가상기억장치관리전략.pdf
0.19MB

학습내용
1. 가상기억장치 관리전략
학습목표
1. 가상기억장치 관리전략을 이해하고 활용할 수 있다
학습내용
1. 가상기억장치
(1) 가상기억장치 개요 
1) 가상기억장치는 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억
 장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
2) 프로그램을 여러 개의 작은 블록 단위로 나누어서 보관해 놓고, 프로그램 실행 시 요구되는 블
 록만 주기억장치에 불연속적으로 할당하여 처리
3) 주기억장치의 크기보다 큰 프로그램을 실행하기 위해 사용
4) 주기억장치의 이용률과 다중 프로그램의 효율을 높일 수 있음
5) 가상기억장치에 저장된 프로그램을 실행하기 위해서 가상기억장치의 주소를 주기억장치의 주
 소로 바꾸는 주소 변환(Mapping) 작업이 필요함 
6) 블록 단위로 사용하기 때문에 연속 할당 방식에서 발생할 수 있는 단편화를 해결
7) 페이징 기법과 세그먼테이션 기법으로 나눔
8) 운영체제의 설계가 복잡해짐
9) 오버레이 문제는 자동으로 해결됨
(2) 페이징(Paging) 기법 
1) 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 
 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지프레임)에 적재시켜 실행하는 
 기법
2) 프로그램을 일정한 크기로 나눈 단위를 페이지(Page)라고 하고, 페이지 크기로 일정하게 나누
 어진 주기억장치의 단위를 페이지 프레임(Page Frame)이라 함
3) 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
4) 주소 변환을 위해서 페이지 맵핑 테이블이 필요
(3) 세그먼테이션(Segmentation) 기법 
1) 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치
 에 적재시켜 실행시키는 기법

 

2) 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그
 먼트는 고유한 이름과 크기를 가짐
3) 세그먼테이션 기법을 이용하는 궁극적인 이유는 기억 공간을 절약하기 위함 
4) 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 
 위해 기억장치 보호키(Storage Protection Key)가 필요 
5) 외부 단편화가 발생할 수 있음
6) 세그먼테이션 기법 주소 변환 순서
① 가상 주소의 변위값과 세그먼트의 크기를 비교
② 변위값이 작거나 같으면 기준번지와 변위값을 더하여 실기억주소를 만들어 주기억장치에 접근
③ 변위값이 크면 다른 영역을 침범하게 되므로 실행 권한을 운영체제에 넘기고 트랩을 발생시킴
④ 아래와 같은 세그먼트 테이블이 있을 때 (단, 가상 주소=s(2, 100))

 

실제주소는 2100 이 됨

 

2. 페이지 교체 알고리즘 ← 주기억장치관리전략 중 교체전략 
1) 최적 교체 (OPT , Optimal replacement) 
가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
① Belady가 제안한 것으로 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
② 각 페이지의 호출 순서와 참조 상황을 미리 예측해야 하므로 실현 불가
③ OPT 기법 예
3개의 페이지 프레임을 가진 기억장치에서 페이지 부재 수는 4회

 

2) FIFO(First In First Out) 
주기억장치에 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
① 이해하기 쉽고 프로그래밍 및 설계가 간단 
② 프로세스에 할당된 페이지 프레임 수가 증가하면 페이지 부재의 수가 감소하는 것이 당연하지만 
 페이지 프레임 수가 증가할 때, 현실적으로 페이지 부재가 더 증가하는 모순(anomaly)현상이 
 발생 

 

③ FIFO 기법 예 
3개의 페이지 프레임을 가진 기억장치에서 페이지 부재 수는 6회

3) LRU(Least Recently Used) 
 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
① 각 페이지마다 계수기나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체
② LRU 기법 예 
3개의 페이지 프레임을 가진 기억장치에서 페이지 부재 수는 5회

 

4) LFU(Least Frequently Used) 
① 사용 빈도가 가장 낮은 페이지를 교체하는 기법
② LFU 기법 예 
4개의 페이지 프레임을 가진 기억장치에서 페이지 부재 수는 5회

 

5) NUR(Not Used Recently) 
 LRU와 비슷한 알고리즘으로 최근에 사용하지 않은 페이지를 교체하는 기법
① 최근의 사용여부를 확인하기 위해 각 페이지 마다 2개의 비트를 사용, 참조 비트(Reference 
 Bit)와 변형 비트(Modified Bit)를 사용
② 참조 비트와 변형 비트의 값에 따라 순서가 결정되고 페이지 교체 
NUR 교체 순서 (0 : 참조 안됨, 1 : 참조됨)
6) SCR(Second Chance Replacement) 
 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, 

 

FIFO 기법의 단점을 보안한 기법
① 교체 대상이 되기 전에 참조 비트를 검사하여 1일 경우 한 번의 기회를 더 부여
② 각 페이지에 프레임을 FIFO 순으로 유지시키면서 LRU 근사 알고리즘처럼 참조 비트를 가짐
3. 가상기억장치의 기타 관리 사항 
1) 페이지 크기 
① 페이지 크기가 작을 경우 •페이지 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
•프로그램 수행에 필요한 내용만 주기억장치에 적재할 수 있고, 지역성(Locality)에 더 일치할 
 수 있기 때문에 기억장치 효율이 높아짐 •페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 맵핑 속도가 늦어짐
•디스크 접근 횟수가 많아져서 전체적인 입/출력 시간은 늘어남
•더 많은 페이지가 존재하며, 우수한 working set을 가질 수 있음
② 페이지 크기가 클 경우
•페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 맵핑 속도가 빨라짐
•디스크 접근 횟수가 줄어들어 전체적인 입/출력의 효율성이 증가됨
•페이지 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
•프로그램 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음
2) 구역성(Locality) 
 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다
 는 이론 
① 스래싱을 방지하기 위한 워킹 셋 이론의 기반이 됨
② Denning 교수에 의해 구역성의 개념이 증명되었으며 캐시 메모리 시스템의 이론적 근거가 됨
③ Locality의 종류
• 시간 구역성 : 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하
 는 현상으로 반복(Loop), 스택(Stack), 부프로그램(Subroutine), Counting, 집계(Totaling) 
 등이 있음
• 공간 구역성 : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스 하는 현상 - 공간 구역성에는 배열 순례, 순차적 코드의 실행이 있음
3) 워킹셋(Working Set) 
 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
① 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상을 줄임
② Denning이 제안한 프로그램의 움직임에 관한 모델

 

4) 스래싱(Thrashing) 
 너무 자주 페이지 교환이 발생하여 어떤 프로세스가 프로그램 수행에 소요되는 시간보다 페이지 교
 환에 소요되는 시간이 더 많은 현상
① 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행과정 중 
 자주 페이지 부재가 발생함으로 나타나는 현상으로 전체 시스템의 성능이 저하됨
② 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정시점까지는 높아지지만, 다
 중 프로그래밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소됨
(x: 다중 프로그래밍 정도, y: CPU 이용률)

 

③ 페이지 부재율이 크면 스래싱이 많이 일어남 
④ 프로세스들이 워킹 셋(Working set)을 확보하지 못한 결과임
⑤ 스래싱 현상 해결 방법 
• 부족한 자원을 증설 • 일부 프로세스를 중단
• CPU 이용률을 높인다 • 페이지 부재율을 조절하여 대처함
• Working set 방법을 사용 • 일부 낮은 우선순위의 프로세스를 중단시킴
 • 성능자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영
5) 페이지 부재(Page Fault) 
① 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상을 의미
② 페이지 부재가 일어나는 횟수를 페이지 부재 빈도라고 함
③ 페이지 부재율(Page Fault Rate)에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄
 여 페이지 부재율을 적정 수준으로 유지
④ 페이지 부재를 처리하는 순서 
ⅰ) 운영체제에서 트랩을 요청
ⅱ) 사용자 레지스터와 프로그램 상태를 저장
ⅲ) 사용 가능한 프레임을 프레임 리스트에서 찾음
ⅳ) backing store에 있는 페이지를 물리적 메모리로 가져옴
⑤ 페이지 테이블을 재조정한다. ⑥ 명령어 수행을 계속함
요점정리
1. 가상기억장치 관리전략을 이해하고 정리합니다. 다음차시예고
수고하셨습니다. 다음 5주차에서는 “[OS-05강] 디스크 스케줄링”에 대해서 학습하도록 하겠습니다.

TOP