Home [운영 체제] 9강 - 가상 메모리
Post
Cancel

[운영 체제] 9강 - 가상 메모리

💡해당 게시글은 방송통신대학교 김진욱 교수님의 '운영 체제' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 가상 메모리는 실제 메모리(주 기억 장치)의 용량보다 더 많은 양의 기억 공간이 필요한 프로그램을 실행할 수 있게 하는 중요한 개념임
  • 이러한 동작이 가능하기 위해서는 가상의 커다란 프로세스 기억 공간을 정해진 방법으로 분할하고, 그 중 현재 필요한 부분만 메모리에 적재되도록 해야 함
  • 이를 위해 프로세스에 의해 참조되는 주소를 실제 메모리에서 사용하는 주소와 분리하고 필요한 영역을 적절한 시점에 메모리에 적재함
  • 이러한 처리를 위한 가상 메모리 관리 기법을 알아보고, 가상 주소와 실 주소 사이의 변환 방법을 학습하고 메모리 호출 기법을 알아봄



학습 목표


  • 가상 메모리의 개념과 주소 변환에 대해 설명할 수 있음
  • 페이징 기법과 세그먼테이션 기법에서의 주소 변환 과정을 설명할 수 있음
  • 요구 페이지 호출 기법과 예상 페이지 호출 기법을 설명할 수 있음



강의록


가상 메모리의 개념

연속 메모리 할당

  • 메모리 크기보다 더 큰 기억 공간이 필요한 프로세스는 실행 불가

    image.png

가상 메모리

  • 메모리 크기보다 더 큰 기억 공간이 필요한 프로세스도 실행할 수 있게 하는 방법

    image.png

  • 실행 중인 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리
  • 현재 필요한 일부만 메모리에 적재
    • 현재 실행하고 관련 있는 일부분만 실제 메모리에 올려 실행 가능

    image.png

    • 가상 주소 a를 실 주소 b로 사상해야 함
    • 시스템 형태
      1. 보조 기억 장치에 어떤 특정한 곳에 해당하는 프로세스의 전체 가상 주소 공간 저장되어있음
      2. 필요할 때마다 일부분만 가져와 실제 메모리 상에 올림
      3. CPU가 메모리에서 해당 부분 동작 시킴

사상(mapping)

  • 프로세스 실행을 위해 가상 주소를 실 주소로 변환하는 과정
  • 동적 주소 변환(DAT)
    • 프로세스가 실행되는 동안 사상
  • 인위적 연속성
    • 가상 주소 공간에서 연속적인 주소가 실 주소 공간에서도 연속적일 필요는 없음

      image.png

    • 실 주소에서는 위치가 연속적이지 않지만 가상 주소에서는 연속적일 수 있음 → 동적 주소 변환으로 인해 바로 찾을 수 있음

블록 단위 주소 변환

주소 변환

  • 주소 변환 사상 표
    • 동적 주소 변환을 위한 정보를 가진 표

      image.png

  • 주소 변환이 바이트나 워드 단위로 이뤄지면 변환에 필요한 정보 량이 너무 많아 비효율적임 → 블록 사상 시스템 사용해 주소 변환

블록 사상 시스템

  • 블록 단위로 주소 변환
  • 가상 메모리의 각 블록이 메모리의 어디에 위치하는지 관리
  • 가상 주소 v = (b, d)
    • b: 블록 번호
    • d: 블록의 시작 점으로부터의 변위
    • 가상 주소 표현
      • v라는 가상 주소는 b 블록 안에서 시작 위치로부터 d만큼 떨어져 있는 위치에 존재

image.png

  • 사상표 b → b’
    • 실주소 r은 b’에서 d만큼 떨어져 있는 위치에 존재
  • 블록의 크기는 적절히 정해야 함
    • 크기가 커질수록
      • 사상 표 크기 감소
      • 블록 전송 시간 증가, 동시에 적재할 프로세스 수 감소
    • 크기가 작아질수록
      • 블록 전송 시간 감소, 동시에 적재할 프로세스 수 증가
      • 사상 표 크기 증가

블록 구성 방식

  • 페이지(page)
    • 블록의 크기가 동일

    image.png

  • 세그먼트(segment)
    • 블록의 크기가 다를 수 있음

    image.png

페이징 기법

  • 가상 메모리를 페이지 단위로 나누어 관리하는 기법
  • 메모리 영역도 페이지와 동일한 크기의 페이지 프레임으로 나눔
    • 페이지 프레임
      • 페이지를 담을 수 있는 틀
      • 실제 메모리에 존재하는 페이지 프레임에다 가상 메모리 상에 있는 특정 페이지 적재할 수 있음

      image.png

      • 페이지가 페이지 프레임에 적재 된 정보를 가지고 있어야 함 → 페이지 사상 표

페이지 사상 표

  • 가상 주소를 실 주소로 동적 변환할 수 있게 함
  • 페이지 번호에 대한 페이지 프레임 번호 저장
    • 페이지 번호를 인덱스로 사용
  • 페이지 존재 비트
    • 실제 메모리에 적재가 되어있는 페이지인지 체크
    • 0
      • 페이지가 실제 메모리 프레임에 올려져 있지 않음
    • 1
      • 페이지가 실제 메모리 프레임에 적재되어 있음
  • 보조 기억 장치 주소
    • 실제 보조 기억 장치에서의 주소 값

image.png

image.png

