제 8장 가상 기억장치의 구성과 관리 200512016장태양
페이지 반입 정책(1) : 요구, 예상 요구 페이징(demand paging) 기법 수행중인 프로세스에 의해 호출된 페이지만 실 기억장치로 적재 실 기억장치로 적재된 페이지은, 프로세스에 의해 실제로 참조되고 있는 페 이지들만 모두 들어 있다는 장점을 가짐 즉, 짐작(예상)에 의해 페이지들을 실 기억장치에 적재 시킬 때 발생할 수 있 는 각종 오버헤드(overhead)를 줄일 수 있음 문제점 새로운 페이지가 필요할 때마다, 그 페이지를 적재시켜 주는 시간이 필요 이 때, 해당 프로세스가 그 동안 아무런 일도 하지 않고 대기 대기하는 동안, 역시 이 프로세스에게 할당되어 있는 페이지 프레임들도 유휴 상태 예상 페이징(prepaging) 프로세스가 필요로 하는 페이지들을 운영 체제가 미리 예상하여, 사용 가 능한 실기억 장치에 미리 적재시켜 주는 방법 예상이 완전히 맞았을 경우, 요구 페이징에 비해 실행 시간이 크게 단축
페이지 대치 알고리즘 개념 페이지 부재(page fault) 접근 타당/비타당 비트 실 기억장치의 모든 프레임이 Full일 때, 실 기억장치에 새롭게 적재할 페이지가 있을 때, 실 기억장치 내의 어떤 페이지를 제거하고 새로운 페이지를 대치시켜 넣을 것인가를 결정하는 것 페이지 부재(page fault) 주기억 공간 내에 적재되지 않은 페이지에 대한 접근 요구시에 일어나며, 운영체제에게 페이 지 부재 인터럽트를 발생시킴 페이지 부재 인터럽트 시의 처리의 내용 가상 기억 공간에 있는 해당 페이지를 실기억 공간으로 적재 실기억 공간의 페이지 프레임 상태를 확인(비어있는 프레임이 있는가?) 사용가능 페이지 프레임(available page frame)이 하나도 없을 때 페이지 대치 알고리즘 수행 접근 타당/비타당 비트 주기억 공간 또는 가상기억 공간에 적재된 페이지인지 구분키 위함 PMT내의 한 항목
요구 페이징의 처리 과정 주소 참조를 요구(demand page)하면, 해당 PCB 검사, 접근 유효성 확인 유효하지 않은 참조일 때는 프로세스를 중단, 유효한 참조일 때에는, 가상 주소에 있는 페이지 번호를 이용하여 PMT를 검사 PMT의 접근 타당 / 비타당 비트가 타당일 때(R = 1) PMT 내에 있는 실기억 장치상의 페이지 프레임 번호와 가상 주소 내에 있는 페이지 변위를 이용하여 동적 주소 변환 수행 접근 타당/비타당 비트가 비타당일 때(R = 0) 부당한 주소 참조에 의한 페이지 부재(page fault) 인터럽트가 발생 페이지 부재가 일어나면 사용가능 페이지 프레임 리스트가 검사됨 사용가능 프레임이 있으면, 하나의 페이지 프레임을 선택한 후, 요구된 페이지를 실기억 공간내의 사 용가능 페이지 프레임에 할당하기 위해 디스크 조작 수행 요구된 페이지가 실기억 공간의 페이지 프레임에 할당된 후에는 PMT와 프로세스 제어 블럭(PCB)의 내용을 갱신하고 R = 1로 변경 페이지 부재 인터럽트에 의해 잠시 저장(보관)되었던 프로세스 상태를 복귀시켜 중단되었던 프로세스를 계속 시행 사용가능 페이지 프레임이 없으면, 페이지 대치 알고리즘을 수행하여, 사 용가능 페이지 프레임을 만든 후, ⑤로 이동.
페이지 할당 알고리즘 전역 할당(global allocation) 지역 할당(local allocation) 하나의 프로세스가 차지할 수 있는 페이지 프레임의 대상을 주기억 공간상의 전체 페이지 프 레임으로 하는 방법 지역 할당(local allocation) 자신의 프로세스에게 할당된 페이지 프레임 개수만으로 할당하는 방법 지역 할당시의 고려 사항 : 하나의 프로세스에게 최소 몇 개의 페이지 프레임을 할당할 것인 가를 결정해야 함
빈번한 페이지 대치(교환)의 문제 프로세스가 어떤 페이지를 요구했을 때, 페이지 부재의 발생으로 인하여 해당 페이지가 실기억 공간에 적재될 때까지 걸리는 시간을 최소로 줄 여주는 방법 페이지 교환 시간이 프로그램 수행 시간보다 많이 걸리는 현상을 방지하는 방법
페이지 대치 알고리즘 요구 페이징의 성능과 페이지 대치 개념 일반적으로, 요구 페이징의 성능은 페이지 부재율과 관련 있음 Page Fault가 발생하지 않았을 때 요구된 페이지에 대한 유효 접근 시간 = 기억장치 접근 시간 Page Fault가 발생하였을 때, 페이지 부재를 처리하기 위한 많은 시간이 필요 요구 페이지 부재 발생시의 처리 과정 OS에게 페이지 부재 인터럽트 통보 사용가능 P/F 존재 검사(미 존재이면 페이지 대치 작업 수행) 있을 때, 어떤 P/F를 사용할 것인가를 결정 가상기억공간에 있는 페이지를 P/F로 읽어 들임 디스크에 대한 입력 요구가 즉각 행해지지 않을 때에는 대기시간 필요 디스크 구동 시간과 빈 프레임으로의 전송 시간 필요 디스크 입출력이 끝났다는 인터럽트를 보냄(요구된 페이지가 P/F로 적재됨) 현재 CPU를 할당받고 있는 프로세스에 대한 정보(PSW 등) 보관(OLD 로..) 프로세스 제어 블럭(PCB)의 내용 갱신 페이지 부재 인터럽트에 의해 잠시 저장(보관)되었던 프로세스 상태를 모두 복귀시키고, 중단 되었던 프로세스를 재 시행
따라서, page fault 시, 페이지 부재 처리에 많은 시간이 소요됨 또한 처리시, 페이지 부재율(page fault rate)을 최소화 하는 것이 관건 페이지에 대한 유효 접근 시간 주기억 장치 접근시간: MAt , 페이지 부재율: P, 페이지 부재 처리시간: PFt 원하는 페이지에 대한 유효 접근 시간은? 페이지 부재가 없을 때 : Mat (10 – 200 ㎲) 페이지 부재가 있을 때 : (0 ≤ P ≤ 1) : 일반적으로 P는 거의 0에 가까움 (1-P) * MAt + (P * PFt) 예) 주기억 장치에 대한 접근 시간( Mat ) : 1 ㎲, (microsecond) 페이지 부재를 처리하는데 걸리는 시간( PFt ) : 10㎳ 유효 접근 시간 계산? (1 - P) * MAt + (P * PFt) = (1 - P) * (1 ㎲) + (P * 10 ㎳) = (1 - P) * (1 ㎲) + (P * 10,000 ㎲) = (1 ㎲ - P ㎲) + 10,000 P ㎲ = 1 ㎲ + 9999 P ㎲
따라서, 원하는 페이지에 대한 유효 접근 시간은 페이지 부재율 P에 비례 = 1 ㎲ + (9999 / 1000) ㎲ = 10.9 ㎲ (약 11 ㎲ ) 즉, 1000개의 페이지 요구 중, 단 1개의 페이지 부재가 있더라도, 페이지 부재가 전혀 없을 때 (P = 0)의 접근 시간 (1 ㎲) 보다 11배 정도 느리게 처리됨을 알 수 있음 위 상황에서 P=0일 때보다 10% 정도만 느리게 처리되기 위한 페이지 부재율 계산 1 + 9999 P < 1.10 9999 P < 0.10 P < 0.00001 즉, 100,000번의 페이지 요구 중, 1회 이하의 페이지 부재가 일어나야만, 페이지 부재가 전혀 없을 때의 접근 시간보다, 10%이하의 감속을 기대할 수 있음 따라서, 요구 페이징 기법은 페이지 부재율을 가능한 한 낮게 한다는 것이 매우 중요 이를 위한 각종 알고리즘과 정책이 필요
페이지 대치 요구 페이징에서는 사용자 프로그램이 수행되는 동안, 페이지 부재(page fault)가 수 시로 발생 페이지 부재 인터럽트가 일어나면 사용가능 페이지 프레임이 있는가를 검사하여, 이때 실 기억 공간 내에 사용 가능한 페이지 프레임이 하나도 없을 때에 페이지 대치 (page replacement)작업을 행하게 됨 페이지 프레임 내의 페이지 중에서 특정 페이지를 희생자로 선정하여 예비 기억 공간으로 내 보내고, 새롭게 요구된 페이지를 그 프레임에 대치시켜 넣는 작업 페이지 대치 과정 사용가능 페이지 프레임이 없을 때 실시 희생자 프레임을 선정하는 페이지 대치 알고리즘 적용 희생자로 선정된 페이지를 보조 기억장치로 이동하고, 해당 PMT를 변경 요구된 페이지를 비워진 페이지 프레임으로 읽어 들이고, 해당 PMT를 변경 페이지 부재 인터럽트에 의해 잠시 보관 되었던 프로세스 상태를 모두 복귀시키고, 중단되었 던 프로세스를 재 시행
페이지 대치과정에서 중요사항 희생자 프레임 선정 과정인 ②번에서, 페이지 부재율이 가능한 한 낮은 알고리즘이 적 용되어야 한다는 것 예) 지금 요구된 페이지에 바로 이어서 요구될 페이지를 희생자로 선정, 대치시키게 되면, 연 속으로 페이지 부재가 일어나, 페이지 부재율을 높임 희생 페이지를 예비 기억장치로 이동하는 ③번 과정에서, 주기억 장치 내에 적재된 후의 내용 변경 유무 비트인 'M'을 참조하면, 예비 기억 장치로의 출력 시간을 줄일 수 있음 즉, M = 0이면, 변경사항이 없었으므로, 예비 기억 장치 내에 들어 있는 해당 페이지의 원본 이 지워져 있지 않는 한 예비 기억 장치로 다시 출력시킬 필요 없음