책읽기

[쉽게 배우는 운영체제](요약)[Part-3][Ch-9] 가상 메모리 관리

pythaac 2021. 7. 29. 12:22
이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.

출처 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5471691739

※ 요약

  1. 요구 페이징(Demand Paging)
    • 사용자가 요청할 때 해당 페이지를 메모리로 가져오는 것
  2. 페이지 테이블 엔트리(PTE)의 플래그 비트
      • 접근 비트
        - 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트
      • 변경 비트
        - 페이지가 메모리로 올라온 후 데이터의 변경이 있었는지 알려주는 비트
      • 유효 비트
        - 페이지가 실제 메모리에 있는지 나타내는 비트
      • 읽기 / 쓰기 / 실행 비트
        - 페이지에 대한 읽기 / 쓰기 / 실행 권한을 나타내는 비트
  3. 페이지 부재(Page Fault)
    • 프로세스가 페이지를 요청했을 때, 해당 페이지가 메모리에 없는 상황
    • 유효비트가 1일 때, 해당 PTE의 주소 필드에 스왑 영역의 페이지 주소 기록
  4. 지역성(Locality)
    • 기억장치의 접근하는 패턴이 메모리 전체에 고루 분포되지 않고 특정 영역에 집중되는 성질
    • 공간 지역성, 시간 지역성, 순차적 지연성
  5. 페이지 교체 알고리즘

    • 종류 알고리즘 특징
      간단한 알고리즘 무작위 무작위 페이지를 스왑 영역으로 보냄
      FIFO 메모리에 올라온 순서대로 스왑 영역으로 보냄
      이론적 알고리즘 최적 미래의 접근 패턴으로 페이지를 스왑 영역으로 보냄
      최적 근접 알고리즘 LRU Least Recently Used, 사용한지 가장 오래된 페이지를 스왑 영역으로 보냄
      LFU Least Frequently Used, 사용 빈도가 적은 페이지를 스왑 영역으로 보냄
      NUR Not Used Recently, 최근에 사용하지 않은 페이지를 스왑 영역으로 보냄
      FIFO 변형 second chance : page fault 없이 성공시 맨 뒤로 이동
      clock : second chance를 원형 큐로 구현
  6. 스레싱(threshing)
    • 잦은 페이지 부재로 인한 저장장치와 입출력이 계속되어 작업이 멈춘 것 같은 상태
    • 원인
      1) 프로세스의 증가 : CPU가 스왑을 하느라 사용률이 낮아질 수 있음 (스레싱 포인트)
      2) 프레임의 할당 : 프로세스에 대해 적은 프레임 할당으로 인한 잦은 페이지 부재
  7. 프레임 할당 방식
    • 정적 할당
      - 프로세스 실행 초기에 프레임을 나누고 그 크기를 고정
    • 동적 할당
      - 프로세스 실행 중에 프레임을 나누거나 회수하는 방식

 

1. 요구 페이징

1) 요구 페이징의 개요

2) 페이지 테이블 엔트리의 구조

3) 페이지 부재

4) 지역성

 

2. 페이지 교체 알고리즘

1) 페이지 교체 알고리즘의 개요

2) 간단한 알고리즘

  • 무작위
  • FIFO

3) 이론적 알고리즘

  • 최적

4) 최적 근접 알고리즘

  • LRU
  • LFU
  • NUR
  • FIFO 변형

 

3. 스레싱과 프레임 할당

1) 스레싱

2) 정적 할당

3) 동적 할당

 

4. [심화학습] 프레임 관련 이슈

1) 전역 교체와 지역 교체

2) 페이지 테이블 크기

3) 쓰기 시점 복사