[OS] 4-2. 페이징

공부 스파이럴·2024년 3월 20일
0

운영체제

목록 보기
22/27

페이징

  • 페이징 시스템에서의 가상 주소는 순서쌍 v=(p, d)로 표현
    • p는 가상 메모리 내에서 참조될 항목이 속해 있는 페이지 번호
    • d는 페이지 p 내에서 참조될 항목이 위치하고 있는 곳의 변위
  • 순수 페이징 시스템에서의 가상 주소 양식
    • 가상 주소(v) = (페이지 번호(p), 변위(d))
  • 페이징 기법 하에서의 동적 주소 변환(dynamic address translation)
    • 실행 중의 프로세스가 참조하는 가상 주소를 v=(p, d)라고 할 때, 페이지 사상 테이블(page mapping table)에서 페이지 p를 찾고
    • 페이지 p가 페이지 프레임 p'에 있음을 알아냄
    • 그 후 p'와 d를 더하여 주기억장치 상의 실제 주소 r=p'+d를 구함

직접 사상(direct mapping)

  • 직접 사상에 의한 페이지 주소 변환
    • 직접 사상 방법에서 아주 큰 페이지 사상 테이블은 보통 주기억장치에서 유지, 관리
    • 또한 변환되는 가상 주소와 페이지 사상 테이블의 시작 주소는 제어장치 내의 고속 레지스터에 보관함으로써 페이지 사상 테이블의 참조는 한 주기억장치 주기 시간(cycle time) 내에서 수행

연관 사상(associative mapping)

  • 연관 기억장치(associative memory)페이지 사상 테이블 전체를 넣는 방법
  • 내용 주소화 기억장치(Content-addressable memory)
    • CAM에서는 사용자가 검색어를 제공하면, CAM은 자신의 메모리 공간 전체를 탐색하여 해당 검색어가 위치하고 있는 주소를 반환
  • 순수 연관 사상을 통한 페이지 주소 변환

연관/직접 사상

  • 적당한 비용으로 캐시나 연관기억장치 기법에 의한 장점을 살릴 수 있는 절충 방안
  • 가장 최근에 참조된 페이지는 조만간 다시 사용되기 쉽다는 사실을 이용하여, 연관기억장치에는 페이지 사상 테이블의 전체 항목 중 최근에 참조된 일부 페이지 항목들만을 수용
    -> 전체 연관사상과 비교할 때 90% 이상의 성능
  • 연관/직접 사상을 통한 페이지 주소 변환

페이징 시스템의 공유

  • 순수 페이징 시스템에서의 공유
    • 공유(share)가 가능한 페이지를 가능한 한 공유하도록 함(메모리 낭비 막음)
    • 서로 다른 프로세스가 자신의 페이지사상 테이블에
      같은 페이지 프레임을 가리키는 항목을 가짐으로써 공유함

페이지 크기

페이지의 크기를 결정함에 있어 고려되어야 할 내용

  • 테이블 단편화(table fragmentation)
    • 페이지 크기가 작으면 작을수록 보다 많은 페이지 프레임이 존재하게 되고, 이를 관리하기 위한 페이지 테이블의 크기가 증가하여 기억 공간이 낭비되는 현상
  • 페이지 크기가 작을수록 프로세스가 작업세트(working set)를 확보하는 데 도움이 됨
    • 프로세스들은 구역성을 가지며 이 구역 내에서는 비교적 소량의 정보만을 필요로 하기 때문
  • 실제로 프로시듀어나 데이터 블록의 단위는 대부분 페이지 크기의 정수배가 아니므로 페이징 시스템은 단편화 현상을 초래하게 됨
    • 마지막 페이지가 거의 찬 상태일 수도 있고 또는 거의 빈 상태일 수도 있기 때문에 평균적으로 1/2 페이지의 단편화가 생기게 됨
    • 따라서 페이지 크기가 작을수록 내부의 단편화는 감소
  • 페이지가 크게 되면 참조되지 않을 많은 정보들까지 주기억장치로 옮겨지게 되어 기억공간의 낭비를 초래하게 됨
  • 디스크로부터의 입출력 전송은 많은 시간이 소비되기 때문에, 프로그램 실행 중 입출력 전송의 횟수를 줄이기 위해서는 페이지 크기가 클수록 효과적

페이지 인출 기법

  • 요구 페이징(demand paging) 기법
    • 실행 중인 프로세스에 의하여 명백히 참조되는 페이지만이 보조기억장치로부터 주기억장치로 옮겨짐
    • 프로세스는 새로운 페이지가 필요할 때마다 한 번에 하나씩 그 페이지를 적재시켜야함
      • 새로운 페이지가 적재될 때마다 그 프로세스는 그 페이지가 주기억장치로 옮겨질 때까지 아무 일도 못하고 대기해야 하므로 낭비
  • 예상 페이징(anticipatory paging) 기법
    • 프로세스가 필요로 할 페이지들을 운영체제가 예측하여 주기억장치에 여유가 있을 때 이 페이지들을 미리 적재시킴
    • 예측 결정이 옳았으면 프로세스의 실행 시간은 많이 감소될 것
      • 따라서 비록 100% 완전한 결정은 내릴 수 없다 하더라도 예상 페이징 기법을 개발할 가치는 있음

페이지 양도(page release)

  • 더 이상 필요로 하지 않는 특정한 페이지가 존재한다면, 작업세트로부터 그것을 제외시켜 페이지 프레임을 유용하게 만듦
  • 컴파일러나 운영체제가 자동으로 페이지 제거를 실행하여 작업세트를 확보

0개의 댓글