1 / 67

가상 메모리

8. 가상 메모리. 학습목표 가상 메모리의 개념과 요구 페이징의 장단점을 살펴본다 . 페이지 대치 알고리즘 등 가상 메모리에 필요한 여러 알고리즘에 대해 배운다 . 가상 메모리를 사용할 때 고려해야 할 사항에는 무엇이 있는지 확인한다 . 내용 가상 메모리의 개념 요구 페이징 페이지 대치 알고리즘 프레임 할당 알고리즘 프로세스 적재 정책 기타 고려 사항. 1. 가상 메모리의 개념. 가상 메모리의 등장 배경 가상 메모리 ( Virtual Memory )

gay
Download Presentation

가상 메모리

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 가상 메모리의 개념 • [그림 8-3] 가상 주소 V가 메인 메모리 R에 적재되어 있는 경우. [그림 8-3] 가상 기억 공간과 실제 주소 공간의 사상 • 동적 주소 변환(DAT, Dynamic Address Translation) 기법. • 인위적 연속성 성질을 가지므로 프로세스의 가상 주소 공간에 있는 연속적인 주소를 물리 주소공간에 연속적으로 저장할 필요 없음. - 인위적 연속성 : 가상 주소 공간상의 연속적인 주소가 메인 메모리에서 연속적일 필요 없음. • 사용자는 프로그램과 데이터의 적재 위치를 고려할 필요 없음. - 중첩 관련 작업 수행이 필요 없으며, 하드웨어 구조와 상관없이 알고리즘의 효율성과 프로그램 구조를 고려함. [그림 8-4] 동적 주소 변환(DAT)

  7. 1. 가상 메모리의 개념 • 메인 메모리 공유를 위해 메모리 관리 기법 활용. • 여러 사용자가 메인 메모리 공유를 위해 메인 메모리보다 큰 보조기억장치에 데이터나 프로그램을 저장, 유지할 수 있는 방법 필요. • [그림 8-5] 2단계 메모리 관리 기법. - 단계 1 : 프로세스가 수행되고 참조 데이터를 저장하는 1차 기억 장소인 메인 메모리. - 단계 2 : 제한된 메인 메모리에 들어갈 수 없는 데이터를 저장하는 디스크와 같은 대용량의 2차 기억 장치. [그림 8-5] 2단계 메모리 관리 기법

  8. 1. 가상 메모리의 개념 • 블록 사상 • 블록 단위로 처리. • 사상이 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’을 얻음. - 변위 값을 더하여 실제 메모리 주소는 r= b’ + d로 계산되며, b’는 실제 메모리 주소 a + b의위치에 있는 블록사상테이블의 셀에 저장됨. [그림 8-8] 블록 사상을 통한 가상 주소 변환

  10. 1. 가상 메모리의 개념 • 가상 주소와 테이블 항목 • 가상 주소는 순서를 가지는 쌍 V=(p, d)표시, 페이지 번호와 페이지 변위로 구성. • 16bit의 가상 주소가 1KB(=1024byte) 크기의 페이지를 사용할 경우. - 가상 주소 1502(0000 0101 1101 1110)의 경우 최하위 bit 10개는 페이지 변위(0111011110), 최상위 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. 요구 페이징 • 요구 페이징 기법 • 스왑 기법을 사용하는 페이징 시스템과 비슷함. • 프로그램을 실행하기 위해 프로그램의 일부만을 메인 메모리에 적재. • 순차적으로 작성되어 있는 프로그램의 일부(모듈)을처리할 때 다른 부분은 실행되지 않는다는 사실을 이용함. • 오류 처리 루틴의 실행 과정, 과도한 공간 확보, 모듈의 일부 처리 시 발생. - 오류 처리 루틴의 실행 과정 : 일부 오류 발생 시 해당 오류 처리 루틴만이 필요하고, 나머지 루틴은 디스크에 저장. - 과도한 공간 확보 : 배열 선언. • 프로세스는 디스크에 저장되었다가 수행될 때, 직접 적재하지 않고 지연 교환기(Lazy Swapper)를 사용해 메인 메모리에 적재함. - 페이지 요구가 있을 때 요구 페이지를 메모리에 교체, 동시에 모든 페이지를 교체하지 않음. - 사용되지 않는 페이지를 메모리에 읽어 들이는 것을 예방, 교체시간, 기억 공간 감소 및 다중 프로그래밍 정도를 증가시킴. [그림 8-11] 연속된 디스크 공간에 교체시킨 페이지화된 메모리

  14. 2. 요구 페이징 • 요구 페이징의 기본 개념 • 타당-비타당을 나타내는 bit를 페이지 테이블의 각 항목에 추가함. • [그림 8-12] 타당/비타당 비트가 추가된 페이지 테이블. - 타당 비트(v)로 설정된 경우 해당 페이지가 물리적 메모리에 있음을 의미함. - 비타당 비트(i)로 설정된 경우 페이지는 보조기억장치(디스크)에 있음을 의미함. - 저장되지 않은 페이지 사용 시 페이지 부재(Page Fault) 발생하며, 이때 액세스 방지를 위해 타당/비타당 비트를 이용하여 처리함. [그림 8-12] 타당/비타당 비트가 추가된 페이지 테이블

  15. 2. 요구 페이징 • 비타당 비트. • 프로그램이 비타당 비트로 표시된 페이지에 액세스 하지 않는 경우 실행에 영향을 주지 않음. • 프로그램이 액세스하는 경우 페이지 부재로 운영체제에 트랩 발생. - 무효 주소에 의한 오류. • 페이지 부재. • [그림 8-13] 페이징 시스템의 페이지 부재. - 프로세서에 의해 생성되니 가상(논리) 주소 V=(p, d)에서 페이지 번호(p)는 주소번역(페이지 테이블 레지스터)과정을 통해 페이지 테이블에서 해당 페이지 테이블 항목에 접속. - 메모리에 지정된 프레임의 저장 여부 확인. - 지정된 프레임 페이지가 저장되어 있지 않는 경우 프레임 번호와 변위 결합, 물리주소 생성. - 페이지 부재로 해당 페이지(프레임)가 디스크에 저장되어 있음을 의미하므로 명령 재시작. [그림 8-13] 페이징 시스템의 페이지 부재

  16. 2. 요구 페이징 • [그림 8-14] 페이지 부재 처리 과정. ① 프로세스 제어 블록에 있는 내부 테이블 검사, 프로세스 참조가 메모리 액세스에 타당한지부당한지 결정함. ② 프로세스 참조가 무효화될 경우 프로세스는 중단. 프로세스가 유효한 참조이나 페이지를 가져오지 않은 경우 페이지를 가져옴. ③ 비어있는 프레임 리스트 중 하나를 선택. ④ 할당된 프레임에 요구된 페이지를 읽어 들이기 위해 디스크 동작을 스케줄함. ⑤ 요구된 페이지가 메모리에 있다는 것을 알리기 위해 페이지 테이블을 수정. ⑥ 주요 트랩에 의해 인터럽트된 명령어들을 다시 시작. [그림 8-14] 페이지 부재 처리과정

  17. 2. 요구 페이징 • 순수 요구 페이징. • 요구가 계속될 때까지 페이지를 메모리에 들여놓지 않는 방법. - 메모리에 실행할 프로세스의 페이지가 없어도 프로세스는 수행을 시작할 수 있음. - 프로세스는 최소의 명령으로 페이지 부재를 일으킴. - 페이지가 메모리로 들어온 후, 프로세스는 수행을 계속하면서 수행에 필요한 모든 페이지가 메모리에 적재될 대까지 필요할 때마다 페이지 부재를 발생시킴. - 수행에 필요한 모든 페이지가 메모리에 적재되면 프로세스는 더 이상 페이지 부재를 발생시키지 않고 수행을 계속함. • 장단점. • 장점. - 다중 프로그래밍의 정도를 증가시키고 액세스되지 않은 페이지를 로드 하지 않아 메모리가 절약됨. - 프로그램을 시작할 때 적재(로딩) 지연이 적음. - 적은 수의 페이지를 읽으므로 초기 디스크 오버헤드가 적음. - 보호 오류를 페이지 오류로 사용 가능하므로 페이징에 필요한 별도의 하드웨어 지원 불필요함. - 적재된 페이지들 중 하나가 수정될 때까지 페이지들은 여러 프로그램에 의해 공유되므로 공유 페이지 (코드 공유) 기술은 보다 많은 자원 절약 가능. - 프로그램을 실행할 충분한 메모리가 없는 시스템에서도 대용량 프로그램을 실행 가능하며, 프로그래머는 이전 중첩(오버레이) 기법보다 쉽게 구현 가능함.

  18. 2. 요구 페이징 • 단점. - 개별 프로그램들은 페이지에 처음 액세스할 때 약간의 지연이 발생함. - 프리 페이징은 마지막으로 수행한 몇 개의 페이지를 미리 불러오는 방법으로 성능을 향상시킴. - 낮은 비용, 낮은 성능의 시스템에 실행되는 프로그램은 페이지 대체를 지원하는 메모리 관리 장치가 없음. - 메모리 관리(페이지 교체)가 복잡함. • 페이지 성능 • 요구 페이지된 메모리의 유효액세스시간. • 메모리 액세스시간(Ma)은 대부분 10~ 200ns(Nano Second). • 페이지 부재가 발생하지 않는 경우 유효액세스시간은 메모리액세스시간과 동일함. • 페이지 부재 발생 시 보조기억장치에서 관련 페이지를 읽은 후 요구된 단어에 액세스하여 더 많은 시간이 소요됨. • 페이지 부재의 확률이 p라고 가정함(0 ≤ p ≤ 1). - p는 0에 매우 가까운, 약간의 페이지 부재율이 있다고 가정함.

  19. 2. 요구 페이징 • 페이지 부재 시간 계산. • 유효액세스시간 계산을 위해 페이지 부재시간을 계산하여야 함. • 페이지 부재 시에 처리하는 인터럽트 처리시간과 페이지 교체시간, 프로세스 재시작 과정이 필요함. - 인터럽트 처리 및 프로세스 재시작 과정은 수백 개의 명령어로 구성, 짧은 시간 (약 1~1000microsecond 범위)에 처리 가능. - 페이지 교체시간은 디스크의 헤드 이동에 따른 탐색시간(5millisecond-ms)과 지연시간(3ms), 전송시간(0.05ms) 등으로 대략 8ms로 예상됨. - 소프트웨어와 하드웨어 시간을 포함한 총 페이지부재시간 처리는 약 8ms임. • 평균 페이지부재 처리시간이 8ms이며, 메모리 액세스시간이 200ns일 경우.

  20. 2. 요구 페이징 • 유효액세스 시간 감속. • 유효액세스시간은 페이지 부재율에 비례함. • 1,000개 중 한 개의 액세스에 페이지 부재 발생 시 유효액세스시간은 8.2(8199.8ns)microsecond. • 요구 페이징으로 인해 유효액세스시간은 40배(메모리 액세스시간은 200ns) 감속됨. • 유효액세스시간을 10% 미만으로 감속, 메모리 액세스시간을 220ns보다 적게 유지하기 위한 조건. • 페이징으로 인한 감속을 적당한 수준에서 유지하기 위해 399,990(=1/0.00000250006250)번중 한 번의 메모리 액세스가 페이지 부재 발생율 보다 더 낮은 비율로 발생해야 함. ※ 페이지 부재율이 높을 경우 유효액세스시간이 증가하며, 프로세스 수행시간이 늦어짐. ※ 대부분의 페이지가 처음 참조될 때 부재가 발생하고 이후에는 메모리에 저장되어 있어 페이지 부재율이 발생하지 않을 수 있음.

  21. 2. 요구 페이징 • 페이지 대치 • 페이지 대치의 필요성. • [그림 8-15] 페이지 대치의 필요성. - 프로그램 카운터(PC)에 의해 사용자 1의 페이지 M을 적재하면 물리적 메모리에 비어있는 프레임이 없음을 발견. - 사용자 2의 페이지 B는물리적 메모리에 적재할 수 없음. [그림 8-15] 페이지 대치의 필요성

  22. 2. 요구 페이징 • 페이지 대치 기법. • 페이지 방식을 취하는 가상 메모리에서 페이지 부재 발생 시 메인 메모리에 있으면서 사용되지 않는 페이지를 없애고 새로운 페이지로 변경. • 아래와 같은 방식으로 액세스 됨. ① 비어 있는 프레임이 없다면 현재 사용하지 않는 프레임(희생자)을 찾음. 사용하지 않는 프레임이 있는 경우 발견한 프레임을 비우기 위해 프레임의 내용을 보조기억장치(디스크)에 저장. ② 페이지가 메모리에 더 이상 존재하지 않는다는 것을 알려주기 위해 페이지 테이블을 변화(비타당 비트로 전환)시킴으로써 프레임이 비게 됨. ③ 원하는 페이지(f)를 디스크로부터 읽어 프레임에 저장. ④ 새로운 페이지(f)를 위하여 페이지 테이블을 수정함. [그림 8-16] 페이지 대치

  23. 1. 가상 메모리의 개념 • 프로그램에 의해 빈 프레임은 부재된 페이지 수용을 위해 사용됨. • 페이지 부재 서비스 루틴은 페이지 대치를 포함하도록 수정됨. • 페이지 대치 과정. ① 디스크에서 요구한 페이지의 위치 확인. ② 빈 프레임을 찾음. - 빈 프레임이 발견되면 빈 프레임을 사용. - 빈 프레임이 발견되지 않으면 희생 프레임 선정을 위해 페이지 대치 알고리즘 사용. - 희생 페이지는 디스크에 기록, 페이지와 프레임 테이블을 수정함. ③ 요구된 페이지를 읽어 들이고 페이지와 프레임 테이블을 수정. ④ 사용자 프로세스를 시작함. • 페이지 부재로 인한 페이지 대치 과정은 페이지 부재 처리 시간이 증가하는 결과를 가져와 액세스 시간이 증가하므로 시스템에 부담이 됨. - 페이지 두 개가 이동(하나는 나오고 하나는 들어감). - 수정된 비트를 활용하여 부담을 감소시킬 수 있음. • 페이지 대치는 요구 페이징의 기본 요소로논리적 공간과 실제 메모리 공간을 완벽히 분리해주므로 프로그래머는 실제 메모리에서 매우 큰 가상 메모리(디스크)를 제공할 수 있음.

  24. 3. 페이지 대치 알고리즘 • 페이지 부재와 프레임 개수 • 참조 문자열을 이용한 페이지 부재 횟수와 프레임 개수와의 관계. • 참조문자열은 메모리를 참조하는 페이지를 의미함. • 프레임 수가 증가하면 페이지 부재수가 감소함. - 위의 참조 문자열에 대해 세 개 또는 그 이상의 프레임을 가진 경우, 총 3번의 페이지 부재 발생. - 한 프레임만 이용할 수 있는 경우 각 참조마다 페이지 대치가 필요하며 결과적으로 11번의 부재 발생. • [그림 8-17] 페이지 부재와 프레임 개수 그래프. - 프레임 수가 증가함에 따라 페이지 부재의 수가 최소한도의 수준으로 내려감. [그림 8-17] 페이지 부재와 프레임 개수

  25. 3. 페이지 대치 알고리즘 ※ 페이지 대치 알고리즘을 확인하기 위해 아래 참조 문자열을 프레임이 3개인 메모리에 사용함. • 선입선출(FIFO, First-In-First-Out) 대치 알고리즘 • 각 페이지가 메모리 안으로 들어간 시간을 이용. • 가장 오래된 페이지부터 우선 대치시킴. • 페이지 부재 발생 시, 즉 제거해야 할 페이지 선택 후 보조기억장치로 이동교체시키고 페이지 테이블의 타당/비타당 비트를 변경함. • 새로운 페이지에 대한 페이지 테이블 항목 변경 후 FIFO큐의 마지막 위치에 삽입. [그림 8-18] 선입선출(FIFO) 대치 알고리즘

  26. 3. 페이지 대치 알고리즘 • 선입선출 큐(FIFO Queue)에 의해 메모리의 모든 페이지가 관리됨. • 큐의 헤드부분에 있는 페이지를 먼저 대치함. • 큐에 있는 페이지가 메모리로 들어갈 때 큐의 끝 페이지가 삽입. • 큐의 크기는 사용 가능한 메모리 프레임의 수에 해당됨. • [그림 8-19] 선입선출(FIFO) 대치 알고리즘의 실행 - 세 개의 프레임을 사용할 수 있다 가정하고 앞의 참조 문자열을 실행, 페이지 부재는 15번 발생함. [그림 8-19] 선입선출(FIFO) 대치 알고리즘의 실행 ※ 알고리즘의 이해가 쉽고 프로그램의 작성이 쉬움.

  27. 3. 페이지 대치 알고리즘 • 문제점. • 벨레디의 변이(Belady’s Anomaly) 발생. - 할당되는 프레임의 수가 증가해도 페이지 부재율이 증가하는 현상. - 이로 인해 최적 페이지 대치 알고리즘을 추구하는 경향 발생. • 아래의 참조 문자열을 적용하여 문제점 확인. [그림 8-21] 벨레디의 변이 현상 [그림 8-20] 프레임별 실행결과

  28. 3. 페이지 대치 알고리즘 • 최적(Optimal) 페이지 대치 알고리즘 • 모든알고리즘 중 페이지 부재율이 가장 낮음. • ‘앞으로 가장 오랜 기간 동안 사용하지 않을 페이지를 대치하라’는 사상을 표현. • 고정된 프레임 수에 대해 가능한 가장 낮은 페이지 부재율이 보장됨. • [그림 8-22] 최적 페이지 대치 알고리즘. - 앞의 참조 문자열을 적용한 경우, 총 9번의 페이지 부재가 발생함. [그림 8-22] 최적 페이지 대치 알고리즘 ※ 현실적인 구현이 어려우며, 비교 연구를 위해 주로 사용됨. - 참조 문자열이 언제 사용될 것인가에 대한 정확한 정보를 요구함.

  29. 3. 페이지 대치 알고리즘 • 최근 최소사용(LRU, Least Recently Used) 알고리즘 • 과거의 데이터를 이용, 미래를 예측하기 위한 통계적 개념. • 메모리의 지역성을 이용한 알고리즘으로 각 페이지에 마지막으로 사용된 시간을 연관시킴. • 페이지 대치 시, 오랫동안 사용하지 않은 페이지를 선택. - 시간적으로 거꾸로 찾는 최적 페이지 대치 알고리즘이라 할 수 있음. • [그림 8-23] 최근 최소사용(LRU) 알고리즘. - 앞의 참조 문자열 적용 시, 12번의 페이지 부재를 일으킴. - 처음 5번의 부재 처리 과정은 최적 대치 알고리즘과 같으나, 이후 페이지 4에 대한 참조가 일어날 때 메모리 속 페이지 중 가장 늦게 사용한 페이지 2를 선택하여 대치함. - 만약 페이지 2에 부재 발생 시, {0, 3, 4} 중 가장 늦게 사용한 페이지 3으로 대치함. [그림 8-23] 최근 최소사용(LRU) 알고리즘 ※ 알고리즘의 구현을 위해 하드웨어 지원이 필요함. ※ 프레임(페이지)이 마지막에 사용된 기간을 이용, 정의되는 순서 결정을 위해 계수기 또는 스택을 사용하는 두 가지 방법으로 구현 가능함.

  30. 3. 페이지 대치 알고리즘 • 계수기를 이용한 순서 결정 방법. • 각 페이지 테이블 항목과 사용시간 레지스터를 연관, 프로세서에 논리 클록이나 계수기를 덧붙여 프레임의 순서 결정. - 페이지에 대한 참조가 있을 때마다 클록은 증가함. • 클록 레지스터의 내용은 페이지의 해당 페이지 테이블에 있는 사용시간 레지스터에 복사되어 각 페이지의 최소 참조에 대한 시간을 가짐. - 가장 작은 시간 값을 가진 페이지는 대치됨. • 페이지 탐색과 페이지 테이블의 변화 과정을 유지해야 하는 부담을 고려해야 함. • 스택을 이용한 순서 결정 방법. • 순서 결정을 위해 페이지 번호를 스택(Stack)에 넣어 관리. • 페이지가 참조될 때마다 페이지 번호를 스택의 꼭대기(Top)에 둠. - 꼭대기에 있는 페이지 번호는 가장 최근 사용한 페이지가 되며, 밑바닥(Bottom)에 있는 페이지 번호는 가장 늦게 사용한 페이지가 되어 페이지 부재 시 교체됨. • 필드 비교, 업데이트, 계수기 등의 처리 과정은 생략되나, 스택의 중간에서 항목을 가져오므로 이중 링크의 조작이 필요하여 오버헤드를 증가시킬 수 있음. - 헤드와 꼬리 포인터를 가진 이중 연결리스트를 사용하여 해결 가능. - 탐색시간을 감소시킬 수 있음.

  31. 3. 페이지 대치 알고리즘 • [그림 8-24] 최근의 페이지를 참조한 스택. - a이전의 스택 정보는 꼭대기에 가장 최근에 사용한 페이지 2가 있으며, 밑 바닥에는 가장 오래 전에 사용한 페이지 4를 유지하고 있음. - b이전의 스택에서는 꼭대기에 있는 페이지가 최근 사용한 페이지 7로 교체됨. [그림 8-24] 최근의 페이지를 참조한 스택

  32. 3. 페이지 대치 알고리즘 • 최근 최소사용 근접 알고리즘 • 시스템은 하드웨어의 지원 대신 참조 비트(Reference Bit)의 형태로 지원. • 처음 모든 bit는 0으로 초기화한 후 사용자 프로세스가 수행될 때 참조된 각 페이지와 관련된 bit를 1로 변환, 어느 페이지가 사용되었는지 조사하여 확인 가능. • 부분적인 순서 정보를 활용하여 최근 최소사용 알고리즘에 근사하게 대치 가능한 알고리즘 구현 가능. • 부가된 참조비트 알고리즘. • 각 페이지에 8bit(1byte) 정보에 일정한 간격으로 참조 비트를 기록. • 8bit Shift Register를 이용하여 순서 정보를 얻음. - 각 페이지에 대한 참조비트(1)를 최상위 bit(8bit위, 가장 왼쪽)로삽입 이동하고 나머지 bit들은 한 비트씩 오른쪽으로 이동시켜 가장 낮은 자리 bit는 제거함. • 8bit Shift Register는 최근 8번의 기간 동안 페이지 사용의 기록 정보를 유지함. - Shift Register의 값이 ‘00000000’인경우 8번의 기간 동안 단 한 번도 사용되지 않음을 의미함. - ‘11000100(19610)’은 ‘01110111(11910)’보다 최근 사용되었음을 의미함.

  33. 3. 페이지 대치 알고리즘 • [그림 8-25] 부가된 참조비트 예. - ‘00001011(11)’이 가장 사용빈도가 낮아 페이지 대치 대상임. [그림 8-25] 부가된 참조비트 예 • 8bit를 부호 없는 정수로 해석할 경우 가장 낮은 bit를 가진 페이지는 최근 최소사용(LRU) 페이지(오랫동안 미사용 페이지)이며, 대치 가능함. • 참조 비트의 내용이 동일한 경우 발생 가능. - 모든페이지 프레임이 갖는 참조 비트의 값이 유일하지 않기 때문에 발생함. • 작은 정수값을 갖는 프레임이 두 개 이상 있는 경우 희생자 선정 시점에서 문제 발생. - 희생자를 선정하지 않는 경우는 문제 없음. - 가장 작은 정수값을 갖는 프레임 모두를 희생자로 선택하거나 FIFO의 원칙에 따라 하나를 희생자로 선택함.

  34. 3. 페이지 대치 알고리즘 • 시계(2차적 기회 대치) 알고리즘. • 선입선출(FIFO) 대치 알고리즘을 기반으로 함. • 최근 최소사용(LRU) 알고리즘과 성능은 비슷하나 과부하가 적음. - 각 프레임의 사용여부를 나타내는 참조(사용)비트를 추가. - 페이지가 메모리 내의 프레임에 처음 적재되었을 때 1로 설정한 후, 참조될 때마다 다시 1로 설정. - 프레임들은 원형 버퍼(큐)로 구성되고 각각 관련 포인터를 가짐. - 페이지 교체 시 포인터는 교체된 버퍼 다음 프레임을 가리키도록 설정. • 운영체제가 페이지 교체 시기에 참조비트가 0인 프레임을 찾기 위해 원형 버퍼 검색. - 프레임의 참조비트가 ‘1’이면 ‘0’으로 조정하고 현재 시간으로 고침. - 수정한 페이지에 2차적 기회를 주고 다음 검사 시까지 대치시키지 않음. - 모든 사용비트가 1인 경우 각 페이지에 2차적 기회를 주며 포인터는 전체 큐를 한 바퀴 돌 수도 있음. - 처음 시작한 위치에서 중단하고 그 프레임을 교체대상으로 선택. • 모든 bit가 1인 경우 2차적 알고리즘은 선입선출(FIFO)대치와 같아짐. - 사용비트가 1인 프레임을 통과하는 과정을 제외하면 선입선출(FIFO) 대치 알고리즘과 비슷함. - 원형으로 배치된 것처럼 보여 시계 알고리즘이라고 함. [그림 8-26] 시계 페이지 대치 알고리즘

  35. 3. 페이지 대치 알고리즘 • [그림 8-27] 간단한 시계 알고리즘의 예. - 메인 메모리 프레임 m개로 구성된 원형 버퍼가 버퍼 내의 페이지 1개를 새로운 페이지 420으로 교체하기 직전의 모습. [그림 8-27] 페이지 대치 이전의 버퍼와 페이지 대치 이후의 버퍼 상태 • 시계 알고리즘에 사용비트 추가 시 더 강력한 대치 알고리즘 작성 가능. - 사용 중인 페이지들은 메인 메모리의 각 프레임과 연관되므로 메인 메모리의 각 프레임의 상태를 나타내는 수정(타당/비타당 비트)를이용. - 해당 프레임이 보조기억장치(디스크)에 저장되었는지 확인 가능함. - 페이지를 가져온 후 수정되지 않았으며 최근에 사용되지 않은 페이지를 찾을 수 있으므로 변경되지 않은 페이지가 우선 교체 대상이 되어 시간을 줄일 수 있음.

  36. 3. 페이지 대치 알고리즘 • 최소사용 빈도수(LFU, Least Frequently Used) 알고리즘. • 각페이지마다 참조 횟수에 대한 계수기가 있으며, 가장 작은 수를 가진 페이지를 대치함. - 많이 사용되는 페이지는 큰 참조 횟수 값을 가짐. • 어떤 프로세스의 초기 단계에서 한 페이지가 많이 사용되나 그 후로 다시 사용되지 않을 경우 사용하기 어려움. - 큰 계수를 가진 페이지가 더 이상 필요하지 않음에도 메모리 속에 계속 남음. - 계수기를 어떤 일정한 시간 간격으로 하나씩 오른쪽으로 이동, 지수적으로 감소하는 평균 사용수를 형성하여 해결 가능함. • 최대사용 빈도수(MFU, most Frequently Used) 알고리즘. • 가장작은 계수를 가진 페이지가 방금 들어온 것으로 아직 사용되지 않아, 앞으로 사용할 확률이 높다고 가정하여 대치 페이지 후보에서 제외시킴. • 가장 많이 사용된 페이지(계수가 높은 페이지)를 대치함. ※ LFU, MFU는 구현 시 비용이 많이 들고 최적 페이지 대치에 비해 성능이 떨어져 일반적으로 사용되지 않음.

  37. 3. 페이지 대치 알고리즘 • 페이지 버퍼링(Page Buffering). • FIFO같은 성능 저하를 막기 위해 교체 대상으로 선택된 페이지를 즉시 교체하지 않고 잠시 동안 메인 메모리에 유지함. • 포인터 리스트 두 개를 이용, 페이지를 관리하며, 페이지 대치 알고리즘은 FIFO임. • VAX컴퓨터의 VMS, XP, Mach에서 사용된 방식. • [그림 8-28] 페이지 버퍼링 개념. - 수정 안 된 가용페이지 리스트. : 메모리에 적재된 후에 수정된 적이 없는 프레임 리스트로 교체 불필요. - 변경 페이지 리스트 : 메모리에 적재된 후 수정된 프레임의 리스트로 디스크에 재저장해야 하므로 디스크 기록을 대기함. [그림 8-28] 페이지 버퍼링 개념 • 변경되지 않은 페이지 교체 시, 교체된 페이지는 메모리에 남고 페이지 프레임은 가용 페이지 리스트의 끝에 추가됨. • 변경된 페이지 교체 시, 페이지 프레임을 변경 페이지 리스트의 끝에 추가함.

  38. 3. 페이지 대치 알고리즘 • 페이지 교체 시. - 페이지 테이블 내에 있는 항목만 삭제되어 가용 페이지 리스트나 변경 페이지 리스트에 놓임. - 포인터 리스트의 각 항목은 재배치되는 프레임의 번호 저장. - 가용 페이지 : 항상 사용 가능한 몇 개의 프레임들을 보유, 페이지를 읽어 들일 수 있는 페이지 프레임의 리스트. • 페이지 읽을 때. - 가용 리스트의 헤드가 가리키는 페이지 프레임(가용 페이지 리스트 상의 첫 페이지)이 사용되고 그 페이지는 없어짐. - 페이지 부재 발생 시 리스트 두 개를 검색, 원하는 페이지가 아직 메모리에 있는 지 검사함. - 메모리에 없으면 가용 페이지 리스트의 첫 번째 프레임에 원하는 페이지 적재. • 프로세스가 페이지를 참조하면 오버헤드 없이 페이지가 해당 프로세스의 작업에 추가 가능하여페이지 부재가 해결됨. • 변경 페이지 리스트에 있는 프레임은 일괄 처리되어, 입출력 연산 횟수가 감소하므로디스크 액세스 시간을 줄여줌.

  39. 3. 페이지 대치 알고리즘 • 알고리즘의 비교 분석 • 배르(BAER, 1980년) 발표. • [그림 8-29] 페이지 대치 알고리즘의 비교. - 분석에 사용한 페이지 크기는 256word이며, 프레임 수를 6, 8, 10, 12, 14개로 변경시키면서 실행. - 적은 수의 프레임을 사용할 경우 차이가 크게 나타남. [그림 8-29] 페이지 대치 알고리즘의 비교

  40. 4. 프레임 할당 알고리즘 • 단독 사용자 시스템 • 가상 메모리 시스템의 가장 간단한 구조. • 메모리 크기가 128K인 단일 사용자 마이크로컴퓨터 시스템에서(페이지 크기는 1K), 이 중 운영체제가 35K를 차지한다면 남은 95K는 사용자 프로세스를 위해 남음. - 순수 요구 페이징 방법 적용 시, 프레임 93개 모두 사용가능 프레임 리스트에 포함됨. - 사용자가 프로세스 수행을 시작하면 페이지 부재가 발생함. - 93번까지의 페이지 부재는 사용가능 페이지 리스트에서 대기 중인 페이지를 모두 사용하게 됨. - 따라서 94번째 발생한 페이지 부재 해결을 위한 해결 방법 필요함. • 사용가능 페이지가 없을 때, 페이지 부재 해결 방법. • 페이지 대치 알고리즘을 사용. - 기억 장소 내에 있는 페이지 93개 중 하나를 선택하여 교체하며, 이때 페이지 대치 알고리즘을 호출. • 사용되지 않는 경우 사용자 페이지로 변환시켜 사용. • 사용가능 리스트(93개 중)에서 프레임 3개를 확보, 페이지 부재 발생 시 항상 사용가능 프레임이 존재하도록 함. ※ 다중 프로그래밍 환경에서 기억 장소 내에 동시에 프로그램이 두 개 이상 존재하므로, 여러 개의 프로세스에 프레임 할당 방법에 대한 문제 발생.

  41. 4. 프레임 할당 알고리즘 • 최소 프레임 수 • 할당해야 할 최소 프레임 수 존재. • 기억 장소 할당은 제한이 있어 총 유효 프레임 수보다 많이 할당할 수 없으나, 할당 가능한 최소 프레임 수는 존재함. - 각 프로세스에 할당되는 프레임 수가 줄어들면서 페이지 부재율은 올라가며, 수행 속도는 저하됨. - 성능 저하를 막기 위해 할당해야 할 최소 프레임 수가 존재함. • 최소 프레임 수는 명령어 구조에 의해 정의됨. - 수행 중인 명령이 끝나기 전에 페이지 부재 현상 발생 시 그 명령을 다시 시작해야 함. - 하나의 명령어 실행을 위해 명령어가 참조하는 모든 페이지를 수용할 수 있는 충분한 프레임이 필요함. ※ 한 프로세스당 최소 프레임 수는 컴퓨터 구조에 의해 정의되나, 최대 수는 유효 실제 기억 장소의 양으로 정의됨.

  42. 4. 프레임 할당 알고리즘 • 균일과 비례할당 알고리즘 • 균일할당. • 프로세스 n개에 프레임 m개를 할당할 때 각 프로세스에 똑같이 프레임 m/n개씩 나눔. • 각 프로세스가 갖는 메모리의 요구량이 서로 다르므로 페이지 프레임 낭비 및 페이지 부재가 발생할 수 있음. • 비례할당. • 균일할당 방법의 문제점을 해결하기 위해 사용됨. • 사용 가능한 메모리를 각 프로세스가 필요로 하는 메모리 양 또는 프로세스의 크기에 비례하여 할당. • 운영체제가 활동 중인 프로세스에 대한 정보를 알고 있어야 하며, 소프트웨어 오버헤드를 가져옴. • 프로세스 Pi의 가상 메모리 크기를 si라고 하면 전체 프로세스가 갖는 가상 메모리 공간의 크기 S는 아래와같이 정의됨. • 사용가능 프레임의 총수를 m이라 하면 프로세스 Pi에 프레임 ai개를 할당하는데, 이때 ai는 대략 아래와 같음. • - 이때 ai는 명령어 집합이 필요로 하는 최소 프레임 수보다는 크고 총합이 m을 넘지 않는 정수이어야 함. ※ 균일과 비례할당 기법 모두 다중 프로그램 정도에 따라 할당되는 양이 변하며, 우선순위를 고려하지 않음.

  43. 4. 프레임 할당 알고리즘 • 부하 제어(Load Control) • 메인메모리에서 실행할 프로세스의 개수 결정. • 메인 메모리에 적재되어 실행되는 프로세스의 개수를 ‘다중 프로그래밍 수준’이라 함. • 메모리 관리를 위해 매우 중요함. - 너무 적은 수의 프로세스가 메인 메모리에서 실행된다면 프로세스들의 보류 상태가 자주 발생, 빈번한 교체가 발생됨. - 많은 프로세스가 메인 메모리에 적재되면 각 프로세스의 적재집합을 구성하는 평균 페이지 수가 적어 페이지 부재가 자주 발생, 스레싱 현상을 일으킴. ※현대 운영체제에서는 고정(균일) 할당과 가변(비례)할당 정책을 이용.

  44. 5. 프로세스 적재 정책 • 스레싱(Thrashing) • 페이지 교환이 계속 일어나는 현상. • 어떤 프로세스가 프로세스 수행에 보내는 시간보다 페이지 교환에 보내는 시간이 더 크면 ‘스레싱을 하고 있다’고 말함. • 스레싱 발생 원인. • 운영체제는 항상 프로세서의 효율성(이용률)을 감시하여 운영. • 이용률이 떨어지면 이를 높이기 위해 새로운 프로세스를 도입, 다중 프로그래밍의 정도를 높임. - 새로운 프로세스가 수행 중인 프로세스의 페이지를 빼앗아서 수행을 시작할 경우 더 많은 페이지 부재 발생. - 프로세서가 요구하는 최소한의 수보다 페이지 프레임 수가 적으면 적을수록 페이지 부재율이 증가함. - 페이지 부재가 많이 일어날수록 프로세스가 페이징 처리장치를 기다리는 시간이 길어지므로 프로세스의 효율성은 떨어짐. ※ 페이지 부재로 프로세서의 이용률 감소 시 스레싱이 발생하여 시스템의 처리율은 낮아지고 페이지 부재는 늘어나유효 메모리 액세스 시간이 증가, 페이지 교체시간이 낭비됨.

  45. 5. 프로세스 적재 정책 • [그림 8-30] 스레싱. • 프로세서의 이용률과 다중 프로그래밍의 정도에 따라 다름. - 다중 프로그래밍의 정도가 높아지면 프로세서의 이용률도 최대값이 될 때까지 증가. - 다중 프로그래밍의 정도가 더욱 커지면 스레싱이 발생, 프로세서의 이용률은 급격히 떨어짐. • 프로세서의 이용률을 높이고 스레싱을 중단하려면 다중 프로그래밍의 정도를 낮춰야 함. [그림 8-30] 스레싱 • 스레싱 예방. • 지역 교환 알고리즘이나 우선순위 교환 알고리즘을 사용하여 제한할 수 있음. - 지역 교환 알고리즘 사용 시 프로세스 하나에 스레싱이 발생하더라도 다른 프로세서에서 프레임을 가지고 올 수 없어 다른 프로세스는 스레싱 현상에 빠지지 않음. - 여러 프로세스에서 스레싱이 발생할 경우 프로세스들은 대부분의 시간을 페이징 처리장치를 기다리는 큐에서 보냄. - 스레싱은 발생하지 않으나 유효 액세스시간은 증가함.

  46. 5. 프로세스 적재 정책 • 지역성(국부성) • 실행 중인 프로세스에 의해 나타나는 특성. • 프로세스들은 실행기간 동안 메모리 내의 정보를 균일하게 액세스하는 것이 아닌 페이지 중 일부를 선호하여 지역적인 부분만을 집중적으로 참조하는 현상. • 프로그램들의 순환(Looping)이나 부 프로그램, 스택, 변수들의 계산과 합계, 배열 순례, 순차적 코드의 실행 등으로 발생. • 프로그래머들이 관련 있는 변수들을 서로 근처에 배치시키기 때문에 발생함. • [그림 8-31] 여러 페이지에 대한 프로세스의 메모리 참조 유형. [그림 8-31] 메모리 참조 패턴의 지역성(출처: IBM Systems Journal. Ⓒ 1971)

  47. 5. 프로세스 적재 정책 • 지역성의 종류. • 시간 지역성. - 참조된 기억장소는 가까운 미래에도 계속 참조될 가능성이 높음을 의미함. - 순환구조의 루틴, 부프로그램, 스택, 계산이나 합계의 변수 등. • 공간 지역성. - 프로세스가 어떤 기억장소를 한 번 참조하면, 이후에 참조한 기억장치 근처에 있는 기억장소를 참조할 가능성이 높음을 의미함. - 배열 순례(검색 작업), 순차적 코드의 실행, 근처의 관련 변수 선언등. • 스레싱 현상 방지를 위해 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 함. • 지역성을 이용하여 현재의 지역 크기보다 적은 페이지 프레임 할당 시 페이지 부재 발생의 원인이 될 수 있음.

  48. 5. 프로세스 적재 정책 • 작업설정 모델(Working Set Model) • 프로그램의수행과정을 지역성 개념으로 설명하기 위해 데닝이 개발. • 프로세스가 많이 참조하는 페이지 집합을 메모리 공간에 계속 상주시켜 빈번한 페이지 대치 현상을 줄이는 방법. • 프로세스의 작업모델 구성을 위해 작업설정의 크기를 알아야 하며, 작업설정의 크기는 작업설정 창을 이용하여 구함. - 작업설정 창 정의를 위해 매개변수 ∆를 사용, ‘현재 시간(t)에서 최근의 일정 시간 단위(∆)’를정하여 결정. - 작업설정 창의 크기는 매개변수인 ∆에 따라 달라짐. - 가장 최근의 ∆ 페이지 참조를 조사, 가상 시간 t로부터 프로세스가 참조한 페이지 집합을 나타냄. - 어떤 페이지가 실제로 사용되고 있으면 페이지는 작업설정에 포함, 마지막으로 참조된 후 ∆ 시간 동안 참조되지 않으면 더 이상 사용하지 않는 것으로 간주되어 작업설정에서 빠짐. - 따라서 가장 최근의 페이지 참조에 있는 페이지 집합을 작업설정이라 하며, 이때 작업설정은 프로그램의 지역 근사치임. • 최근에 참조된 페이지들을 메인 메모리에 유지시켜 프로세스가 빠르게 실행될 수 있음. • 새로운 프로세스들은 메인 메모리에 그들의 작업설정들이 적재할 수 있는 공간이 있을 때만 시작될 수 있음.

  49. 5. 프로세스 적재 정책 • [그림 8-32] 프로세스 작업설정 정의. • 데닝은 시간 t에서의 작업설정 WS(t, w)를 시간 (t-w)부터 t까지의프로세스 시간 간격에 참조한 페이지들의 집합으로 정의. - t : 현재 프로세스 시간(프로세서를 점유하고 있는 시간). - w : 프로세스 창의 크기로 프로세스들의 작업설정을 계산할 때 과거 어느 시간까지 포함할 지를 나타냄. [그림 8-32] 프로세스 작업설정 정의 • [그림 8-33] 창 크기와 작업설정 • - w가 증가함에 따라 작업설정의 크기가 변함. • - 창의 크기(설정시간 간격) w가 커짐에 따라 메인 메모리에 유지하는 작업설정이 커지나, w가 너무 커지면 메인 메모리의 용량을 초과하므로 작업설정도 증가하지 않음. [그림 8-33] 창 크기와 작업설정

  50. 5. 프로세스 적재 정책 • [그림 8-34] 작업설정 모델 예. • 그림과 같이 메모리 참조 순서가 주어졌을 때(∆=10이라 가정), t1시간의 작업설정은 {1,2,5,6,7}이 되며, t2시간에는 {3,4}임. • 작업설정의 정확성은 ∆ 의 선택에 따라 좌우됨. - ∆ 값이 너무 작으면 전체 작업설정을 충족시키지 못함. - ∆ 값이 너무 크면 여러 전체 프로그램이 됨. • 매드닉(Madnick)과 도노반(Donovan)은 적절한 값으로 10,000을 제안함. [그림 8-34] 작업설정 모델(WS는 작업설정 집합)

More Related