본문 바로가기
Computer Architecture/컴퓨터구조[01]

[혼자 공부하는 운영체제] 14-3. 페이지 교체와 프레임 할당

by leziwn.cs 2023. 11. 28.

▶ Page Fault

: 해당 page에 대한 frame이 main memory에 없다. Disk로 가야 한다!

  • Page table의 valid bit == 0

 

요구 페이징(demand paging)

: 프로세스를 메모리에 적재할 때, 처음부터 모든 page를 적재하지 않고 필요한 page만을 메모리에 적재하는 기법

 

 

페이지 교체 알고리즘

: 쫓아낼 page를 결정하는 방법

  • FIFO(First-In First-Out) page replacement algorithm
  • Optimal page replacement algorithm: 자주 사용될 page를 남기고, 자주 사용되지 않을 page를 swap-out한다. (이상적)
  • LRU(Least Recently Used) page replacement algorithm: 가장 최근에 사용되지 않은 page를 swap-out한다.

 

 

스레싱과 프레임 할당

Page fault란, 원하는 page에 대한 frame이 main memory에 없을 때 발생한다. 하지만 그 이유가 나쁜 페이지 교체 알고리즘에만 있는 것은 아니다.

프로세스가 사용할 수 있는 frame 수가 적어도 page fault는 자주 발생한다.

  • 스레싱(threashing): 프로ꂌ스가 실제 실행되는 시간보다 paging에 더 많은 시간을 소요하여 성능이 저해되는 문제

프로세스가 사용할 수 있는 frame 수가 적어도 page fault는 자주 발생한다. --> 스레싱(threashing)

 

스레싱이 발생하는 근본적인 원인은, 각 프로세스가 필요로 하는 최소한의 frame 수가 보장되지 않았기 때문이다. 따라서 운영체제는 각 프로세스들이 무리 없이 실행하기 위한 최소한의 프레임 수를 파악하고, 프로세스들에 적절한 수만큼 프레임을 할당해줄 수 있어야 한다.

 

▶ 프레임 할당 방식:

  • 균등 할당(equal allocation): 모든 프로세스에게 균등하게 프레임을 제공하는 방식
  • 비례 할당(proportional allocation): 프로세스 크기가 크면 프레임을 많이 할당하고, 프로세스 크기가 작으면 프레임을 적게 할당하는 방식

▶ 프로세스를 실행하는 과정에서 배분할 프레임을 결정하는 방식:

  • 작업 집합 모델(working set model): '프로세스가 일정 기간 동안 참조한 page 집합'을 기억하여, 빈번한 page 교체를 방지한다.
    - 작업 집합(working set): 실행 중인 프로세스가 일정 시간 동안 참조한 페이지의 집합
  • 페이지 폴트 빈도(PFF: Page-Fault Frequency)