※ 공부 내용의 복습 개념으로 정리된 글입니다. - 출처 시나공
기억장치 관리 전략
기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입 전략, 배치 전략, 교체 적략이 있습니다.
반입(Fetch) 전략 (보조 → 주)
보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략입니다.
배치(Placement) 전략 (new → 주)
새로 반입되는 프로그램이나 데이터를 주기억장치에서 어디에 위치시킬 것인가를 결정하는 전략입니다.
- 최초 적합(First Fit)
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법.
- 최적 적합(Best Fit)
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
- 최악 적합(Worst Fit)
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
배치 전략 예제
주기억장치 상태가 다음의 표와 같다.
기억장치 관리 전략으로 First Fit, Best Fit, Worst Fit 방법을 사용할려 할 때,
각 방법에 대하여 10K의 프로그램이 할당받게 되는 영역의 번호는?
영역 번호 | 영역 크기 | 상태 |
1 | 5K | 공백 |
2 | 14K | 공백 |
3 | 10K | 사용중 |
4 | 12K | 공백 |
5 | 16K | 공백 |
- 먼저 10K가 적재될 수 있는지 각 영역의 크기를 확인한다.
- First Fit : 빈 영역 중에서 10K의 프로그램이 들어갈 수 있는 첫 번째 영역은 2번이다.
- Best Fit : 10K 프로그램이 들어가고 단편화를 가장 작게 남기는 영역은 4번이다.
- Worst Fit : 10K 프로그램이 들어가고 단편화를 가장 많이 남기는 영역은 5번이다.
교체(Replacement) 전략
주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치할려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것이지를 결정하는 전략입니다.
교체 전략은 FIFO, OPT, LRU, NUR, SCR 등이 있습니다.
※ 단편화
주기억장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우, 분할된 영역이 프로그램이나 데이터보다 적거나 커서 생기는 빈 기억공간을 의미합니다.
가상 기억장치
가상 기억장치는 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 적은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법입니다.
- 프로그램을 여러 개의 작은 블럭 단위로 나누어서 가상 기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블럭만 주기억장치에 불연속으로 할당하여 처리합니다.
- 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용합니다.
- 가상 기억장치의 일반적인 구현 방법은 블록의 종류에 따라 페이징 기법과 세그먼테이션 기법으로 나눌 수 있습니다.
페이징(Paging) 기법
- 가상 기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법입니다.
- 프로그램을 일정한 크기로 나눈 단위를 페이지(Page)라고 하고, 페이지 크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임(Page Frame)이라고 합니다.
- 외부 단편화는 발생하지 않으나, 외부 단편화는 발생할 수 있습니다.
- 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요합니다.
- 페이지 맵 테이블 사용으로 비용이 증가되고, 처리 속도가 감소합니다.
세그먼테이션(Segmentation) 기법
- 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행하는 기법입니다.
- 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖고 있습니다.
- 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법입니다.
- 세그먼테이션 기법을 이용하는 궁극적인 이유는 기억공간을 절약하기 위해서 입니다.
- 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블(Segment Map Table)이 필요합니다.
- 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보조키(Storage Protection Key)가 필요합니다.
※ 블록
보조기억장치와 주기억장치 간에 전송되는 데이터의 최소 단위입니다.
페이지 교체 알고리즘의 개요
페이지 교체 알고리즘은 페이지 부재(Page Fault)가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용 중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법입니다.
페이지 교체 알고리즘에는 OPT, FIFO, LRU, LFU, NUR, SCR 등이 있습니다.
주요 페이지 교체 알고리즘
FIFO (First In First Out)
FIFO는 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래되었던 페이지를 교체하는 기법입니다.
- 이해하기 쉽고 프로그래밍 및 설계가 간단합니다.
- 벨레이디의 모순(Belady's Anomaly) 현상이 발생합니다.
※ 벨레이디의 모순 현상
페이지 프레임 수가 많으면 페이지 부재의 수가 줄어드는 것이 일반적이지만, 페이지 프레임을 증가 시켰는데도 불구하고 페이지 부재가 더 많이 일어나는 현상입니다.
LRU (Least Recently Used)
LRU는 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법입니다.
각 페이지마다 계수기(Counter) 나 스택(Stack)을 두어 현 시점에서 가장 오랫동안 사용하지 않은,
즉 가장 오래 전에 사용된 페이지를 교체 합니다.
예제
- 참조 페이지를 각 페이지 프레임에 차례로 적제시키되 이미 적재된 페이지는 해당 위치의 페이지 프레임을 사용합니다.
- 사용할 페이지 프레임이 없을 경우 현재 시점에서 가장 오래동안 사용되지 않은 페이지 3을 제거 후 5를 적재합니다.
- 같은 방법으로 나머지 참조 페이지를 수행합니다.
NUR (Not Used Recently)
NUR은 LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법입니다.
- 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로, LUR에서 나타나는 시간적인 오버헤드를 줄일 수 있습니다.
- 최근에 사용여부를 확인하기 위해서 각 페이지마다 두 개의 비트, 즉 참조 비트(Reference Bit)와 변형 비트(Modified Bit, Dirty Bit)가 사용됩니다.
- 참조 비트 : 페이지가 호출되지 않았을 때는 0, 호출 되었을 때는 1로 지정됩니다.
- 변형 비트 : 페이지 내용이 변경되지 않았을 때는 0, 변경되었을 때는 1로 지정됩니다.
- 다음과 같은 참조 비트와 변형 비트의 값에 따라 교체될 페이지 순서가 결정됩니다.
참조 비트 | 변형 비트 | 교체 순서 |
0 | 0 | 1 |
0 | 1 | 2 |
1 | 0 | 3 |
1 | 1 | 4 |
NRU도 추가로 집중 탐색 페이지를 만들겠습니다~
'정보처리산업기사' 카테고리의 다른 글
정보처리산업기사 - NUR(Not Used Recently) 페이지 교체 알고리즘 집중 탐색!! (0) | 2024.06.03 |
---|---|
정보처리산업기사, 정보처리기사 - LRU(Least Recentely Used) 알고리즘 집중 탐색!! (0) | 2024.06.02 |
정보처리산업기사 - 응용 SW 기초 기술 활용 - 병행 프로세스와 상호 배제 (0) | 2024.05.28 |
정보처리산업기사, 정보처리기사 - 라운드 로빈, RR(Round Robin) 스케줄링 집중 탐색!! (0) | 2024.05.25 |
정보처리산업기사, 정보처리기사 - HRN 스케줄링 알고리즘 집중 탐색!! (0) | 2024.05.17 |