일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- DirectX12
- 그리디알고리즘
- 멀티쓰레드
- 멀티프로세서
- directx
- 디자인패턴
- 렌더링 파이프라인
- 그리디 알고리즘
- 파일시스템 구현
- 병행성 관련 오류
- DirectX 12
- OS
- 다이나믹 프로그래밍
- 컨디션 변수
- I/O장치
- codility
- 운영체제
- 타입 객체
- 락
- 동적계획법
- 스케줄링
- 자료구조
- 프로그래머스
- 알고리즘
- 다이나믹프로그래밍
- 쓰레드
- 병행성
- Direct12
- 백준
- 영속성
- Today
- Total
기록공간
4-3-6장. 가상기억장치 구현 기법/페이지 교체 알고리즘 - A 본문
가상기억장치의 개요
가상기억장치는 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법이다.
-
프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
-
주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용
-
주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음
-
가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업이 필요함
-
블록 단위로 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있음
-
가상기억장치의 일반적인 구현 방법에는 블록의 종류에 따라 페이징 기법과 세그멘테이션 기법으로 나눌 수 있음
페이징(Paging) 기법
페이징 기법은 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치 영역(페이지 프레임)에 적재시켜 실행하는 기법이다.
-
프로그램을 일정한 크기로 나눈 단위를 페이지(Page)라고 하고, 페이지 크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임(Page Frame)이라고 함
-
외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
-
주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요
-
페이지 맵 테이블 사용으로 비용이 증가되고, 처리 속도가 감소됨
세그먼테이션(Segmentation) 기법
세그먼테이션 기법은 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법이다.
-
프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼크라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖는다.
-
기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
-
세그먼테이션 기법을 이용하는 궁극적인 이유는 기억공간을 절약하기 위해서이다.
-
주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블이 필요
-
세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키가 필요
-
내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음
페이지 교체 알고리즘
페이지 교체 알고리즘은 페이지 부재(Page Fault)가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이라면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이다.
OPT(OPTimal replacement, 최적 교체)
-
OPT는 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 방법
-
페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
FIFO(First In First Out)
-
FIFO는 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
-
이해하기 쉽고, 프로그래밍 및 설계가 간단함
LRU(Least Recently Used)
-
LRU는 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
-
각 페이지마다 계수기(카운터)나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은, 즉, 가장 오래 전에 사용된 페이지를 교체한다.
LFU(Least Frequently Used)
-
LFU는 사용 빈도가 가장 적은 페이지를 교체하는 기법
-
활발하게 사용되는 페이지는 사용 횟수가 많아 교체되지 않고 사용
NUR(Not Used Recently)
-
NUR은 LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
-
최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로, LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있음
-
최근에 사용 여부를 확인하기 위해 각 페이지마다 두 개의 비트, 즉 참조 비트와 변형 비트가 사용됨
-
다음과 같이 참조 비트와 변형 비트의 값에 따라 교체될 페이지의 순서가 결정됨
SCR(Second Chance Replacement, 2차 기회 교체)
SCR은 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법이다.
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
4-3-8장. 프로세스의 개요 - A (0) | 2020.09.19 |
---|---|
4-3-7장. 가상기억장치 기타 관리 사항 - A (0) | 2020.09.19 |
4-3-5장. 주기억장치 할당 기법 - C (0) | 2020.09.19 |
4-3-4장. 기억장치 관리의 개요 - A (0) | 2020.09.19 |
4-3-3장. UNIX / LINUX / MacOS - A (0) | 2020.09.19 |