CS지식 쌓기

페이지 교체와 프레임 할당

류도토리 2024. 1. 4. 14:16
  1. 물리 메모리보다 큰 프로세스를 실행할 수 있지만 그럼에도 물리 메모리의 크기는 한정되어 있다
  2. 기존에 적재된 불필요한 페이지를 선별해 보조기억장치로 내보내고 프로세스들에게 적절한 수의 프레임을 할당
  3. 요구 페이징
    1. 요구되는 페이지만 적재하는 기법
    2. 요구 페이징 시스템이 안정적으로 작동하려면
      1. 페이지 교체
        1. 요구 페이징 기법으로 페이지를 적재하다보면 메모리가 가득 차게 된다
        2. 이 때 당장 실행에 필요한 페이지를 적재하려면 적재되어 있던 페이지를 보조기억장치로 보내야함
        3. 이를 결정하는 방법 - 페이지 교체 알고리즘
        4. 페이지 폴트가 적은 알고리즘
          1. 페이지 폴트가 발생하면 보조기억장치에 접근해야 해서 성능 저하
        5. 페이지 참조열
          1. CPU가 참조하는 페이지들 중 연속된 페이지를 생략한 페이지 열
        6. FIFO 페이지 교체 알고리즘
          1. 가장 단순한 방식
          2. 가장 먼저 올라온 페이지부터 내쫓는 방식
          3. 프로그램 실행 내내 사용될 페이지도 내쫓을 수 있다
        7. 2차 기회 페이지 교체 알고리즘 - FIFO페이지 교체 알고리즘의 보완책
          1. 참조 비트 1 - CPU가 한 번 참조한 적 있는 페이지 - 한 번 더 기회 주기
          2. 참조 비트 0 - CPU가 참조한 적 없는 페이지 - 내쫓기
        8. 최적 페이지 교체 알고리즘
          1. CPU에 의해 참조되는 횟수를 고려
          2. 메모리에 오래 남아야 할 페이지는 자주 사용될 페이지
          3. 메모리에 없어도 될 페이지는 오랫동안 사용되지 않을 페이지
          4. 가장 낮은 페이지 폴트율을 보장하는 페이지 교체 알고리즘
          5. 하지만 실제 구현이 어렵다. ( 앞으로 오랫동안 사용되지 않을 페이지를 어떻게 예측?)
        9. LRU(Least-Recently-Used) 페이지 교체 알고리즘
          1. 최적 페이지 교체 알고리즘 : 가장 오래 사용되지 않을 페이지 교체
          2. LRU 페이지 교체 알고리즘 : 가장 오래 사용되지 않은 페이지 교체
      2. 스레싱과 프레임 할당
        1. 페이지 폴트가 자주 발생하는 이유
          1. 나쁜 페이지 교체 알고리즘을 사용해서
          2. 프로세스가 사용할 수 있는 프레임 자체가 적어서
      3. 스레싱
        1. 프로세스가 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능(CPU 이용률)이 저해되는 문제
        2. 동시 실행되는 프로세스의 수를 늘린다고 CPU 이용률이 높아지는 것이 아니다
        3. 각 프로세스가 필요로 하는 최소한의 프레임 수가 보장되지 않았기 때문
        4. 각 프로세스가 필요로 하는 최소한의 프레임 수를 파악하고 프로세스들에게 적절한 프레임을 할당해주어야 한다
        5. 균등 할당 (정적 할당 방식)
          1. 가장 단순한 할당 방식
          2. 모든 프로세스들에게 균등하게 프레임을 할당하는 방식
        6. 비례 할당 (정적 할당 방식)
          1. 프로세스의 크기를 고려하자
          2. 프로세스의 크기에 비례하여 프레임 할당
          3. 작업 집합 모델 (동적 할당 방식)
            1. CPU가 특정 시간 동안 주로 참조한 페이지 개수 만큼만 프레임을 할당
            2. 프로세스가 실행하는 과정에서 배분할 프레임 결정
            3. 작업 집합 - 실행중인 프로세스가 일정 시간동안 참조한 페이지의 집합
            4. 작업 집합을 구하려면
              1. 프로세스가 참조한 페이지
              2. 시간 간격이 필요
          4. 페이지 폴트 빈도 (동적 할당 방식)
            1. 프로세스가 실행하는 과정에서 배분할 프레임 결정
            2. 두 개의 가정에서 생겨난 아이이디어
              1. 페이지 폴트율이 너무 높으면 그 프로세스는 너무 적은 프레임을 갖고 있다
              2. 페이지 폴트율이 너무 낮으면 그 프로세스가 너무 많은 프레임을 갖고 있다
            3. 페이지 폴트율에 상한선과 하한선을 정하고, 그 내부 범위 안에서만 프레임을 할당하는 방식
                                  1.  
             

 

 

 

'CS지식 쌓기' 카테고리의 다른 글

파일과 디렉터리  (1) 2024.01.04
페이징의 이점과 계층적 페이징  (1) 2024.01.04
페이징을 통한 가상 메모리 관리  (0) 2024.01.02
연속 메모리 할당  (0) 2024.01.02
교착 상태 해결 방법  (0) 2024.01.02