728x90
9.1 가상 메모리의 개념
- 가상 메모리(virtual memory)
- 컴퓨터 시스템의 메모리 크기보다 더 큰 기억공간이 필요한 프로세스를 실행할 수 있게 하는 방법
- 실행 중인 프로세스에 의해 참조되는 주소(가상주소)를 메모리에서 사용하는 주소(실주소)와 분리하는 것
- 가상주소 공간 : 실행 프로세스가 참조하는 가상주소의 범위
- 실주소 공간 : 특정 컴퓨터 시스템에서 사용 가능한 실주소의 범위
- 사상(mapping)
- 가상주소를 실주소로 변환하는 과정
- 동적 주소변환(DAT)
- 프로세스가 실행되는 동안 가상주소를 실주소로 바꾸는 절차
- 주소변환 사상표 이용
- 인위적 연속성
- 가상주소 공간에서 연속적인 주소가 실주소 공간에서도 연속적일 필요는 없음
9.2 블록 단위 주소변환
- 항목별(바이트나 워드 단위) 주소변환의 문제점
- 변환에 필요한 정보량이 너무 많아 비효율적임
- 블록 사상 시스템
- 정보를 블록 단위로 구분하여 각 블록이 메모리의 어디에 위치하는지만 관리함
- 가상주소 v=(b,d)
- b는 블록 번호, d는 블록의 시작점으로부터의 변위
- 가상주소 v=(b,d)
- 정보를 블록 단위로 구분하여 각 블록이 메모리의 어디에 위치하는지만 관리함
- 블록의 크기
- 커질수록 사상정보 저장에 필요한 메모리양은 작아짐
- 단점 : 블록 이동에 필요한 전송시간이 늘어나고, 메모리를 공유할 프로세스 수가 줄어듦
- 작아질수록 블록 전송시간이 줄어들고, 메모리를 공유할 프로세스 수는 늘어남
- 단점 : 사상정보 저장에 필요한 메모리양이 커짐
- 커질수록 사상정보 저장에 필요한 메모리양은 작아짐
- 블록 구성방식
- 페이지 : 블록의 크기가 동일함
- 세그먼트 : 블록의 크기가 다를 수 있음
9.2.1 페이징 기법
- 페이징 기법
- 가상 메모리를 페이지 단위로 나누어 관리하는 기법
- 페이지 : 고정된 크기의 블록
- 가상 메모리를 페이지 단위로 나누어 관리하는 기법
- 페이지 프레임
- 가상 메모리와 동일하게 고정된 크기로 분할된 메모리 영역의 블록
- 가상 메모리상의 페이지를 담을 수 있도록 실제 메모리에 틀(frame)을 만들어 둔 것
- 페이지 사상표
- 페이지가 메모리에 적재된 후에도 바로 찾을 수 있도록 프로세스가 사용하는 가상주소를 실주소로 동적 변환 할 수 있게 함
- 가상주소의 페이지 번호별 저장 정보
- 실주소의 페이지 프레임 번호
- 페이지 존재 비트
- 보조기억장치 주소
- 동적 주소변환
- 직접사상 : 페이지 사상표를 직접 이용하여 동적 주소변환을 하는 방식
- 연관사상 : 페이지 변환 정보를 연관 메모리에 저장한 연관사상표를 이용하여 동적 주소변환을 하는 방식
- 연관/직접 사상 : 연관사상표에는 가장 최근에 참조된 페이지 항목만 보관하고 나머지는 페이지 사상표에 수록하여, 연관사상표에 없을 때는 직접사상 기법으로 변환하는 방식
- 페이징 기법의 특징
- 메모리 보호는 페이지 단위로 이루어짐
- 외부 단펴화는 발생하지 않으나, 내부 단편화는 발생할 수 있음.
9.2.2 세그먼테이션 기법
- 세그먼테이션 기법
- 가상 메모리를 세그먼트 단위로 나누어 관리하는 기법
- 세그먼트 : 논리적 의미에 부합하는 다양한 크기의 블록
- 메모리 적재를 위해서는 최초 적합, 최적 적합 등의 방법 이용
- 가상 메모리를 세그먼트 단위로 나누어 관리하는 기법
- 세그먼트 사상표
- 페이지 사상표와 유사함
- 가상주소의 세그먼트 번호별 저장 정보
- 실주소의 시작 위치
- 세그먼트 존재 비트
- 보조기억장치 주소
- 세그먼트의 길이
9.2.3 페이징/세그먼테이션 혼용기법
- 페이징/세그먼테이션 혼용기법
- 세그먼테이션 기법의 논리적 장점과 페이징 기법의 메모리 관리 측면의 장점을 활용한 기법
- 각 세그먼트를 다시 페이지 단위로 분할하고 메모리도 페이지 프레임으로 분할하여 하나의 페이지만 페이지 프레임에 적재하는 방식
- 세그먼트 사상표에 저장되는 주소는 실주소가 아닌 각 세그먼트에 대한 페이지 사상표의 시작주소
9.3 메모리 호출기법
- 페이지 또는 세그먼트를 어느 시점에 메모리에 적재할 것인가를 결정하는 기법
- 페이징 기법에서의 호출기법 : 요구 페이지 호출기법, 예상 페이지 호출기법
9.3.1. 요구 페이지 호출기법
- 요구 페이지 호출기법
- 페이지 요구가 있을 때 해당 페이지를 메모리에 적재하는 방법
- 프로세스의 실행순서는 정확히 예측이 불가하므로 실제 참조시 적재
- 페이지 결정에 대한 오버헤드가 최소화됨
- 적재된 페이지는 프로세스에 의해 실제로 참조된 것임을 확신함
9.3.2 예상 페이지 호출기법
- 예상 페이지 호출기법
- 곧 사용될 것으로 예상되는 페이지를 미리 메모리에 적재하는 방법
- 예상이 옳았다면 실제로 필요한 시점이 되었을 때 프로세스 실행이 단절되지 않음
- 예상이 잘못되면 예상 적재에 따른 시간과 메모리 공간의 낭비가 발생함
- 프로세스 시작 시점에 예상 페이지 호출기법을 적용하면 성능이 개선됨
참고 문헌 : 김진욱·이인복. 운영체제 워크북. 한국방송통신대학교출판문화원, 2023.
728x90
'전산 > 운영체제' 카테고리의 다른 글
운영체제 - 제 11장 장치관리 (0) | 2024.05.29 |
---|---|
운영체제 - 제 10장 페이지 교체 알고리즘 (0) | 2024.05.25 |
운영체제 - 제 8장 메모리 관리 (0) | 2024.05.23 |
운영체제 - 제 7장 교착상태2 (0) | 2024.05.22 |
운영체제 - 제 6장 교착상태 1 (0) | 2024.05.21 |