운영체제 레프토 (8장 가상 기억장치 구성) 200612047 b반 박상수
개요 가상기억(VM)장치는 컴퓨터의 속도 증가 보다 주소 공간의 확대를 목적으로 하는 가상의 메모리이다. 실제로 없는 메모리를 있는 것처럼 사용하는 방법으로 보조기억 장치를 마치 주기억 장치인 것처럼 이용한다. 이때 보조 기억 장치는 반드시 DASD(직접 접근 기억 장치)라야 한다. VM 관리는 작업을 불연속적(비연속적)으로 할당할 수 있으며 작업의 전부를 적재하지 않고 일부분씩 적재하여 수행할 수 있는 overlay를 자동적으로 해결해 주고 속도는 좀 떨어지지만 메모리 이용은 효율적이다.
지역성 구역성, 지역성, 집약성 또는 국부성이라 불리 우는 이 개념은 기억장치 관리기법에 아주 중요한 역할을 하는데 그 의미는 process들은 기억 장치내의 정보를 균일하게 access하 는 것이 아니라 국부적인 부분만을 집중적으로 참조한다는 것이다. Locality에는 공간적, 시간적인 의미가 있는데 시간 지역성(temporal)은 먼저 참조된 어떤 부분이 이후에도 계속 참조될 가능성이 높다는 것이고 공간 지역성(spatial)은 어느 장소가 참조되면 그 부근의 장소가 이후에도 참조될 가능성이 많다는 것이다. ☞시간(temporal) 구역성 (같은 장소) 먼저 참조된 어떤 기억장소의 부분이 이후에도 계속 참조될 가능성이 높다. 예) 순환(looping), 부 프로그램, 스택, 계산에 사용되는 변수들. ☞ 공간(spatial) 구역성 (다른 장소) 어느 기억장소가 참조되면 그 부근의 장소가 이후에도 계속 참조될 가능성이 높다. 예) 배열, 순차적 실행, 관련 변수들의 근처 선언
Page System(같은 크기로 분할) paging이라고도 하며 가상의 주소 공간을 page로 분할하고 실 기억공간도 page frame으로 분할한다. 가상 page 수는 실제 page(page frame)의 수보다 훨씬 많고 모든 page의 크기는 같고 고정되어 있으며 가상의 한 page는 실제의 한 page frame내에 적재되는데 이 작업은 운영 체제에 의해서 수행된다. 이 방식은 메모리 관리가 쉽고 자동으로 overlay 처리가 되는 반면 사용자 간의 procedure(절차;처리순서) 공용이 어렵다. 프로그래머는 page의 존재를 의식할 필요 없이 프로그래밍할 수 있다.
Segment System(다른 크기의 논리적 단위로 분할) 프로그램 상에서는 segment 번호와 segment 안의 주소를 적는 2원 address를 사용한다. segment system에서는 기억공간의 효율적인 관리가 어려우며 segment들의 크기가 다르기 때문에 segment 교환 알고리즘이 복잡한 반면 사용자 간의 procedure 공용이 가능하고 기억 장치의 관리를 동적으로 할 수 있다. 또한 segment의 내용에 따라 서로 다른 보호를 받을 수 있다.
주소 사상(Address Mapping) 기법 주소의 사상 기법이란 실행중인 프로그램이 주기억장치에 접근하기 위하여 가상 주소를 발생시키면 이를 주소 사상 모듈이 받아 실 주소로 변환 시키는 것이다. 가상주소(V) : 가상 기억장치 시스템에서 현재 진행중인 프로세스가 참조하는 주소(Virtual Address) 실 주소(R) : 주기억장치에서 사용 가능한 주소(Real Address) 주소 사상 함수(address mapping function) : 프로그램상의 모든 가상 주소를 미리 절대주소(실 주소)로 변환하는 것은 불가능하므로 실행 중에 이를 동적으로 수행하기 메커니즘이 필요하고 이를 위해 주소 사상 함수(address mapping function)의 개념을 사용한다.
주소 사상(Address Mapping) 기법 주소 사상 기법의 방법은 소프트웨어나 하드웨어적에 의한 여러 가지 방법이 있으나 그 중 동적인 주소 변환은 소프트웨어에 의해 수행된다. 동적 주소 변환(Dynamic Address Translation) 기법은 프로세스가 수행될 때 가상주소를 실 주소로 변환해 주며 소프트웨어 의해 수행 되는 대표적인 기법이다. 이러한 변환을 사상(Mapping)이라 한다. 주소 사상 기법 3가지 직접 사상(Direct Mapping) 기법 연관 사상(Associative Mapping) 기법 직접/연관 사상 기법
블록 사상의 개념 ■ 블록 사상(Block Mapping) 이란 프로그램을 블록(묶음) 단위로 구분하고 블록단위로 주소 사상 정보를 기록하여 사용하는 기법 이다. ■ 블록 사상(Block Mapping) 기법을 이용하는 이유 주소 사상 시 가상주소의 어느 위치가 실 주소 어디에 적재되는 지에 대한 정보가 필요하며 이러한 정보들을 유지 하기 위해 사상 테이블로 유지 관리 한다. 이때 Byte 단위나, word단위를 사용할 경우 사상 테이블로 인한 기억용량 소모가 커지며 사상 테이블에 대한 탐색시간이 길어져 오버헤드(부담)가 커진다. 이러한 단점을 극복하기 위해서 일반적으로 사용자 프로그램을 블록 단위로 구분하고 블록 단위로 주기억장치에 적재하며 사상 테이블에서도 블록 단위로 주소 사상 정보를 저장하므로 주기억장 치의 낭비와 사상 테이블 탐색시간을 줄일 수 있으므로 오버헤드 (부담) 를 줄일 수 있다.
페이징 시스템 페이지(page) : 실행 프로그램들이 일정한 크기의 블록으로 분할될 때의 블록을 말한다. 페이징 시스템(paging system) : 가상 기억장치 시스템 중 프로그램을 일정한 크기(예: 2KB 또는 4KB)의 블록 단위로 분할하는 시스템을 의미 한다. 페이지 프레임(paging frame) : 주기억장치의 영역들도 페이지 크기와 똑 같은 크기로 분할 되는데 이처럼 분할된 주기억장치의 영역을 의미 한다.
주소 사상 기법 프로세스의 가상 기억 장치를 구성하는 모든 페이지의 항목이 페이지의 사상 테이블에 포함되어 있다. 직접 사상(direct mapping) 기법 프로세스의 가상 기억 장치를 구성하는 모든 페이지의 항목이 페이지의 사상 테이블에 포함되어 있다. 연관(associative memory ) 사상 기법 연관 사상 기법은 기억된 내용의 일부를 이용하여 원하는 정보가 기억된 위치를 찾아내서 접근하는 방법으로 위치지정이 아닌 내용지정의 연관기억장치(associative storage)에 모든 페이지 사상 테이블을 놓은 것이다. 직접 사상 기법의 문제점인 오버헤드를 줄이기 위해 연관 기억창치에 적재하여 사용한다. 처리속도는 빠르나 하드웨어 비용이 크다.
세그먼테이션 시스템 장점 사용자 프로그램을 분할할 때 모듈(Module) 단위 또는 함수(Function) 세그먼트(segment) : 서로 다른 크기로 분할되는 프로그램 블록 세그먼테이션 시스템(segmentation system) : 가상기억장치 시스템 중 프로그램을 논리적인 개념을 가지고 프로그램을 서로 다른 크기의 블록들로 분할하는 시스템 장점 사용자 프로그램을 분할할 때 모듈(Module) 단위 또는 함수(Function) 단위의 논리적인 개념에 의해 분할하므로, 세그먼트 공유나 보호에 있 어서 페이징 시스템에서 만큼 복잡한 문제들이 발생하지 않는다. 단점 서로 다른 크기의 다른 세그먼트들을 관리해야 하므로 주소사상 기법 이나 주기억장치 관리 기법 등에서 오버헤드 (부담) 가 발생 한다.
주소 사상 기법 주소 사상을 위해 세그먼트 사상 테이블(SMT)을 사용하며 STM 엔트리에는 추가 정보가 존재 한다. ⇒ 추가 정보 : R(read), W(write), X(execute), A(apend) ⇒ STM는 페이징 시스템처럼 시스템에 존재하는 프로세스마다 하나씩 존재하며 보통 커널 공간에 두며 커널을 관리 한다.