페이징 기법

  • 직접 사상에 의한 동적 주소 변환
    • 페이지 사상 표를 직접 이용

    image.png

  • 연관 사상 표에 의한 동적 주소 변환
    • 페이지 변환 정보를 연관 메모리에 저장한 연관 사상 표를 이용
    • 연관 메모리
      • 그곳에 저장되어 있는 어떤 데이터들이 있을 때 저장된 값을 가지고 바로 위치를 찾아 액세스 후 값을 볼 수 있는 고속 메모리
    • 페이지 번호가 저장 되어 있어 해당 페이지 번호 찾아 빠르게 페이지 프레임 번호 찾을 수 있음

    image.png

  • 연관/직접 사상에 의한 동적 주소 변환
    • 연관 사상 표에는 가장 최근에 참조된 페이지만 보관
    • 연관 사상 표에 없을 때만 직접 사상 이용

    image.png

    • 3번 페이지가 최근에 사용되었을 경우
      • 연관 사상 표에서 3번 페이지 찾음
      • 대응 되는 5번 프레임 번호 찾아 실 주소 계산할 수 있음
    • 3번 페이지가 최근에 사용되지 않았을 경우
      • 연관 사상 표에서 3번 페이지 찾지 못함
      • 페이지 사상 표에서 실 주소 계산해야 함
      • 해당하는 프로세스의 시작 주소가 b주소라는 것을 어딘가에 보관하고 있음
        • 시스템에 많은 프로세스들이 존재하여 페이지 사상 표가 여러 개 존재하기 때문에 페이지 별로 해당하는 사상 표가 시작하는 특정 주소가 필요함
        • 페이지 사상 표는 하나의 프로세스 마다 하나씩 존재함
      • 찾고자 하는 가상 주소의 페이지 번호 더해 b + 3라는 위치 찾아냄

페이징 기법의 특징

  • 논리적 의미와 무관한 동일 크기의 페이지로 나눔
  • 메모리 보호는 페이지 단위로 이루어짐
  • 외부 단편화가 발생하지 않음
  • 내부 단편화는 발생 가능

세그먼테이션 기법

  • 가상 메모리를 세그먼트 단위로 나누어 관리하는 기법
    • 세그먼트
      • 논리적 의미에 부합하는 다양한 크기의 블록

    image.png

  • 세그먼트 사상표
    • 세그먼트 번호에 대한 실 주소에서의 시작 위치 저장
      • 인덱스로 사용
    • 세그먼트 길이는 오버플로 확인용
  • 동적 주소 변환

    image.png

페이징/세그먼테이션 혼용 기법

  • 세그먼테이션 기법의 논리적 장점 + 페이징 기법의 메모리 관리 측면의 장점
  • 가상 메모리를 세그먼트 단위로 분할 후 각 세그먼트를 다시 페이지 단위로 분할
  • 메모리는 페이지 프레임으로 분할
  • 가상 주소 v = (s, p, d)
    • s : 세그먼트 번호
    • p : 페이지 번호
    • d : 페이지 내 변위

    image.png

    • 세그먼트 사상 표에 각각 저장되어 있는 값들은 각각의 페이지 사상 표의 위치를 가지고 있음
    • 세그먼트로 페이지 사상 표를 찾고 그 곳에서 페이지 프레임 번호를 찾아 실제 메모리를 찾음
  • 동적 주소 변환

    image.png

    • 연관 사상 표에 있을 경우
      1. 세그먼트 번호와 페이지 번호 이용해 연관 사상 표에서 검색
      2. 3, 7에 대응되는 사상 정보 5 확인
      3. 5번 페이지 프레임에 변위 값 더해 실제 주소 찾음
    • 연관 사상 표에 없을 경우
      1. 세그먼트 시작 주소 활용 해 세그먼트 값 3 더해 b+3 인덱스를 찾음
      2. s’ 주소 확인
        • 해당 주소 값은 페이지 사상 표의 시작 주소 값
      3. s’ + 7 값 가지고 실제 주소 찾음

메모리 호출 기법

메모리 호출 기법

  • 어느 시점에 페이지 또는 세그먼트를 메모리에 적재할 것인가를 결정하는 기법
  • 페이징 기법에서의 호출 기법 종류
    • 요구 페이지 호출 기법
    • 예상 페이지 호출 기법

요구 페이지 호출 기법

  • 프로세스의 페이지 요구가 있을 때 요구 된 페이지를 메모리에 적재하는 방법

    image.png

예상 페이지 호출 기법

  • 곧 사용될 것으로 예상되는 페이지를 미리 메모리에 적재하는 방법

    image.png

메모리 호출 기법 비교

  • 요구 페이지 호출 기법
    • 옮길 페이지 결정에 대한 오버 헤드 최소화
    • 적재된 페이지는 실제로 참조됨
    • 프로세스 시작 시점에는 연속적으로 페이지 부재 발생
  • 예상 페이지 호출 기법
    • 예상이 잘못된 경우 시간과 메모리 공간 낭비
    • 프로세스 시작 시점에 적용하면 성능이 개선됨



정리 하기


  • 가상 메모리는 메모리 크기보다 더 큰 기억 공간을 사용하는 프로세스를 실행할 수 있음
  • 프로세스에서 사용 되는 가상 주소는 동적 주소 변환을 통해 메모리의 실 주소로 변환 됨
  • 연속적인 가상 주소가 실 주소 공간에서도 연속적일 필요는 없음
  • 페이징 기법은 페이지라는 고정 된 크기의 블록 단위로 기억 장치를 관리하는 기법임
  • 세그먼테이션 기법은 모듈화에 따른 논리적 의미에 부합하는 다양한 크기의 세그먼트 단위로 기억 장치를 관리하는 기법임
  • 요구 페이지 호출 기법은 페이지가 필요한 시점에 메모리에 적재하는 방법임
  • 예상 페이지 호출 기법은 앞으로 사용 될 것으로 예쌍 되는 페이지를 미리 메모리에 적재하는 방법임

[데이터 정보 처리 입문] 10강 - 엑셀 활용

[유비쿼터스 컴퓨팅 개론] 9강 - 유비쿼터스 센서 네트워크