제 8장 가상 기억장치 구성 200512015 2A 박남규
가상기억장치 의 개요 가상기억장치란 실제 존재하지 않는 기억장치로서 디스크와 같은 보조기억장치에 가상의 공간을 만들어 주기억장치처럼 사용할 수 있게 한 것. 현재 실행 중인 프로세스가 참조하는 주소(가상주소)를 기억장치에서 사용 가능한 주소(실 주소)로 변환하는 동적 주소 변환이 필요함. 동적 주소변환을 위한 사상방법으로 사상표를 이용한 블록 사상 기업을 이용함.
가상기억장치 개요 Page 0 Page Frame0 1→2 Page 1 Page Frame1 2→0 Page Frame2 논리공간 (가상주소공간) 물리공간 (주기억장치) Page 0 Page 1 Page 2 : Page n-1 사상 테이블 Page Frame0 Page Frame1 Page Frame2 : Page Frame n-1 1→2 2→0 :
가상기억장치 관리기법 페이징 기법 가상기억장치에 보관되어 있는 프로그램과주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 페이지를 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법 세그먼테이션 기법 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억 장치에 적재시켜 실행시키는 기법 혼합기법 세그먼트를 페이지별로 분류하는 기법
*참고자료* 페이지(Page) 블록 단위로 정보를 묶었을 때 크기가 일정함 (동일 크기) 세그먼트(Segment) 가상주소(Virtual Address) 현재 진행 중인 프로세스가 참조하는 주소로서 논리 주고, 사용자 주소라고도 함 실주소(Real Address) 주기억장치에서 실제로 사용 가능한 주소로서 물리 주소라고도 함 사상(Mapping) 가상주소를 실주소로 대응하는 것으로, 사상표에 의해 수행됨. 주소사상은 최대한 신속히 일어나냐 시스템의 성능 저하를 막을 수 있음 페이지(Page) 블록 단위로 정보를 묶었을 때 크기가 일정함 (동일 크기) 세그먼트(Segment) 블록 단위로 정보를 묶었을 때 크기가 일정하지 않음 (가변[논리적] 크기)
구역성(Locality) 정의 : 프로세스들은 기억장치 내의 정보를 균일하게 액세스하 는 것이 아니라 어느 한 순간에 특정 부문을 집중적으로 참조하 는 것을 의미하고, 시간적 지역성과 공간적 지역성으로 구분됨. 시간 구역성(Temporal Locality) 정의 : 프로세스가 짧은 시간주기 동안 동일한 기억장소를 여러 차례 참조될 가능성이 높다는 것을 의미한다. 예) 순환(Looping),서브루틴(Subroutine), 스택(Stack), 계산(Counting)과 집계(Totaling)에 사용되는 변수 공간 구역성(Spatial Locality) 정의 : 일단 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조되는 경향이 있음을 의미한다. 예) 배열 순회(Array Traversal), 순차적 코드 실행(Sequential Code Execution), 상호 이웃한 변수의 선언
가상 기억 장치의 구현 방법
주소 사상 기법 프로그램 전체를 연속으로 적재하는 경우 재배치 과정 한번 거침 상대주소(relative address) : 프로그램 시작 지점을 0번지로 가정하는 주소임 재배치 : 주기억장치 할당 후 할당 주소에 따라 상대 주소들을 조정하는 작업 2. 프로그램을 분할하여 그 일부분만을 비연속적으로 적재하는 경 우 가상주소 = 상대주소 실주소 = 절대주소 ※ 주소사상함수(address mapping function) : 가상 주소를 실주 소로 변환 하는 작업을 실행 중에 동적으로 수행하기 위한 기법 ※ 인위적 연속성(artificial contiguity) : 사용자 또는 프로세스 입장에서 실행 프로그램 전체가 주기억장치에 적재되어 있는 것처럼 보이게 하는 개념.
블록 사상 기법 블록 사상 (block mapping) 프로그램을 블록 단위로 분할 하고 이렇게 분할된 블록 단위로 주소사상 정보를 기록하여 사용하는 기법. 블록 사상 테이블 (block mapping table) 각 블록의 가상 주소와 이에 대응되는 실 주소의 정보를 저장. ※ 블록 사상을 통한 가상 주소 변환 과정 블록 번호 b 변위 d 2차원 가상 주소 : V=(b, d)
블록 크기에 따르는 주소 사상 오버헤드 블록의 크기를 크게 하는 경우 사상 테이블에 적재될 사상 정보의 양이 작아짐 주소사상에 필요한 시간이 빨라짐 각 블록이 차지하는 주기억장치 공간의 양이 많아짐 필요 없는 부분이 주기억장치에 적재될 가능성이 많아짐 각 블록의 전송 시간이 길어짐 블록의 크기를 작게 하는 경우 사상 테이블에 적재될 사상 정보의 양이 많아짐 주소사상에 필요한 시간이 느려짐 각 블록이 차지하는 주기억장치 공간의 양이 작아짐 필요 없는 부분이 주기억장치에 적재될 가능성이 작아짐 각 블록의 전송 시간이 단축됨
블록 사상을 통한 가상 주소 변환 [가상 주소에서 실 주소로의 변환 과정] 블록 사상표 시작점 레지스터에 블록 번호 b를 더해 블록 사상표 내에서 블록 b를 나타내는 항목의 실주소 b'를 구함. a + b = b’ (2) 블록 b의 실주소 b'에 변위 d를 더하여 실주소 r을 얻음. b' + d = r
페이징 시스템 주기억장치를 동일한 크기의 고정된 블록으로 분할한다 각 프로세스는 프레임과 동일한 크기의 블록으로 나눈다 프레임(Frames 또는 Page Frames) 상대적으로 블록 크기는 작다 각 프로세스는 프레임과 동일한 크기의 블록으로 나눈다 페이지(Pages) : 고정된 크기의 프로세스 블록 프로세스 페이지를 사용 가능한 주기억장치 프레임에 할당한다 하나의 프로세스는 주기억장치의 연속된 영역에 할당될 필요가 없다 프로세스 페이지를 연속되지 않은 프레임에 할당하고 프로세스에 대한 프레임 정보를 유지한다 가상 주소는 V=(p, d)의 2차원으로 표현, 1. 가상 주소 : V = (p, d) 2. p : 페이지 번호, d : 실제 항목까지의 변위 페이지 번호 p 변위 d
페이징 시스템 예 페이징 시스템에서는 사용자 프로그램을 분할할 때 어떠한 논 리적인 구분 없이 미리 정해진 크기로만 분할 한다. 이로 인한 문제점 발생
페이징에서의 가상주소와 실주소 관계 동적 주소변환 과정 ▶가상 주소가 V=(p, d)라 할 때, 페이지 사상표에서 페이지 p를 찾고, 페이지 p가 페이지 프레임 p'에 있음을 알아 냄. ▶p'와 d를 더하여 주기억 장치상의 실제 주소 r = p' + d를 생성.
직접 사상 기법 프로세스의 가상 기억 장치를 구성하는 모든 페이지에 대한 항목이 페이지 사상표에 있음
연관 사상 기법 고속의 연관기억장치를 이용하여 페이지 사상표 전체를 넣는 방법으로서, 가장 빠르고 융통성 있는 사상 구조.
연관/직접 사상 기법 한 프로세스의 전체 페이지 사상표의 일부분만 수용할 수 있는 크기의 연관기억장치를 이용
페이징 시스템에서의 주기억장치 관리 이 시스템에서는 주기억장치를 페이지 크기와 똑같은 크기의 페이지 프레임 단위로 분할 한다. 할당 : 해당 페이지 프레임이 현재 프로세스에게 할당 되었는지를 “0” 또는 “1” 의 값으로 표시 한다. PID : 해당 페이지 프레임이 프로세스에게 할당된 경우 어느 프로세스 에게 할당 되었는지를 나타낸다. 링크 : 현재 할당 되어 있지 않은 페이지 프레임들에 대해서 이들을 하나의 연결 리스트로 연결하기 위해 사용한다.
세그먼테이션 시스템 세그먼트 번호 s 블록 내 변위 d 논리적 의미에 부합하는 크기의 블록 세그먼트 세그먼트들의 크기는 서로 다르며, 각각의 세그먼트는 연속적인 공간에 저장되어야 함. 세그먼테이션 기법에서 가상주소 : v = (s, d) 전체 세그먼트 하나의 단위로 보조기억장치에서 주기억장치의 연속적인 가용 공간에 적재됨. 최초 적합, 최적 적합 등의 방법으로 주기억 장치 할당. 세그먼트 번호 s 블록 내 변위 d
세그먼테이션 기법에서의 가상주소 변환
세그먼테이션 기법에서 사상 표 항목의 내용 br = 0 세그먼트 부재 오류 사상표 항목의 내용에 따라 주기억 장치 내의 세그먼트 보호 br = 0 세그먼트 부재 오류 ☞ 보조기억장치에서 세그먼트를 가져와 주기억장치 에 적재함. d > I 세그먼트 오버플로 예외 프로세스 종료 보호 비트 위반 세그먼트 보호 예외
페이징 시스템과 세그먼테이션 시스템의 비교
페이징/세그먼테이션 혼용 기법 세그먼테이션 기법의 논리적 장점과 페이징 기법의 메모리 관리 측면의 장점을 활용하기 위한 기법. 가상 주소 : v = (s, p, d) 세그먼트 번호s 페이지 번호 p 블록 내 변위 d
페이징/세그먼테이션 혼용 기법의 동적 주소변환
페이징/세그먼테이션 혼용 기법에서 각 표의 관련 구조
*요점* 가상기억장치는 주기억장치 크기보다 더 큰 기억공간을 사용하는 프로그램을 실행할 수 있다. 프로세스에서 사용되는 가상 주소는 동적 주소변환을 통해 주기억장치의 실 주소로 변환된다. 연속적인 가상 주소가 실 주소 공간에서도 연속적일 필요는 없다. 페이징 기법은 페이지라는 고정 크기 블록 단위로 기억장치를 관리한다. 세그먼테이션 기법은 모듈화에 따른 논리적 의미에 부합하는 다양한 크기의 세그먼트 단위로 기억장치를 관리한다. 페이징/세그먼테이션 혼용 기법은 세그먼테이션 기법의 논리적 장점과 페이징 기법의 메모리 관리 측면의 장점을 활용한다.