본문/내용
컴퓨터의 가상 기억장치
1. 들어가며
컴퓨터의 가상기억장치의 개념은 Atlas 컴퓨터시스템에서 처음 나타났다. 이러한 가상기억장치를 구현하는 가장 일반적인 두 가지 방법은 페이지 기법과 세그먼트기법이다
◎ 페이지 기법(PAGING) : 블럭의 크기가 동일한 고정된 크기로 가상 기억장소를 구성하는 방법
◎ 세그먼트기법(SEGMENTATION) : 블럭의 크기가 다른 가변적인 크기로 가상기억장소를 구성하는 방법
2. 가상기억장치의 개념
- 실행 프로세스가 참조하는 주소를 가상주소(virtual address)
- 주기억장소에서 사용할 수 있는 주소를 실주소(real address)라 한다.
? 프로세스는 오직 가상주소만을 참조하지만, 그들은 실제로 실기억장치에서 실행되어야 하므로, 프로세스가 실행되면 가상주소는 실주소에 사상되어야 한다.
? 프로세스가 실행되는 동안 가상주소를 실주소로 바꾸는 절차를 동적주소 변환(DAT:Dynamic Address Translation)이라고 하고 프로세스의 가상주소공간에서 연속인 주소가 실주소에서 연속일 필요가 없다는 인위적 연속성을 가지고 있으며, 사용자는 프로시쥬어와 데이타가 실기억장치의 어디에 위치할 것에 대해 염려할 필요가 없다.
3. 블록사상
◎ 동적주소변환은 가상기억장소 위치가 현재 실기억장치의 어디에 위치 하는지를 나타내 주는 주소변환사상을 유지해야한다.
◎ 정보를 블럭으로 분류하며 시스템은 여러 가상기억장소 블럭이 실기억 장치의 어느 곳에 위치하는지만을 관리하기 위해서는 블럭사상이 필요하게 된다.
◎ 블럭사상 시스템의 주소는 이차원적으로 특정항목을 참조하기 위해 프로그램은 그 항목이 들어 있는 블럭과 그 블럭의 시작 부분으로부터 항목까지의 변위(displacement)를 지정한다.
- 각각의 프로세…
4. 페이지 기법
(1) 직접사상에 의한 페이지 기법
(2) 연관사상에 의한 페이지 기법
(3) 연관 / 직접 사상에 의한 페이지 기법
(4) 세그먼트 기법
위치시키게 되므로 직접사상은 첨자를 통하여 배열의 위치로 접근하는 것과 유사하다.
? 주기억장치 주기시간은 보통 명령어 수행주기 + 페이지 사상주기가 필요하므로 직접사상에 의한 페이지 주소 변환을 사용시 컴퓨터 시스템으로 하여금 프로 그램을 약 절반의 속도로 수행하게 하는 원인이 된다. 이를 해소하기 위해 캐쉬 기억장치를 이용하여 완전한 직접사상용 페이지 사상표를 구현하여 효용성을 증대시키기도 한다.
(2) 연관사상에 의한 페이지 기법
◎ 위치지정이 아닌 내용지정의 연관기억장치(associative storage)에 모든 페이지 사상테이블을 놓은 것이다. 즉, 주기억장치보다 빠른 주기시간을 갖는 연관기억장치에 페이지 사상표를 넣는 방법을 말한다. 그러나 이 방법은 비용이 많이 든다는 단점이 있다.
◎ 실행프로세스는 가상주소를 v = (p,d)로 참조한다.
- 페이지 p를 찾기 위해 연관기억장치의 모든 내용이 동시에 탐색됨.
- 페이지 p에 대응하는 페이지 프레임 p`를 반환하고 p`는 변위 d 와 합쳐져서 실제주소 r 을 형성한다.
(3) 연관 / 직접 사상에 의한 페이지 기법
◎ 한 프로세스의 전체 페이지 사상표의 일부분만 수용할 수 있는 크기의 연관기억장치를 이용(가장 최근에 참조한 페이지 항목만을 유지)
◎ 실행프로그램은 가상주소를 v = (p,d)로 참조한다.
- 부분적 연관 페이지 사상테이블에서 페이지 p를 찾는 것을 시도한다.
- p가 그곳에 있다면, 연관사상 테이블은 가상 페이지 p에 사상하는 프레임 p`를 반환하고, p`는 변위 d와 합쳐져서 가상주소 v = (p,d)에 사상하는 실제주소 r 을 형성한다.
◎ 부분적 연관 페이지 사상표가 좋은 성능을 발휘하기 위해 반드시 클 필요가 없다. 실제로 8 ~ 17개 정도면 90%정도의 성능을 얻는다. → 프로세스의 지역성(locality)때문
(4) 세그먼트 기법
◎ 프로그램(및 데이타)가 여러개의 분리된 실기억장치