Download presentation
Presentation is loading. Please wait.
1
8 가상 메모리
2
학습목표 내용 가상 메모리의 개념과 요구 페이징의 장단점을 살펴본다.
페이지 대치 알고리즘 등 가상 메모리에 필요한 여러 알고리즘에 대해 배운다. 가상 메모리를 사용할 때 고려해야 할 사항에는 무엇이 있는지 확인한다. 내용 가상 메모리의 개념 요구 페이징 페이지 대치 알고리즘 프레임 할당 알고리즘 프로세스 적재 정책 기타 고려 사항
3
1. 가상 메모리의 개념 가상 메모리의 등장 배경 가상 메모리(Virtual Memory)
1960년 영국 맨체스터 대학교에서 제작된 아틀라스 컴퓨터 시스템에서 처음 등장. 메인 메모리보다 용량이 큰 기억 공간에 주소지정이 가능한 메모리 관리 기법. - 디스크라는 커다란 메모리 공간을 가상의 메모리 공간으로 사용하는 방법. [그림 8-1] 메모리 계층 구조. - 페이징 시스템으로 가상 메모리 시스템을 구현. - 메인 메모리를 보다 효율적으로 사용할 수 있어 더 많은 작업을 메모리에 적재 가능. - 사용자(프로그래머)에게 메인 메모리의 제한된 용량 사용과 중첩 사용 문제를 해결해 줌. [그림 8-1] 메모리 계층 구조
4
1. 가상 메모리의 개념 프로그램 전체가 동시에 실행되지 않는 특징을 이용. 가상 메모리 관리 기법이 운영 가능한 이유.
부분적인 적재만으로도 프로그램 실행 가능. 실제로 프로세스를 실행하는 데 꼭 필요한 부분만 메인 메모리에 저장하고 나머지는 2차 기억장치(디스크)에 저장. [그림 8-2] 가상 메모리 공간에 있는 다양한 프로세스 항목이 2차 기억장치에 분산 적재 된 후 프로세스가 실행되면서 메인 메모리로 이동한 결과. [그림 8-2] 실행 중인 프로세스 항목이 2차 기억장치에서 메인 메모리로 이동 가상 메모리 관리 기법이 운영 가능한 이유. 실제적으로 모든 프로그램이 항상 동시에 사용되지 않기 때문. 아래의 현상을 적절히 활용하기 때문. - 예외적인 오류 조건을 처리하는 오류 코드 루틴의 경우, 자주 필요하지 않으며 발생하지 않을 수 있음. - 행렬(배열), 리스트, 테이블 등의 크기는 실제로 사용된 크기보다 정의된 크기가 항상 클 수 있음. - 문서 편집기(Text Editor)에서 자주 사용되지 않는 메뉴인 복사, 붙이기, 잘라내기, 삽입 등은 실제로 선택한 한 개의 메뉴만 적재하고 나머지는 메모리에서 내보내도 됨.
5
1. 가상 메모리의 개념 장단점. 실행 중인 프로세스의 참조 주소와 메인 메모리에서 사용하는 주소가 분리되어야 함. 장점.
- 프로그래밍 작업이 쉬우며, 공간의 제약이 없으므로 중첩을 작성할 필요가 없음. - 공간이 부족해도 부분 적재가 가능하여 많은 작업을 실행할 수 있어 프로세서의 이용률과 처리율 향상 . 단점. - 메모리와 디스크 공간 사이의 이동량 증가에 따른 교체 공간의 확보. - 어느 시기에 어느 페이지를 적재하고 다시 복귀시킬 것인가에 대한 페이징 알고리즘의 결정. - 페이지 부재에 대한 처리 방안 요구. 실행 중인 프로세스의 참조 주소와 메인 메모리에서 사용하는 주소가 분리되어야 함. 수행 중인 프로세스가 참조하는 주소를 가상주소(논리적 주소, 프로그램 주소) 사상(Mapping) : 가상 주소를 실제 물리적 주소로 변환하는 과정. 프로그램 주소 공간(가상 주소)을 V, 메인 메모리 공간(실제주소)을 R이라 할 경우 사상(F)에 의해 가상 메모리는 아래와 같이 정의됨.
6
1. 가상 메모리의 개념 동적 주소 변환(DAT, Dynamic Address Translation) 기법.
[그림 8-3] 가상 주소 V가 메인 메모리 R에 적재되어 있는 경우. [그림 8-3] 가상 기억 공간과 실제 주소 공간의 사상 동적 주소 변환(DAT, Dynamic Address Translation) 기법. 인위적 연속성 성질을 가지므로 프로세스의 가상 주소 공간에 있는 연속적인 주소를 물리 주소공간에 연속적으로 저장할 필요 없음을 의미. - 인위적 연속성 : 가상 주소 공간상의 연속적인 주소가 메인 메모리에서 연속적일 필요 없음.[그림8-4] 사용자는 DAT와 인위적 연속성에 의해 프로그램과 데이터의 적재 위치를 고려할 필요 없 음. [그림 8-4] 동적 주소 변환(DAT)
7
1. 가상 메모리의 개념 메인 메모리 공유를 위해 메모리 관리 기법 활용.
여러 사용자가 메인 메모리 공유를 위해 메인 메모리보다 큰 보조기억장치에 데이터나 프로그램을 저장하고 유지할 수 있는 방법 필요. [그림 8-5] 2단계 메모리 관리 기법. - 단계 1 : 프로세스가 수행되고 참조 데이터를 저장하는 1차 기억 장소인 메인 메모리. - 단계 2 : 제한된 메인 메모리에 들어갈 수 없는 데이터를 저장하는 디스크와 같은 대용량의 2차 기억 장치. [그림 8-5] 2단계 메모리 관리 기법 - 단계 2에서 사용하는 메모리를 2차 기억장치라고 하며, 프로세스가 수행되려면 해당되는 모든 코드와 데이터가 메인 메모리(물리적 기억장치)에 저장되어야 함.
8
1. 가상 메모리의 개념 블록 사상 블록 단위로 처리하는 기법.
DAT기법은 가상 메모리가 실제 물리메모리의 어느 부분에 존재하는가를 나타내는 주소사 상테이블을 유지. 사상이 Byte, Word 단위로 이루어질 경우 주소 사상 테이블(Address Mapping Table) 유지를 위한 정보량이 커짐. 사상 정보의 양(테이블)을 줄이기 위해 주소를 블록 단위로 처리하는 관리 기법. - 블록은 가상 메모리의 분할 단위로, 블록의 크기가 일정하면 블록을 페이지라 하며 블록화 방법을 페이징 기법이라 함. - 블록의 크기가 다를 경우 세그먼트라 하며 세그먼테이션 기법이라 함. [그림 8-6] 가상 메모리와 보조기억장치(디스크)와의 사상. - 시스템이 블록의 위치만을 유지하고 추적하므로 효율적인 관리 가능. - 블록의 평균 크기가 클수록 주소사상의 정보의 양(테이블 크기)은 적어지나, 내부 단편화로 인한 2차 기억장치와 메인 메모리 주소사상 시간이 더 요구될 수 있음. [그림 8-6] 실제 메모리를 확장한 가상 메모리
9
1. 가상 메모리의 개념 블록 가상 시스템은 2차원적 주소체계를 가짐.
[그림 8-7] 블록사상 시스템에서의 가상 주소체계 [그림 8-8] 프로세스 실행 동안 가상 주소 V=(b, d)로부터 메모리 주소 r로 변환되는 과정. - 시스템은 메모리에 각 프로세스의 블록 사상 테이블을 유지함. - 시작점 레지스터(Block Table Origin Register)에는 메모리 주소 a가 들어 있음. - 블록 사상 테이블의 항목은 블록번호(b)와 프로세스의 블록사상테이블의 기준 주소(a)를 더하여 메모리의 주소 b’을 얻음. - 변위(d) 값을 더하여 실제 메모리 주소는 r= b’ + d로 계산. [그림 8-8] 블록 사상을 통한 가상 주소 변환
10
1. 가상 메모리의 개념 가상 주소와 테이블 항목 가상 주소는 순서를 가지는 쌍 V=(p, d) 표시, 페이지 번호와 페이지 변위로 구성. 16bit의 가상 주소가 1KB(=1024byte=210) 크기의 페이지를 사용할 경우. - 가상 주소 1502( )의 경우 최하위 bit 10개는 페이지 변위( ), 최상위 bit 6개(000001)는 페이지 번호(프레임)를 나타냄. 32bit의 논리 주소와 4KB(=212) 크기의 페이지를 사용할 경우. - 페이지 변위는 12bit(4KB=212), 페이지 프레임 번호는 20bit를 사용하여 220(1,048,576)개의 페이 지 테이블 항목(프레임)으로 구성됨. - 페이지 테이블은 항목 당 4byte(32bit) 크기를 유지함. 페이지는 블록 단위로 디스크에서 메인 메모리로 옮겨져 메인 메모리의 한 블록(페이지 프레임)에 자리 잡음. 메인 메모리는 가상 페이지와 같은 크기의 페이지 프레임들로 분할. 페이지는 사용 가능한 어떤 페이지 프레임에도 들어갈 수 있음.
11
1. 가상 메모리의 개념 [그림 8-9] 페이지 테이블 항목 구성. 제어비트와 프레임 번호로 구성됨.
[그림 8-9] 페이징 시스템에서의 가상 주소와 페이지 테이블 항목 페이지 테이블 항목(PTE, Page Table Entry)의 제어비트. - P 플래그 : 참조 페이지의 메인 메모리 저장 여부. - R/W 플래그 : 쓰기/읽기 액세스 권한 포함. - U/S 플래그 : 사용자/슈퍼사용자에 대한 페이지(페이지 테이블) 액세스 권한 포함. - PWT, PCD 플래그 : 하드웨어 캐시에 의한 페이지(페이지 테이블) 처리. - A 플래그 : 페이지 프레임에 따른 페이징 단위 주소 적용. - D(M) 플래그 : 페이지 수정 여부. - PAT 플래그 :페이지 테이블 속성 색인. - G 프래그 : 페이지 테이블 항목 적용. - 나머지 bit는 시스템 프로그래머 사용 가능.
12
1. 가상 메모리의 개념 [그림 8-10] 가상(논리) 주소에서 물리 주소로 변환 과정.
가상 주소의 페이지 번호(0x2)를 페이지 테이블에서 색인, 프레임 번호 (0x8)을 얻음. 프레임 번호(0x8)와 페이지 변위에 접속, 메인 메모리의 주소(물리 주소)를 구함. 페이지 프레임 번호가 {1, 2, … n}이라 가정하면, 실제 메모리 주소 r(=프레임 번호ⅹ페이 지 크기 + d)로 나타냄. - 실제 물리 메모리 주소는 페이지 프레임 번호와 페이지 크기를 곱한 결과. [그림 8-10] 페이징 시스템에서의 가상 주소 변환
13
2. 요구 페이징 요구 페이징 기법 스왑 기법을 사용하는 페이징 시스템과 비슷함.
[그림 8-11] 연속된 디스크 공간에 교체시킨 페이지화된 메모리 요구 페이징 기법 스왑 기법을 사용하는 페이징 시스템과 비슷함. 프로그램을 실행하기 위해 프로그램의 일부만을 메인 메모리에 적재. 순차적으로 작성되어 있는 프로그램의 일부(모듈)를 처리할 때 다른 부분은 실행되지 않는다는 사실을 이용함. - 예) 프로그램 B의 일부 모듈이 실행될 때 프로그램 A의 실행 중인 모듈은 보조기억장치에 저장됨. 오류 처리 루틴의 실행 과정, 과도한 공간 확보, 모듈의 일부 처리 시 발생. - 오류 처리 루틴의 실행 과정 : 일부 오류 발생 시 해당 오류 처리 루틴만이 필요하고, 나머지 루틴은 디스크에 저장. - 과도한 공간 확보 : 배열 선언. 프로세스는 디스크에 저장되었다가 수행될 때, 메인 메모리에 직접 적재하지 않고 지연 교 환기(Lazy Swapper)를 사용해 적재함. - 페이지 요구가 있을 때 요구 페이지를 메모리에 교체하며 동시에 모든 페이지를 교체하지 않음. - 사용되지 않는 페이지를 메모리에 읽어 들이는 것을 예방, 교체시간 감소, 기억 공간 감소 및 다중 프로그래밍 정도를 증가시킴.
14
2. 요구 페이징 요구 페이징의 기본 개념 타당-비타당을 나타내는 bit를 페이지 테이블의 각 항목에 추가함.
[그림 8-12] 타당/비타당 비트가 추가된 페이지 테이블. - 타당 비트(v)로 설정된 경우 해당 페이지가 물리적 메모리에 있음을 의미함. - 비타당 비트(i)로 설정된 경우 페이지는 보조기억장치(디스크)에 있음을 의미함. - 프로그램이 메모리에 저장되지 않은 페이지 사용 시 페이지 부재(Page Fault)가 발생하며, 이때 액세스 방지를 위해 타당/비타당 비트를 이용하여 처리함. - 페이지테이블의 프레임번호 0,2,5는 타당비트(v)로 표시 : 물리적 메모리에 적재되어 있음을 나타냄. - 페이지테이블의 프레임번호 1,3,4,6,7 은 비타당비트(i)로 표시 : 보조기억장치 에(디스크) 적재되어 있음을 나타냄. [그림 8-12] 타당/비타당 비트가 추가된 페이지 테이블
15
2. 요구 페이징 비타당 비트. 프로그램이 비타당 비트로 표시된 페이지에 액세스 하지 않는 경우 비타당 비트의 여부는 프로그램의 실행에 영향을 주지 않음. 메모리에 가져오지 않은 페이지에 대해 프로그램이 액세스하는 경우 페이지 부재로 운영체 제에 트랩 발생. - 무효 주소에 의한 오류. 페이지 부재. [그림 8-13] 페이징 시스템의 페이지 부재. - 프로세서에 의해 생성된 가상(논리) 주소 V=(p, d)에서 페이지 번호(p)는 주소번역(페이지 테이블 레지스터)과정을 통해 페이지 테이블에서 해당 페이지 테이블 항목에 접속. - 메모리에 지정된 프레임의 저장 여부 확인. (페이지 타당, 비타당 비트 확인) - 지정된 프레임 페이지가 메인 메모리에 저장되어 있으면 프레임 번호와 변위 결합하여 물리주소 생성. - 저장되어 있지 않다면 페이지 부재로 해당 페이지(프레임)가 디스크에 저장되어 있음을 의미하므로 명 령 재시작. [그림 8-13] 페이징 시스템의 페이지 부재
16
2. 요구 페이징 [그림 8-14] 페이지 부재 처리 과정. ① 프로세스 제어 블록에 있는 내부 테이블을 검사하여 프로세스 참조가 메모리 액세스에 타당한지 부 당한지를 결정 ② 프로세스 참조가 무효화될 경우 프로세스는 중단. 프로세스가 유효한 참조이지만 페이지를 가져오지 않은 경우 페이지를 가져옴. ③ 비어있는 프레임 리스트 중 하나를 선택. ④ 할당된 프레임에 요구된 페이지를 읽어 들이기 위해 디스크 동작을 스케줄함. ⑤ 요구된 페이지가 메모리에 있다는 것을 알리기 위해 페이지 테이블을 수정. ⑥ 주소 트랩에 의해 인터럽트된 명령어들을 다시 시작. [그림 8-14] 페이지 부재 처리과정
17
2. 요구 페이징 순수 요구 페이징. 장단점. 요구될 때까지 페이지를 메모리에 들여놓지 않는 방법. 장점.
- 메모리에 실행할 프로세스의 페이지가 없어도 프로세스는 수행을 시작할 수 있음. 즉, 프로세스를 메모리에 전부 적재하지 않더라도 프로세스를 수행할 수 있다는 의미. - 페이지가 메모리로 들어온 후, 프로세스는 수행을 계속하면서 수행에 필요한 모든 페이지가 메모리에 적재될 때까지 필요할 때마다 페이지 부재를 발생시킴. - 수행에 필요한 모든 페이지가 메모리에 적재되면 프로세스는 더 이상 페이지 부재를 발생시키지 않고 수행을 계속함. 장단점. 장점. - 다중 프로그래밍의 정도를 증가시키고 액세스되지 않은 페이지를 로드하지 않아 메모리가 절약됨. - 프로그램을 시작할 때 적재(로딩) 지연이 적음. - 적은 수의 페이지를 읽으므로 초기 디스크 오버헤드가 적음. - 보호 오류를 페이지 오류로 사용 가능하므로 페이징에 필요한 별도의 하드웨어 지원 불필요함. - 적재된 페이지들 중 하나가 수정될 때까지 페이지들은 여러 프로그램에 의해 공유되므로 공유 페이지 (코드 공유) 기술은 보다 많은 자원 절약 가능. - 프로그램을 실행할 충분한 메모리가 없는 시스템에서도 대용량 프로그램을 실행 가능하며, 프로그래머는 이전 중첩(오버레이) 기법보다 쉽게 구현 가능함.
18
2. 요구 페이징 단점. - 개별 프로그램들은 페이지에 처음 액세스할 때 약간의 지연이 발생함.
- 낮은 비용, 낮은 성능의 시스템에 실행되는 프로그램은 페이지 대체를 지원하는 메모리 관리 장치가 없음. - 메모리 관리(페이지 교체)가 복잡함.
19
2. 요구 페이징 페이지 대치 페이지 대치의 필요성. [그림 8-15] 페이지 대치의 필요성.
- 프로그램 카운터(PC)에 의해 사용자 1의 페이지 M을 적재하면 물리적 메모리에 비어있는 프레임이 없음을 발견. - 사용자 2의 페이지 B는 물리적 메모리에 적재할 수 없음. [그림 8-15] 페이지 대치의 필요성
20
2. 요구 페이징 페이지 대치 기법. 페이지 방식을 취하는 가상 메모리에서 페이지 부재 발생 시 메인 메모리에 있으면서 사용 되지 않는 페이지(희생자)를 없애고 새로운 페이지로 변경. 아래와 같은 방식으로 액세스 됨. ① 비어 있는 프레임이 없다면 현재 사용하지 않는 프레임(희생자)을 찾음. 만약 사용하지 않는 프레임 이 있으면, 발견한 프레임을 비우기 위해 프레임의 내용을 보조기억장치(디스크)에 저장. ② 페이지가 메모리에 더 이상 존재하지 않는다는 것을 알려주기 위해 페이지 테이블을 변화(비타당 비트로 전환)시킴으로써 프레임이 비게 됨. ③ 원하는 페이지(f)를 디스크로부터 읽어 프레임에 저장. ④ 새로운 페이지(f)를 위하여 페이지 테이블을 수정함. [그림 8-16] 페이지 대치
Similar presentations