Post

[운영체제-양희재 교수님]23-24강 가상 메모리와 요구 페이징

경성대학교 양희재 교수님의 운영체제 23강

경성대학교 양희재 교수님의 운영체제 24강

가상 메모리

  • 물리 메모리 크기의 한계를 극복하는 방법
    • 물리 메모리보다 큰 프로세스를 실행할 수 있게 한다.
  • 가상 메모리는 어떻게 동작하는가
    • 프로세스 이미지를 모두 메모리에 올릴 필요는 없으므로 현재 실행에 필요한 부분만 메모리에 올린다.
      • 동적 적재(dynamic loading)와 비슷한 개념
    • 예) 오류 처리 제외, 배열 일부 제외, 워드프로세스에서 정렬, 표 기능 등 현재 당장 필요하지 않은 기능은 올리지 않는다.

요구 페이징(Demand Paging)

  • 지금 필요한(요구되는) 페이지만 메모리에 올린다(load)
  • 필요한 하드웨어
    • 페이지 테이블에 valid 비트 추가
      • valid ⇒ 메인 메모리에 올라옴
      • invalid ⇒ 메인 메모리에 올라오지 않음
    • backing store(swap device)
      • 프로세스 이미지를 저장
      • 필요할 때에만 꺼내옴

페이지 결함(페이지 부재, Page Fault)

  • 접근하려는 페이지가 메모리에 없는 경우
  • 페이지 결함이 발생한 경우
    1. 접근하려는 페이지가 메모리에 없음(invalid)
    2. CPU에 전기 신보를 보냄
    3. CPU는 하던 일을 멈추고 OS가 page fault 처리 루틴을 실행하게 함
    4. Backing store에서 해당 페이지를 가져와 메인 메모리로 올림
    5. valid 비트 수정
    6. 이제 페이지를 읽을 수 있다.

pure demand paging vs. prepaging

  • pure demand paging: 정말 필요한 페이지만 메인 메모리에 올린다.
    • 처음 프로그램을 실행하면 필요한 게 없으니 아무것도 올리지 않아 바로 page fault 발생
    • 처음 page fault가 많이 발생해 속도가 느리지만 메모리 공간이 많이 절약된다.
  • prepaging: 미리 페이지를 올려놓는다.
    • Page fault가 적게 발생해 속도는 빠르지만 메모리 공간이 낭비된다.

swapping vs. demand paging

  • swapping: backing store와 메모리 사이에 프로세스가 오간다.
  • demand paging: backing store와 메모리 사이에 페이지가 오간다.

유효 접근 시간(Effective Access Time)

  • Teff = (1-p)Tm + pTp
    • p: probability of a page fault = page fault rate
    • Tm: 메모리를 읽는 데 걸리는 시간
      • 페이지 테이블을 읽는 데 걸리는 시간은 짧으므로 무시
    • Tp: 페이지 폴트로 인해 걸리는 시간
      • 일반적으로 가장 오래 걸리는 시간인, 하드 디스크에서 페이지를 읽어오는 시간
      • seek time(디스크 헤드를 원하는 트랙으로 옮기는 시간) + rotational delay(헤드 밑으로 디스크가 오는 데 걸리는 시간) + transfer time(읽는 시간)
        • seek time이 일반적으로 가장 오래 걸린다.
  • 페이지 폴트 확률이 높으면 유효 접근 시간이 급격하게 느려지므로 페이지 폴트는 최대한 발생하면 안 된다.

지역성의 원리

  • Locality of reference
    • reference: CPU가 참조하는 주소
    • 메모리 접근은 시간적, 공간적 지역성을 가짐 ⇒ 실제 페이지 부재 확률은 매우 낮음
      • CPU는 한 번 읽은 메모리를 다시 읽을 확률이 높다.
      • CPU는 인접한 공간의 메모리를 읽을 확률이 높다.
  • 페이지 폴트를 줄이기 위한 또 다른 방법
    • HDD는 접근 시간이 너무 길어 swap device로 부적합 ⇒ 더 빠른 SSD 또는 느린 저가 DRAM 사용
This post is licensed under CC BY 4.0 by the author.