이 포스트 내용은 박미진 컴퓨터일반과 시나공 정보처리기사 요약집를 참고하여 작성한 글입니다.
메모리 관리 기법 - 가상기억장치
가상기억장치(불연속할당)
- 보조기억장치(Hard disk)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 것이다.
- 주기억장치의 용량 보다 큰 프로그램을 실행하기 위해 사용한다.
- 블록 단위로 나누어 사용하므로 연속할당방식에서 발생할 수 있는 단편화를 해결
- 단점 : 운영체제의 설계가 복잡해지고 주소 변환을 위한 테이블을 사용하므로 기억장소를 낭비할 수 있다.
- 다중 프로그래밍 목적
❗️ 동적 주소 변환 (DAT) 기법
가상기억장치에 저장된 프로그램을 실행하려면 가상가익정차의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업(Mapping)이 필요하다.
DAT는 인위적 연속성1을 제공한다.
-
가상기억장치 구현 기법
페이징 | • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행 |
• 외부단편화X, 내부단편화O | |
• 페이지 맵 테이블 필요 | |
세그멘테이션 | • 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법 |
• 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖고 있음 | |
• 내부단편화X, 외부단편화O |
-
블록 크기에 따른 설계
-
블록(페이지)가 작을 경우
- 관리할 블록의 갯수 증가
- 페이지 맵 테이블(블록사상표)의 크기가 커진다. 즉 매핑속도가 늦어진다.
- 페이지fault2, 교체가 자주 일어난다.
- 1개의 블록이동시간 짧다.(주기억장치로 이동하는 시간이 줄어든다.)
- 디스크(주기억장치)로부터 블록이동(접근 횟수)가 많아져 전체적인 입출력시간은 증가한다.(CPU 유휴시간이 길어진다.)
- 필요한 내용만 적재할 수 있기 때문에 더 효율적인 Working Set이 가능하다. 즉, Locality(국부성)에 더 일치하여 효율이 높다.
- 단편화가 감소한다.
-
주소 분리 이용
- 가상주소 -(동적주소변환DAT) -> 실주소
- 위와 같은 과정 : 페이지 맵핑 테이블, 세그먼트 맵핑 테이블
- 논리주소 -> 물리주소
- 프로세스 단위 -> 주기억장치
가상주소(프로그램,프로세스 크기) > 주기억장치 기억공간(실주소)
가능하다. 교체하면서 가능
댓글 쓰기