활동/호기심

정처기 공부하다 빠져버린 FIFO 페이지 교체 알고리즘의 늪 (페이지 부재(page fault) 횟수 문제 완벽 이해)

ByeongJun 2023. 5. 9. 11:20
반응형
 

정보처리기사 4과목 프로그래밍 언어 활용 (기억장치 관리 전략 정리(페이지교체 알고리즘 포함)

기억장치의 관리 전략의 개요 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기 (when), 적재 위치(where) 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위

3mmmeee.tistory.com

 

 

정보처리기사 공부 중 프로그래밍 언어 활용 4과목에서 비전공자에게 생긴 의문,

FIFO 페이지 교체 알고리즘 계산법 문제에서 고비가 찾아왔다. 

 

문제를 풀기 전에 간단한 개념부터 알고 가도록 한다. 

 

FIFO (First In Fisrt Out)
- 말 그대로 선입선출
- FIFO는 '큐'라는 자료구조를 참고하면 이해하기가 쉬운데,
  긴 파이프 모형 한쪽에 구슬을 넣으면 자연스럽게 다른 한쪽은 그 구슬이 나오게 되는 형태가 떠오르는데
  이처럼 한쪽은 입력만, 한쪽은 출력만 실행하는 것을 의미한다.


페이지 교체 알고리즘
- 메모리에 요청한 페이지가 존재하지 않는 페이지 부재 현상이 발생하여
  메모리(CPU)에 해당 페이지를 적재하려 할 때, 메모리에 남아 있는 공간이 없어
  현재 메모리에 있는 페이지 중에 내보낼 페이지를 결정하는 알고리즘

페이지 부재(Page Fault)

- CPU에서 현재 요청한 페이지가 메모리에 없어 무효로 세팅되어 있는 경우,
  페이지를 디스크에서 읽어오는 과정에서 오버헤드가 발생하여 성능에 큰 영향을 미친다.

 

 

출처 : on-n-on-turtle.log

 

풀이 방법이 친절하게 나와 있음에도 불구하고 이해가 되지 않아서 

FIFO 페이지 교체 알고리즘 계산법을 확실하게 공부했다. 

 

참조페이지 2 3 2 1 5 2 3 5
주기억장치
(↑ in)
               
               
               
페이지부재                

 

페이지 교체 알고리즘 계산법은 참조할 페이지 수만큼 페이지 참조열(Page reference string)을 추가해 이해하도록 한다. 

알고리즘의 특성대로 참조 페이지를 넣어주는 과정을 표로 그린다고 생각하면 된다. 

 

  • 할당된 페이지 프레임 수가 3이기 때문에 주기억장치의 행은 3줄이 되었다.
  • 참조페이지의 한 행마다 큐가 되어 입력되고 (행마다 알고리즘 방법) 아래에서 위로 넣는 방법으로 이해하면 된다. 
  • FIFO는 들어온 순서대로 삭제되는데 제일 먼저 들어온 게 삭제 대상이 되고 이후 들어온 페이지로 채워진다. 
  • 넣으려는 페이지가 이미 주기억장치에 있다면 굳이 다시 적재할 필요가 없으니 페이지 부재가 발생하지 않는다.
  • 주기억장치에 새로 해당 페이지를 적게 되면 해당 페이지 값이 페이지 부재가 발생한 것

 

참조페이지 2 3 2 1 5 2 3 5
주기억장치
(↑ in)
2 2 2 2 3 1 5 5
  3 3 3 1 5 2 2
      1 5 2 3 3
페이지부재











 

 

 3번째 페이지인 2는 이미 2페이지에 존재하기 때문에 페이지 부재가 발생하지 않아, 주기억장치에 다시 적재 X

FIFO 선입선출에 의해 4페이지에 먼저 들어온 2가 삭제되고 5페이지 5가 대신 적재되면서 부재가 발생한다. 

 

FIFO페이지 교체 알고리즘 대로 참조 페이지의 페이지 부재를 계산한다면

페이지 부재(Page Fault) 6번 발생한다.

 

 

 


 

에서 여기저기 글을 찾다보니 처음에 내 생각은 그 자리를 대신 채운다고 생각했는데

위에서 설명했던 대로 (왼쪽 그림) 선입선출 방법으로 이해하는 것이 좋을 듯 하다.

 

 

정답은 모르겠지만 악플은 얘한테 달아주세요~

 

 

 

 

 

내가 설명한 방법과 문제풀이가 조금 다르지만 정답만 찾으면 됐지 뭐

문제 출처 : 정보처리기사 필기, 4과목

참고

 

FIFO 페이지 교체 알고리즘

정처기 공부하다 답답해서 적는 FIFO 페이지 교체 알고리즘 계산법 설명! 먼저, FIFO에 대해서 알고 넘어가는 게 이해에 도움이 될 듯하다. 계산법만 궁금하신 분은 바로 4번으로 skip! 1. FIFO란? -First

chocotaste.tistory.com

 

[정처기 필기] | [기출문제 해설] | 2020년 제1회, 2회 - 4과목

61. > 61. UNIX의 쉘(Shell)에 관한 설명으로 옳지 않은 것은? ① 명령어 해석기이다. ② 시스템과 사용자 간의 인터페이스를 담당한다. ③ 여러 종류의 쉘이 있다. ④ 프로세스, 기억장치, 입출력 관리

velog.io

반응형