[혼공컴운] ch.14 가상 메모리

제트·2024년 8월 17일
0

14-1. 연속 메모리 할당

1. 스와핑

  • 스와핑(swapping) : 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
  • 스왑 영역(swap space) : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
  • 스왑 아웃(swap-out) : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
  • 스왑 인(swap-in) : 스왑 영역에 있는 프로세스가 다시 메모리로 옮겨오는 것

2. 메모리 할당

1) 최초 적합(first fit)

  • os가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간 발견하면 그 공간에 프로세스 배치하는 방식. 즉시 할당 방식

2) 최적 적합(best fit)

  • os가 빈 공간 모두 검색한 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스 배치

3) 최악 적합(worst fit)

  • os가 빈 공간을 모두 검색한 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스 배치

3. 외부 단편화

  • 외부 단편화(external fragmentation) : 프로세스를 할다하기 어려운 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상

  • 외부 단편화 해결 방안

    • 메모리 압축(compaction) : 흩어져 있는 빈 공간을 하나로 모아 메모리 내 저장된 프로세스를 적당히 재배치시켜 여기저기 흩어져 있는 작은 빈 공간들을 하나의 큰 빈 공간으로 만드는 것

    • 그 외로 가상 메모리 기법(페이징 기법)이 있음

6주차 기본 과제
Q. 메모리 할당 방식에 대한 설명으로 올바른 것을 다음 보기에서 찾아 써라(p. 400 확인 문제 1번)
A. 최초 적합 : 최초로 발견한 적재 가능한 빈 공간에 프로세스 배치
최악 적합 : 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스 배치
최적 적합 : 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스 배치

/

14-2. 페이징을 통한 가상 메모리 관리

1. 페이징이란

  • 페이징(paging) : 메모리 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법
  • 페이지 아웃(page-out) : 스왑 아웃
  • 페이지 인(page-in) : 스완 인

2. 페이지 테이블

  • 페이지 테이블(page table) : 페이지 번호를 이용해 페이지가 적재된 프레임 찾기 가능

  • 페이지 테이블 베이스 레지스터(PTBR, Page Table Base Register) : 각 프로세스의 페이지 테이블이 적재된 주소 가리킴

  • TLB(Translation Lookside Buffer) : 페이지 테이블의 캐시 메모리 역할 수행을 위해 페이지 테이블의 일부를 저장

  • TLB 히트 : CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우

  • TLB 미스 : 페이지 번호가 TLB에 없을 경우

3. 페이징에서의 주소 변환

  • 페이징 시스템에서는 모든 논리 주소가 페이지 번호와 변위로 이루어짐
    • 페이지 번호 : 접근하고자 하는 페이지 번호. 페이지 번호를 찾으면 페이지가 어떤 프레임이 할당되었는지 알 수 있음
    • 변위 : 접근하려는 주소가 프레임의 시작 번지로부터 얼만큼 떨어져 있는지를 알기 위한 정보

4. 페이지 테이블 엔트리

  • 페이지 테이블 엔트리(PTE, Page Table Entry) : 테이블의 각각이 행들

1) 유효 비트(valid bit) : 현재 해당 페이지 접근 가능 여부

2) 보호 비트(protection bit) : 페이지 보호 기능을 위해 존재

3) 참조 비트(reference bit) : CPU가 이 페이지에 접근한 적 있는 지 여부

4) 수정 비트(modified bit) : 해당 페이지에 데이터를 쓴 적 있는지 없는지 수정 여부(더티 비트라고도 함)

/

14-3. 페이지 교체와 프레임 할당

1. 요구 페이징

  • 요구 페이징(demand paging) : 프로세스를 메모리에 적재할 때 필요한 페이지만을 메모리에 적재하는 기법

  • 순수 요구 페이징(pure demand paging) : 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행부터 하는 것

  • 요구 페이징 시스템이 안정적으로 작동하려면?

    • 페이지 교체
      • 페이지 교체 알고리즘 : 쫓아낼 페이지를 결정하는 방법
    • 프레임 할당

2. 페이지 교체 알고리즘

  • 좋은 페이지 교체 알고리즘은 페이지 폴트를 가장 적게 일으키는 것
    • 페이지 폴트 횟수는 페이지 참조열을 통해 알 수 있음

1) FIFO 페이지 교체 알고리즘

  • 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식

2) 최적 페이지 교체 알고리즘

  • CPU에 의해 참조되는 횟수를 고려하는 방식
  • 앞오르의 사용 빈도가 가장 낮은 페이지를 교체하는 방식

3) LRU 페이지 교체 알고리즘

  • 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식

3. 스래싱과 프레임 할당

  • 스래싱(thrashing) : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요해 성능이 저해되는 문제

  • 멀티프로그래밍의 정도 : 메모리에서 동시 실행되는 프로세스의 수

  • 최소한의 프로엠 수 파악 & 적당한 프레임 할당 방식

    • 균등 할당(equal allocation) : 모든 프로세스에 동일한 프레임 배분
    • 비례 할당(proportional allocation) : 프로세스 크기에 따라 프레임 배분

추가 과제
Q. 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는가
A. 3번

profile
소프트웨어학부 2학년

0개의 댓글