ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION1083 / 1500
운영체제난이도 중하5분 답변 목표 · 보강본

프로세스들이 페이지를 계속 밀어내고 다시 읽으며 느려집니다. 페이지 교체 정책과 작업 집합을 어떻게 보나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

프로세스가 당장 반복해서 사용하는 페이지 집합이 할당된 프레임보다 크면, 방금 내보낸 페이지를 곧바로 다시 읽는 일이 반복됩니다. 이 상태에서는 CPU가 유용한 계산보다 페이지 폴트 처리와 저장 장치 대기를 수행해 처리량이 오히려 떨어집니다. 이 현상을 스래싱(thrashing)이라고 합니다. 원인을 페이지 교체 알고리즘 하나로만 보지 않고, 프로세스별 작업 집합과 동시에 실행된 작업 수가 물리 메모리와 맞는지 먼저 확인하겠습니다.

정책은 참조 패턴의 근사입니다

FIFO는 가장 먼저 들어온 페이지를 내보내므로 구현이 단순하지만, 자주 쓰는 페이지가 오래됐다는 이유로 제거될 수 있고 프레임을 늘렸는데 폴트가 증가하는 Belady anomaly도 가능합니다. LRU는 최근 사용되지 않은 페이지를 우선 교체해 시간 지역성을 이용하지만 모든 접근의 순서를 정확히 추적하는 비용이 큽니다. 미래 참조를 알고 가장 늦게 사용될 페이지를 내보내는 최적 정책은 다른 정책의 하한을 비교하는 기준이지 일반 실행에서 그대로 쓸 수 있는 정책은 아닙니다. 실제 OS는 접근 비트와 주기적 샘플링으로 LRU를 근사합니다.

작업 집합은 일정한 시간 창 안에서 실제로 참조된 페이지 묶음입니다. 창이 너무 짧으면 순간적인 재사용만 보고, 너무 길면 현재 필요하지 않은 페이지까지 포함합니다. 프로세스별 작업 집합이 프레임보다 크면 동시 실행 수를 줄이거나 메모리를 추가해야 하고, 작업 집합이 충분한데도 폴트가 많으면 접근 패턴·매핑·공유 페이지를 봅니다. 전역 교체는 한 프로세스의 폭증이 다른 프로세스 프레임을 빼앗게 하고, 지역 교체는 간섭을 줄이는 대신 한 프로세스가 가진 프레임이 부족할 수 있습니다.

예를 들어 세 프로세스의 작업 집합이 각각 4, 4, 4페이지인데 가용 프레임이 8개뿐이면 어느 정책을 써도 한 프로세스가 곧 필요로 할 페이지를 내보낼 수 있습니다. 동시 실행을 두 개로 줄이면 각 작업 집합을 수용할 수 있지만 CPU 유휴와 처리량 손실이 생길 수 있으므로, 프로세스 수를 단계적으로 늘리며 유용한 CPU 시간·major fault·저장 대기·완료율을 비교하겠습니다.

순차 파일 스캔이 애플리케이션의 핫 캐시를 밀어내는 경우에는 OS 교체 정책보다 접근 순서와 캐시 정책이 먼저일 수 있습니다. prefetch로 fault 수를 줄여도 사용하지 않을 페이지가 다른 프로세스의 작업 집합을 밀어낼 수 있습니다. 따라서 fault율 하나가 아니라 부하를 올렸다 내렸을 때 작업 집합과 p99가 회복되는지, 정책 변경이 실제 처리량을 높이는지로 스래싱을 판정하겠습니다.

작업 집합은 페이지 수만 세는 값이 아니라 시간 창과 참조 빈도에 따른 관찰입니다. 한 번만 읽는 대형 스캔 페이지와 반복 참조하는 핫 페이지를 같은 비중으로 취급하면 정책 선택이 왜곡됩니다. 참조열을 재생해 작업 집합 크기와 회복 시점을 비교하고, 정상적인 cold start와 지속 스래싱을 구분하겠습니다.

페이지를 미리 읽어 fault를 줄여도 사용하지 않는 페이지가 다른 프로세스의 작업 집합을 밀어낼 수 있습니다. 반대로 순차 스캔을 지역적으로 바꾸면 정책을 변경하지 않고도 재사용이 늘 수 있습니다. 동시 프로세스 수와 프레임 예산을 단계적으로 바꾸며 유용한 CPU 시간, 완료율, major fault, 저장 장치 대기와 p99가 함께 회복되는지를 보겠습니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 작업 집합이 프레임보다 클 때 반복 재읽기가 생기는 원리를 설명한다.
  • FIFO·LRU·최적 정책의 구현 가능성과 비용을 구분한다.
  • 동시성·참조 지역성·major fault·저장 대기를 함께 진단한다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • 페이지 fault가 많으면 항상 디스크 스래싱이라고 말한다.
  • LRU를 모든 접근을 정확히 추적하는 저비용 정책으로 설명한다.
  • 프로세스를 더 실행하면 메모리 압력이 해결된다고 말한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기