- 일부만 주기억장치에 적재되므로, 보다 많은 프로세스들이 주소공간을 활용할 수 있게 됨
- 다중프로그래밍 정도가 높아지고, CPU와 기억장치의 활용도 상승
→ 다중 프로그래밍 정도가 높아지면, 프로세스가 프로그램 수행 시간보다 페이지 교환시간에 집중됨 : 스레싱 현상
- 개별 프로그램의 응답시간이 빨라지는 것은 아님
동작원리
- 가상기억공간과 실기억공간을 연결하는 주소 매핑 과정 필요
- 논리 어드레스 공간을 블록으로 나누어 놓고 실제 주기억 용량에 맞는 블록만을 로드 이때, 어떤 블록을 가져올 것인지는 DAT (Address 변환 테이블) 사용
- 가상주소는 프로그래머가 쓴 보조기억장치의 번지 (실행중인 프로세스가 참조하는 주소)
- 실주소는 주기억장치에서 사용가능한 실제 주소
2. 가상기억장치의 구분
| 가상기억장치의 구현 방법에 따라 | 페이징 |
|---|
| 세그멘테이션 |
| 페이징/세그멘테이션 혼용 |
| 사상표 색인을 찾는 방법에 따라 | 직접 사상 방법 |
| 연관 사상 방법 |
| 직접/연관 사상 혼용 방법 |
3. 가상기억장치의 구현 방법에 따른 분류
(1) 페이징 (Paging)
블록 사이즈가 고정(동일)한 방식으로 사용자가 작성한 프로그램은 하드웨어에 의해 페이지 단위로 분해
- 물리적 (실) 주소 공간은 가상기억장치의 페이지 크기와 같은 페이지 프레임으로 나누어 사용된다.
- 최초, 최적, 최악 적합등 배치 기법이 필요없음
장점
- 세그먼트 테이블과 달리 페이지 테이블은 블록의 크기를 나타낼 필요가 없다.
- 보조기억장치의 페이지 크기와 주기억장치의 페이지 프레임의 크기가 동일 ⇒ 외부 단편화 발생 x
단점
- 내부단편화 발생할 수 있다.
- 세그먼트 기법에 비해 주소변환 테이블을 기억하기 위한 많은 장소 필요 (페이지 사상으로 비용이 증가하고 수행속도 감소)
- 페이지는 프로그램에 상응하는 논리적의미를 갖지 못함 (세그먼트에 비해 공유, 보호 지원x)
(2) 세그멘테이션 (Segmentation)
블록사이즈가 가변적인 방식, 가변 사이즈 블록을 세그먼트라고 함
- 세그먼트는 프로그램에서 서브루틴과 같은 의미
- 세그먼트를 나누는 일은 프로그래머의 일
- 기억장치의 사용자 관점을 지원하는 기억장치 관리 기법으로 논리주소 공간은 세그먼트의 모임 ⇒ 최초, 최적, 최악 적합 등 배치 기법이 필요
- 세그먼트 테이블의 각 항목은 세그먼트의 기준 (base) 과 세그먼트의 한계 (limit)을 가지고 있음
장점
- 내부단편화 발생 x
- 세그먼트 공유와 보호 측면에서 세그먼트 시스템은 페이지 시스템보다 수행방법이 쉽고 명확
- 페이징 시스템에 비해 세심한 액세스 제어 가능
단점
- 외부 단편화가 발생 가능 ⇒ 세그먼트의 크기가 고정되지 않고 가변적
- 세그먼트의 크기가 가변적이라 세그먼트 영역이 다른 세그먼트영역을 침범하지 않기 위한 특별한 하드웨어 관리 필요
(3) 페이징/세그멘테이션 혼용 기법
- 세그먼트는 너무 가변적, 세그먼트의 크기가 너무 커질때를 해결
- 프로그램을 논리적인 세그먼트 단위로 분할, 분할된 각 세그먼트들을 다시 각각 페이지 단위로 분할
- 외부 단편화 제거, 내부단편화 발생, 사상표가 차지하는 공간의 오버헤드 증가
- 각각의 세그먼트들마다 하나씩의 페이지 테이블 유지관리 필요
4. 사상표 색인을 찾는 방법에 따른 분류
(1) 직접사상방법
- 페이지 사상표는 주기억장치에 존재
- 프로세스의 가상기억장치를 구성하는 모든 페이지에 대한 항목이 페이지 사상표에 존재
- 명령어 수행주기 외에 추가적인 주기억장치 수행주기 요구 → 페이지 테이블을 위해서 한번, 그 메모리 자체를 위해서 한번, 총 2번의 기억장치 접근 필요
- 페이지 테이블의 각 엔트리에는 유효/무효 비트를 둠
- 유효 비트라면 관련된 페이지가 프로세스의 합법적인 페이지임을 나타냄
- 무효 비트라면 그 페이지는 프로세스의 논리 주소공간에 속하지 않는다는 것
(2) 연관사상방법
- 빠른 주소 변환을 위해 고속의 연관기억장치를 이용하여 페이지 사상표 전체를 넣는 방법
- 비용 많이들고, 구현하기 힘듦
- 캐시에 비해 매우 비싸서 이용하기 힘듦
(3) 연관/직접 사상 방법
- 보다 적당한 비용으로 연관사상의 장점을 살릴 수 있는 절충 방안
- 연관사상표 : 국부성에 의거, 최근에 가장 많이 참조된 페이지
- 페이지 사상표 : 연관 사상표에서 제외된 나머지 페이지
TLB (Translation Lookaside Buffer)
프로세서 내부에 있는 장치로 가상주소를 물리주소로 변환하는 속도를 높이기 위해 사용되는 캐시의 일종
5. 블록사상
(1) 페이지 크기가 작을 경우
- 더 많은 페이지와 frame이 존재하게 되어 → 페이지 테이블도 함께 커진다.
- 페이지 테이블 증가로 테이블 단편화 발생
- 작은 크기의 페이지가 지역성이 향상되어 프로세스가 효과적인 working set을 확보하는데 도움
- working set : 일정한 시간 간격사이에 프로세서가 참조하는 페이지들의 집합
- 공간지역성 : 어떤 주소를 접근하면 그 주변 주소들도 함께 접근될 가능성이 높다는 것
- 시간지역성 : 최근에 접근한 데이터나 명령을 곧 다시 사용할 가능성이 높다는 것
(2) 페이지 크기가 클 경우
- 디스크로부터 입출력 전송 횟수 감소 → 입출력시간 최소화하기에 효율적 디스크에서 하나의 페이지를 메모리로 전송하는 시간은 커짐
- 페이지 부재율 감소
- 참조되는 정보와 무관한 정보가 주기억장치에 적재되어 기억장치 내부 단편화 증가
- 전반적인 흐름은 페이지 크기를 크게하는 경향 존재